Ejemplo n.º 1
0
        private void LoadCertificateButton_Click(object sender, EventArgs e)
        {
            using OpenFileDialog openFileDialog = new OpenFileDialog
                  {
                      InitialDirectory = "C:\\",
                      Filter           = "X509 Certificate|*.crt",
                      FilterIndex      = 1,
                      RestoreDirectory = true
                  };

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                using var stream = openFileDialog.OpenFile();
                if (stream != null)
                {
                    using BinaryReader reader = new BinaryReader(stream);
                    byte[] fileContent = reader.ReadBytes(Convert.ToInt32(stream.Length));

                    if (X509CertificateController.IsValid(fileContent))
                    {
                        m_Certificate = fileContent;
                        var signAlg = X509CertificateController.GetCertificateParameters(m_Certificate);

                        X509CertificateParser parser = new X509CertificateParser();
                        CertificateRichTextBox.Text = parser.ReadCertificate(m_Certificate).ToString();
                    }
                    else
                    {
                        DebugRichTextBox.Text = "Current certificate is not valid!";
                    }
                }
            }
        }
        private void CalculateSignatureButton_Click(object sender, EventArgs e)
        {
            bool hasError = false;

            DebugRichTextBox.Text = string.Empty;

            if (m_Certificate == null || m_Certificate.Length == 0)
            {
                hasError = true;
                DebugRichTextBox.Text += "Choose Certificate!" + Environment.NewLine;
            }

            if (m_Message == null || m_Message.Length == 0)
            {
                hasError = true;
                DebugRichTextBox.Text += "Choose Message!" + Environment.NewLine;
            }

            if (!hasError)
            {
                m_Signature = X509CertificateController.GetMessageSignature(m_Message, m_Certificate);
                SignatureRichTextBox.Text = string.Join("", BitConverter.ToString(m_Signature).Split('-'));
                DebugRichTextBox.Text     = "Success!";
            }
        }
 private void VerifyCertificateButton_Click(object sender, EventArgs e)
 {
     if (m_Certificate != null && m_Certificate.Length != 0)
     {
         if (X509CertificateController.IsValid(m_Certificate))
         {
             Valid();
         }
         else
         {
             Invalid();
         }
     }
 }
Ejemplo n.º 4
0
        private void VerifySignatureButton_Click(object sender, EventArgs e)
        {
            bool hasError = false;

            DebugRichTextBox.Text = string.Empty;

            if (m_Certificate == null || m_Certificate.Length == 0)
            {
                hasError = true;
                DebugRichTextBox.Text += "Choose Certificate!" + Environment.NewLine;
            }

            if (m_Message == null || m_Message.Length == 0)
            {
                hasError = true;
                DebugRichTextBox.Text += "Choose Message!" + Environment.NewLine;
            }

            if (m_Signature == null || m_Signature.Length == 0)
            {
                hasError = true;
                DebugRichTextBox.Text += "Choose Signature!" + Environment.NewLine;
            }

            if (!hasError)
            {
                try
                {
                    if (X509CertificateController.IsSignatureValid(m_Message, m_Signature, m_Certificate))
                    {
                        Valid();
                        DebugRichTextBox.Text = "Success!";
                    }
                    else
                    {
                        Invalid();
                    }
                }
                catch (Exception)
                {
                    Invalid();
                }
            }
        }
