示例#1
0
 // метод в конце поиска
 private void BluetoothEndDescovery(object sender, DiscoverDevicesEventArgs e)
 {
     // если не найдено щапускаем форму сравнения паролей
     if (compare == 0)
     {
         // если устройства нет рядом просим ввести пароль
         NotFoundCheckingPassword password = new NotFoundCheckingPassword(cod);
         password.ShowDialog();
         // проверка верности пароля
         if (password.Pasbool)
         {
             Redeem();
         }
     }
 }
示例#2
0
        // кнопка для открытия (чтобы не прописывать в конструкторе)
        private void Open_Click(object sender, EventArgs e)
        {
            Open.Enabled   = false;
            label1.Visible = true;
            // проверка работает ли bluetooth
            if (BluetoothRadio.IsSupported)
            {
                // проверка расширения
                string k = Path.GetExtension(path);
                if (k == ".code3")
                {
                    // закрыываем кнопку
                    Open.Enabled = false;
                    // дезериализуем ключ и файл
                    DataContractJsonSerializer json2 = new DataContractJsonSerializer(typeof(Connectwithakey));
                    DataContractJsonSerializer json  = new DataContractJsonSerializer(typeof(ToCode));
                    FileStream st = null;
                    if (File.Exists(path))
                    {
                        try
                        {
                            st = new FileStream(path, FileMode.Open);
                        }
                        catch (IOException ex)
                        {
                            Console.WriteLine("Try again");
                        }
                        try
                        {
                            Connectwithakey con = null;
                            con           = (Connectwithakey)json2.ReadObject(st);
                            FindkeyNumber = con.file;
                            // номер ключа
                            this.num = int.Parse(Encoding.ASCII.GetString(con.keynumber));
                            st.Close();
                            byte[] serkey = null;
                            // извлечение ключа из файла
                            if (File.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Pakman{num}.txt"))
                            {
                                serkey = File.ReadAllBytes($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Pakman{num}.txt");
                                IntPtr          accountToken = WindowsIdentity.GetCurrent().Token;
                                WindowsIdentity win          = new WindowsIdentity(accountToken);
                                // раскодируем
                                ID = win.User.ToString();
                                // ксорим с id в ASCII
                                byte[] tocodekey = Encoding.ASCII.GetBytes(ID);
                                int    q         = 0;
                                for (int i = 0; i < serkey.Length; i++)
                                {
                                    if (q == tocodekey.Length)
                                    {
                                        q = 0;
                                    }
                                    serkey[i] = (byte)(serkey[i] ^ tocodekey[q]);
                                }
                                // создём вспомогательный файл для десериализации и извдечение полей класса
                                string help;
                                if (Directory.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming"))
                                {
                                    help = $"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Pakman{num}Help.txt";
                                }
                                else
                                {
                                    help = $"../Pakman{num}Help.txt";
                                }
                                // файл нужен для десериализации (так быстрее чем с memorystream так как есть writeallbytes)
                                File.Create(help).Close();
                                File.WriteAllBytes(help, serkey);
                                FileStream l = new FileStream(help, FileMode.Open);
                                cod = (ToCode)json.ReadObject(l);
                                l.Close();
                                // удаляем вспомогательный файл
                                File.Delete(help);
                                // проверяем совпадение устройста
                                devicename   = cod.DeviceName;
                                deviceadress = cod.DeviceAdress;
                                // компонента bluetooth
                                BluetoothComponent component = new BluetoothComponent();
                                // добавляем метод который будет сделать если найдено новое устройство
                                component.DiscoverDevicesProgress += BluetoothDescovery;
                                // метод в конце работы
                                component.DiscoverDevicesComplete += BluetoothEndDescovery;
                                // поиск устройства
                                component.DiscoverDevicesAsync(10, true, false, true, true, 0);
                            }
                            else
                            {
                                if (File.Exists($"../Palon/Pakman{num}.txt"))
                                {
                                    serkey = File.ReadAllBytes($"../Palon/Pakman{num}.txt");

                                    IntPtr          accountToken = WindowsIdentity.GetCurrent().Token;
                                    WindowsIdentity win          = new WindowsIdentity(accountToken);
                                    // раскодируем
                                    ID = win.User.ToString();
                                    // ксорим с id в ASCII
                                    byte[] tocodekey = Encoding.ASCII.GetBytes(ID);
                                    int    q         = 0;
                                    for (int i = 0; i < serkey.Length; i++)
                                    {
                                        if (q == tocodekey.Length)
                                        {
                                            q = 0;
                                        }
                                        serkey[i] = (byte)(serkey[i] ^ tocodekey[q]);
                                    }
                                    // создём вспомогательный файл для десериализации и извдечение полей класса
                                    string help;
                                    if (Directory.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming"))
                                    {
                                        help = $"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Pakman{num}Help.txt";
                                    }
                                    else
                                    {
                                        help = $"../Pakman{num}Help.txt";
                                    }
                                    // файл нужен для десериализации (так быстрее чем с memorystream так как есть writeallbytes)
                                    File.Create(help).Close();
                                    File.WriteAllBytes(help, serkey);
                                    FileStream l = new FileStream(help, FileMode.Open);
                                    cod = (ToCode)json.ReadObject(l);
                                    l.Close();
                                    // удаляем вспомогательный файл
                                    File.Delete(help);
                                    // проверяем совпадение устройста
                                    devicename   = cod.DeviceName;
                                    deviceadress = cod.DeviceAdress;
                                    // компонента bluetooth
                                    BluetoothComponent component = new BluetoothComponent();
                                    // добавляем метод который будет сделать если найдено новое устройство
                                    component.DiscoverDevicesProgress += BluetoothDescovery;
                                    // метод в конце работы
                                    component.DiscoverDevicesComplete += BluetoothEndDescovery;
                                    // поиск устройства
                                    component.DiscoverDevicesAsync(10, true, false, true, true, 0);
                                }
                                else
                                {
                                    MessageBox.Show("Something has happened with keys");
                                    this.Close();
                                }
                            }
                            //безопастность (учетная запись)
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Two programms are trying to encript file");
                            this.Close();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Two programms are trying to encript file");
                        this.Close();
                    }
                }
                else
                {
                    DataContractJsonSerializer json2 = new DataContractJsonSerializer(typeof(Connectwithakey));
                    DataContractJsonSerializer json  = new DataContractJsonSerializer(typeof(ToCode));
                    // десереализуем файл
                    FileStream st = null;
                    if (File.Exists(path))
                    {
                        try
                        {
                            st = new FileStream(path, FileMode.Open);
                            Connectwithakey con = null;
                            con           = (Connectwithakey)json2.ReadObject(st);
                            FindkeyNumber = con.file;
                            // номер ключа
                            this.num = int.Parse(Encoding.ASCII.GetString(con.keynumber));
                            st.Close();
                            // извлечение ключа из файла
                            byte[] serkey = null;
                            // извлечение ключа из файла
                            if (File.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/PakmanD{num}.txt"))
                            {
                                serkey = File.ReadAllBytes($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/PakmanD{num}.txt");
                            }
                            else
                            {
                                if (File.Exists($"../Palon/PakmanD{num}.txt"))
                                {
                                    serkey = File.ReadAllBytes($"../Palon/PakmanD{num}.txt");
                                }
                                else
                                {
                                    MessageBox.Show("Something has happened with keys");
                                    this.Close();
                                }
                            }
                            //безопастность (учетная запись)
                            IntPtr          accountToken = WindowsIdentity.GetCurrent().Token;
                            WindowsIdentity win          = new WindowsIdentity(accountToken);
                            // раскодируем ксоря c ID в ASCII
                            ID = win.User.ToString();
                            byte[] tocodekey = Encoding.ASCII.GetBytes(ID);
                            int    q         = 0;
                            for (int i = 0; i < serkey.Length; i++)
                            {
                                if (q == tocodekey.Length)
                                {
                                    q = 0;
                                }
                                serkey[i] = (byte)(serkey[i] ^ tocodekey[q]);
                            }
                            // создём вспомогательный файл для десериализации и извдечение полей класса
                            string help;
                            if (Directory.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming"))
                            {
                                help = $"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/PakmanD{num}Help.txt";
                            }
                            else
                            {
                                help = $"../PakmanD{num}Help.txt";
                            }
                            // перезаписываем файл для десериализации так удобней чем при memorystream так как writeallbytes
                            File.Create(help).Close();
                            File.WriteAllBytes(help, serkey);
                            FileStream l = new FileStream(help, FileMode.Open);
                            cod = (ToCode)json.ReadObject(l);
                            l.Close();
                            // удаляем вспомогательный файл
                            File.Delete(help);
                            // проверяем совпадение устройста
                            devicename   = cod.DeviceName;
                            deviceadress = cod.DeviceAdress;
                            // создаём компоненту поиска
                            BluetoothComponent component = new BluetoothComponent();
                            // добавляем метод при каждом нахождении нового устройствва
                            component.DiscoverDevicesProgress += BluetoothDescovery;
                            // метод в конце поиска
                            component.DiscoverDevicesComplete += BluetoothEndDescovery;
                            // начало писка
                            component.DiscoverDevicesAsync(10, true, false, true, true, 0);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Two programms are trying to encript file");
                            this.Close();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Two programms are trying to encript file");
                        this.Close();
                    }
                }
            }
            // раскодируем по паролю
            else
            {
                // аналогично смотрим расширение
                string k = Path.GetExtension(path);
                if (k == ".code3")
                {
                    // откючаем кнопку
                    Open.Enabled = false;
                    DataContractJsonSerializer json2 = new DataContractJsonSerializer(typeof(Connectwithakey));
                    DataContractJsonSerializer json  = new DataContractJsonSerializer(typeof(ToCode));
                    // десериализуем основной файл
                    FileStream st = null;
                    if (File.Exists(path))
                    {
                        try
                        {
                            st = new FileStream(path, FileMode.Open);
                            Connectwithakey con = null;
                            con           = (Connectwithakey)json2.ReadObject(st);
                            FindkeyNumber = con.file;
                            // номер ключа
                            this.num = int.Parse(Encoding.ASCII.GetString(con.keynumber));
                            st.Close();
                            // извлечение ключа из файла
                            byte[] serkey = null;
                            // извлечение ключа из файла
                            if (File.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Pakman{num}.txt"))
                            {
                                serkey = File.ReadAllBytes($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Pakman{num}.txt");
                            }
                            else
                            {
                                if (File.Exists($"../Palon/Pakman{num}.txt"))
                                {
                                    serkey = File.ReadAllBytes($"../Palon/Pakman{num}.txt");
                                }
                                else
                                {
                                    MessageBox.Show("Something has happened with keys");
                                    this.Close();
                                }
                            }
                            //безопастность (учетная запись)
                            IntPtr          accountToken = WindowsIdentity.GetCurrent().Token;
                            WindowsIdentity win          = new WindowsIdentity(accountToken);
                            // раскодируем ксоря с id ASCII
                            ID = win.User.ToString();
                            byte[] tocodekey = Encoding.ASCII.GetBytes(ID);
                            int    q         = 0;
                            for (int i = 0; i < serkey.Length; i++)
                            {
                                if (q == tocodekey.Length)
                                {
                                    q = 0;
                                }
                                serkey[i] = (byte)(serkey[i] ^ tocodekey[q]);
                            }
                            // создём вспомогательный файл для десериализации и извдечение полей класса
                            string help;
                            if (Directory.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming"))
                            {
                                help = $"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/Pakman{num}Help.txt";
                            }
                            else
                            {
                                help = $"../Pakman{num}Help.txt";
                            }
                            File.Create(help).Close();
                            File.WriteAllBytes(help, serkey);
                            FileStream l = new FileStream(help, FileMode.Open);
                            cod = (ToCode)json.ReadObject(l);
                            l.Close();
                            // удаляем вспомогательный файл
                            File.Delete(help);
                            // проверяем совпадение устройста
                            devicename   = cod.DeviceName;
                            deviceadress = cod.DeviceAdress;
                            // если устройства нет рядом просим ввести пароль
                            NotFoundCheckingPassword password = new NotFoundCheckingPassword(cod);
                            password.ShowDialog();
                            // проверка верности пароля
                            if (password.Pasbool)
                            {
                                Redeem();
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Two programms are trying to encript file");
                            this.Close();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Two programms are trying to encript file");
                        this.Close();
                    }
                }
                else
                {
                    // десериализуем основной файл
                    DataContractJsonSerializer json2 = new DataContractJsonSerializer(typeof(Connectwithakey));
                    DataContractJsonSerializer json  = new DataContractJsonSerializer(typeof(ToCode));
                    FileStream st = null;
                    if (File.Exists(path))
                    {
                        try
                        {
                            st = new FileStream(path, FileMode.Open);
                            Connectwithakey con = null;
                            con           = (Connectwithakey)json2.ReadObject(st);
                            FindkeyNumber = con.file;
                            // номер ключа
                            this.num = int.Parse(Encoding.ASCII.GetString(con.keynumber));
                            st.Close();
                            // извлечение ключа из файла
                            byte[] serkey = null;
                            // извлечение ключа из файла
                            if (File.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/PakmanD{num}.txt"))
                            {
                                serkey = File.ReadAllBytes($"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/PakmanD{num}.txt");
                            }
                            else
                            {
                                if (File.Exists($"../Palon/PakmanD{num}.txt"))
                                {
                                    serkey = File.ReadAllBytes($"../Palon/PakmanD{num}.txt");
                                }
                                else
                                {
                                    MessageBox.Show("Something has happened with keys");
                                    this.Close();
                                }
                            }//безопастность (учетная запись)
                            IntPtr          accountToken = WindowsIdentity.GetCurrent().Token;
                            WindowsIdentity win          = new WindowsIdentity(accountToken);
                            // раскодируем ксоря с ID в ASCII
                            ID = win.User.ToString();
                            byte[] tocodekey = Encoding.ASCII.GetBytes(ID);
                            int    q         = 0;
                            for (int i = 0; i < serkey.Length; i++)
                            {
                                if (q == tocodekey.Length)
                                {
                                    q = 0;
                                }
                                serkey[i] = (byte)(serkey[i] ^ tocodekey[q]);
                            }
                            // создём вспомогательный файл для десериализации и извдечение полей класса
                            string help;
                            if (Directory.Exists($"C:/Users/{Environment.UserName}/AppData/Roaming"))
                            {
                                help = $"C:/Users/{Environment.UserName}/AppData/Roaming/Palon/PakmanD{num}Help.txt";
                            }
                            else
                            {
                                help = $"../PakmanD{num}Help.txt";
                            }
                            // так быстрее так как в memorystream нет writeallbytes
                            File.Create(help).Close();
                            File.WriteAllBytes(help, serkey);
                            FileStream l = new FileStream(help, FileMode.Open);
                            cod = (ToCode)json.ReadObject(l);
                            l.Close();
                            // удаляем вспомогательный файл
                            File.Delete(help);
                            // проверяем совпадение устройста
                            devicename   = cod.DeviceName;
                            deviceadress = cod.DeviceAdress;
                            // если устройства нет рядом просим ввести пароль
                            NotFoundCheckingPassword password = new NotFoundCheckingPassword(cod);
                            password.ShowDialog();
                            // проверка верности пароля
                            if (password.Pasbool)
                            {
                                Redeem();
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Two programms are trying to encript file");
                            this.Close();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Two programms are trying to encript file");
                        this.Close();
                    }
                }
            }
        }