private void button1_Click(object sender, EventArgs e)
 {
     var saveDialog1 = new SaveFileDialog();
     saveDialog1.Filter = "private key (*.epr)|*.epr";
     saveDialog1.FilterIndex = 2;
     saveDialog1.RestoreDirectory = true;
     saveDialog1.Title = "Виберіть файл для збереження приватного ключа";
     string privatKeyFileName = "";
     if (saveDialog1.ShowDialog() == DialogResult.OK)
     {
         privatKeyFileName = saveDialog1.FileName;
         var saveDialog2 = new SaveFileDialog();
         saveDialog2.Filter = "public key (*.epb)|*.epb";
         saveDialog2.FilterIndex = 2;
         saveDialog2.RestoreDirectory = true;
         saveDialog2.Title = "Виберіть файл для збереження публічного ключа";
         string publicKeyFileName = "";
         if (saveDialog2.ShowDialog() == DialogResult.OK)
         {
             publicKeyFileName = saveDialog2.FileName;
             using (var myDssUnit = new DssUnit()) // for deletting all data after creating key pair
             {
                 if (myDssUnit.GenerateKeyPair(publicKeyFileName, privatKeyFileName))
                 {
                     textBox1.Text = publicKeyFileName;
                     textBox2.Text = privatKeyFileName;
                     //_myRsaUnit
                     MessageBox.Show("Пара ключів успішно створені!");
                 }
             }
         }
     }
 }
        private void button1_Click(object sender, EventArgs e)
        {
            var saveDialog1 = new SaveFileDialog();

            saveDialog1.Filter           = "private key (*.epr)|*.epr";
            saveDialog1.FilterIndex      = 2;
            saveDialog1.RestoreDirectory = true;
            saveDialog1.Title            = "Виберіть файл для збереження приватного ключа";
            string privatKeyFileName = "";

            if (saveDialog1.ShowDialog() == DialogResult.OK)
            {
                privatKeyFileName = saveDialog1.FileName;
                var saveDialog2 = new SaveFileDialog();
                saveDialog2.Filter           = "public key (*.epb)|*.epb";
                saveDialog2.FilterIndex      = 2;
                saveDialog2.RestoreDirectory = true;
                saveDialog2.Title            = "Виберіть файл для збереження публічного ключа";
                string publicKeyFileName = "";
                if (saveDialog2.ShowDialog() == DialogResult.OK)
                {
                    publicKeyFileName = saveDialog2.FileName;
                    using (var myDssUnit = new DssUnit()) // for deletting all data after creating key pair
                    {
                        if (myDssUnit.GenerateKeyPair(publicKeyFileName, privatKeyFileName))
                        {
                            textBox1.Text = publicKeyFileName;
                            textBox2.Text = privatKeyFileName;
                            //_myRsaUnit
                            MessageBox.Show("Пара ключів успішно створені!");
                        }
                    }
                }
            }
        }
        private void button6_Click(object sender, EventArgs e)
        {
            string signature = "";
            string pub       = textBox1.Text;
            string pri       = textBox2.Text;

            if (pub.Equals("") || pri.Equals(""))
            {
                MessageBox.Show("Виберіть шляхи до ключів");
                return;
            }

            if (radioButton1.Checked)
            {
                string text = textBox3.Text;
                using (var stream = GenerateStreamFromString(text))
                {
                    using (var myDssUnit = new DssUnit()) // for deletting all data after creating key pair
                    {
                        if (myDssUnit.OpenKeyPair(pub, pri))
                        {
                            //MessageBox.Show("Пара ключів успішно завантажені!");
                            string sign = myDssUnit.CreateSignatureForStream(stream);
                            if (sign != null)
                            {
                                signature = sign;
                            }
                        }
                    }
                    stream.Close();
                }
            }
            else
            {
                string filePath = textBox4.Text;
                if (filePath.Equals(""))
                {
                    MessageBox.Show("Введіть назву файлу");
                    return;
                }
                using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    using (var myDssUnit = new DssUnit()) // for deletting all data after creating key pair
                    {
                        if (myDssUnit.OpenKeyPair(pub, pri))
                        {
                            string sign = myDssUnit.CreateSignatureForStream(fs);
                            if (sign != null)
                            {
                                signature = sign;
                            }
                            //MessageBox.Show("Пара ключів успішно завантажені!");
                        }
                    }
                    fs.Close();
                }
            }
            textBox5.Text = signature;
        }
        private void button4_Click(object sender, EventArgs e)
        {
            bool isEqual = false;

            string signature = textBox5.Text;
            string pub       = textBox1.Text;
            string pri       = textBox2.Text;

            if (pub.Equals("") || pri.Equals(""))
            {
                MessageBox.Show("Виберіть шляхи до ключів");
                return;
            }

            if (radioButton1.Checked)
            {
                string text = textBox3.Text;
                using (var stream = GenerateStreamFromString(text))
                {
                    using (var myDssUnit = new DssUnit()) // for deletting all data after creating key pair
                    {
                        if (myDssUnit.OpenKeyPair(pub, pri))
                        {
                            if (myDssUnit.OpenKeyPair(pub, pri))
                            {
                                isEqual = myDssUnit.VerifySignature(stream, signature);
                            }
                        }
                    }
                    stream.Close();
                }
            }
            else
            {
                string filePath = textBox4.Text;
                using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    using (var myDssUnit = new DssUnit()) // for deletting all data after creating key pair
                    {
                        if (myDssUnit.OpenKeyPair(pub, pri))
                        {
                            isEqual = myDssUnit.VerifySignature(fs, signature);
                        }
                    }
                    fs.Close();
                }
            }
            if (isEqual)
            {
                MessageBox.Show("Підписи співпадають");
            }
            else
            {
                MessageBox.Show("Підписи не співпадають");
            }
            //textBox5.Text = signature;
        }
        private void button4_Click(object sender, EventArgs e)
        {
            bool isEqual = false;

            string signature = textBox5.Text;
            string pub = textBox1.Text;
            string pri = textBox2.Text;
            if (pub.Equals("") || pri.Equals(""))
            {
                MessageBox.Show("Виберіть шляхи до ключів");
                return;
            }

            if (radioButton1.Checked)
            {
                string text = textBox3.Text;
                using (var stream = GenerateStreamFromString(text))
                {
                    using (var myDssUnit = new DssUnit()) // for deletting all data after creating key pair
                    {
                        if (myDssUnit.OpenKeyPair(pub, pri))
                        {
                            if (myDssUnit.OpenKeyPair(pub, pri))
                            {
                                isEqual = myDssUnit.VerifySignature(stream, signature);
                            }
                        }
                    }
                    stream.Close();
                }
            }
            else
            {
                string filePath = textBox4.Text;
                using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    using (var myDssUnit = new DssUnit()) // for deletting all data after creating key pair
                    {
                        if (myDssUnit.OpenKeyPair(pub, pri))
                        {
                            isEqual = myDssUnit.VerifySignature(fs, signature);
                        }
                    }
                    fs.Close();
                }
            }
            if (isEqual)
                MessageBox.Show("Підписи співпадають");
            else
                MessageBox.Show("Підписи не співпадають");
                //textBox5.Text = signature;
        }
        private void button6_Click(object sender, EventArgs e)
        {
            string signature = "";
            string pub = textBox1.Text;
            string pri = textBox2.Text;
            if (pub.Equals("") || pri.Equals(""))
            {
                MessageBox.Show("Виберіть шляхи до ключів");
                return;
            }

            if (radioButton1.Checked)
            {
                string text = textBox3.Text;
                using (var stream = GenerateStreamFromString(text))
                {
                    using (var myDssUnit = new DssUnit()) // for deletting all data after creating key pair
                    {
                        if (myDssUnit.OpenKeyPair(pub, pri))
                        {
                            //MessageBox.Show("Пара ключів успішно завантажені!");
                            string sign = myDssUnit.CreateSignatureForStream(stream);
                            if (sign != null)
                            {
                                signature = sign;
                            }
                        }
                    }
                    stream.Close();
                }
            }
            else
            {
                string filePath = textBox4.Text;
                if (filePath.Equals(""))
                {
                    MessageBox.Show("Введіть назву файлу");
                    return;
                }
                using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
                {
                    using (var myDssUnit = new DssUnit()) // for deletting all data after creating key pair
                    {
                        if (myDssUnit.OpenKeyPair(pub, pri))
                        {
                            string sign = myDssUnit.CreateSignatureForStream(fs);
                            if (sign != null)
                            {
                                signature = sign;
                            }
                            //MessageBox.Show("Пара ключів успішно завантажені!");
                        }
                    }
                    fs.Close();
                }
            }
            textBox5.Text = signature;
        }