Ejemplo n.º 5
0
        private void GetRootCertificateButton_Click(object sender, EventArgs e)
        {
            var certificate = X509CertificateController.GetRootCertificate();

            using SaveFileDialog saveFileDialog = new SaveFileDialog
                  {
                      Filter           = "X509 Certificate|*.crt",
                      FilterIndex      = 1,
                      Title            = "Save a Certificate File",
                      RestoreDirectory = true
                  };

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                Stream dataStream;
                if ((dataStream = saveFileDialog.OpenFile()) != null)
                {
                    dataStream.Write(certificate, 0, certificate.Length);
                    dataStream.Close();
                }
            }
        }
        private void CreateButton_Click(object sender, EventArgs e)
        {
            bool hasError = false;

            DebugRichTextBox.Text = "";


            m_Subject.Surname_Subj = GetUserSurname();
            if (m_Subject.Surname_Subj.Length == 0)
            {
                hasError = true;
                DebugRichTextBox.Text += "Error occured in user name!" + Environment.NewLine;
            }

            m_Subject.Name_Subj = GetUserName();
            if (m_Subject.Name_Subj.Length == 0)
            {
                hasError = true;
                DebugRichTextBox.Text += "Error occured in user name!" + Environment.NewLine;
            }

            m_Subject.BirthDate_Subj = GetUserBirthDate();

            m_Subject.Phone_Subj = GetUserPhone();
            if (m_Subject.Phone_Subj.Length == 0 || m_Subject.Phone_Subj.Count(elm => elm < '0' || elm > '9') > 0)
            {
                hasError = true;
                DebugRichTextBox.Text += "Error occured in user phone!" + Environment.NewLine;
            }

            m_Subject.EMail_Subj = GetUserEMail();
            if (m_Subject.EMail_Subj.Length == 0 ||
                m_Subject.EMail_Subj.Count(elm => elm == '@') == 0 || m_Subject.EMail_Subj.Count(elm => elm == '@') > 1 ||
                m_Subject.EMail_Subj.Count(elm => elm == '.') == 0 || m_Subject.EMail_Subj.Count(elm => elm == '.') > 1 ||
                m_Subject.EMail_Subj.IndexOf('.') - m_Subject.EMail_Subj.IndexOf('@') < 2 ||
                m_Subject.EMail_Subj.IndexOf('.') == m_Subject.EMail_Subj.Length - 1)
            {
                hasError = true;
                DebugRichTextBox.Text += "Error occured in user email!" + Environment.NewLine;
            }

            m_Subject.Gender_Subj = DatabaseInstance.GetInstance().Genders.FirstOrDefault(elm => elm.Name_Gender == GetUserGender());
            if (m_Subject.Gender_Subj == null)
            {
                hasError = true;
                DebugRichTextBox.Text += "Error occured in user gender!" + Environment.NewLine;
            }

            m_Subject.Citizen_Subj = DatabaseInstance.GetInstance().Citizens.FirstOrDefault(elm => elm.Name_Citizen == GetUserCitizenship());
            if (m_Subject.Citizen_Subj == null)
            {
                hasError = true;
                DebugRichTextBox.Text += "Error occured in user citizenship!" + Environment.NewLine;
            }

            m_Subject.City_Subj = DatabaseInstance.GetInstance().Cities.FirstOrDefault(elm => elm.Name_City == GetUserCity());
            if (m_Subject.City_Subj == null)
            {
                hasError = true;
                DebugRichTextBox.Text += "Error occured in user city!" + Environment.NewLine;
            }

            m_Subject.PassportSerias_Subj = GetUserPassportSerials();
            if (m_Subject.PassportSerias_Subj.Length != 4 || m_Subject.PassportSerias_Subj.Count(elm => elm < '0' || elm > '9') > 0)
            {
                hasError = true;
                DebugRichTextBox.Text += "Error occured in user passport serias!" + Environment.NewLine;
            }

            m_Subject.PassportNumber_Subj = GetUserPassportNumber();
            if (m_Subject.PassportNumber_Subj.Length != 6 || m_Subject.PassportNumber_Subj.Count(elm => elm < '0' || elm > '9') > 0)
            {
                hasError = true;
                DebugRichTextBox.Text += "Error occured in user passport number!" + Environment.NewLine;
            }

            m_Subject.INN_Subj = GetUserINN();
            if (m_Subject.INN_Subj.Length != 12 || m_Subject.INN_Subj.Count(elm => elm < '0' || elm > '9') > 0)
            {
                hasError = true;
                DebugRichTextBox.Text += "Error occured in user INN!" + Environment.NewLine;
            }

            m_Subject.SNILS_Subj = GetUserSNILS();
            if (m_Subject.SNILS_Subj.Length != 11 || m_Subject.SNILS_Subj.Count(elm => elm < '0' || elm > '9') > 0)
            {
                hasError = true;
                DebugRichTextBox.Text += "Error occured in user SNILS!" + Environment.NewLine;
            }

            m_AlgParSet = DatabaseInstance.GetInstance().AlgParSets
                          .Include(elm => elm.AlgName_AlgParSet)
                          .Include(elm => elm.HashType_AlgParSet)
                          .Include(elm => elm.Len_AlgParSet)
                          .FirstOrDefault(elm => elm.OID_AlgParSet == GetParametersOID());
            if (m_AlgParSet == null)
            {
                hasError = true;
                DebugRichTextBox.Text += "Error occured in parameters OID!" + Environment.NewLine;
            }

            if (!hasError)
            {
                var certificate = X509CertificateController.GetSignedCertificate(m_AlgParSet, m_Subject);

                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter           = "X509 Certificate|*.crt";
                saveFileDialog.FilterIndex      = 1;
                saveFileDialog.Title            = "Save a Certificate File";
                saveFileDialog.RestoreDirectory = true;

                if (saveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    Stream dataStream;
                    if ((dataStream = saveFileDialog.OpenFile()) != null)
                    {
                        dataStream.Write(certificate, 0, certificate.Length);
                        dataStream.Close();
                    }

                    X509CertificateParser parser = new X509CertificateParser();
                    DebugRichTextBox.Text = parser.ReadCertificate(certificate).ToString();
                }
            }
        }