Example #1
0
 public CertificateService(IConfiguration configuration)
 {
     _configuration     = configuration;
     _certCheckerClient = CreateCertCheckerUniversal();
     _kalkanCryptCom    = new KalkanCryptCOM();
     _kalkanCryptCom.Init();
 }
        private bool CertificateAuthentication(string certificate, out string error)
        {
            IKalkanCryptCOM _cryptCom  = null;
            bool            isSucccess = true;

            error = string.Empty;
            try
            {
                var xmlLogin = certificate;


                _cryptCom = new KalkanCryptCOM();
                _cryptCom.Init();

                string certificateBase64;
                _cryptCom.GetCertFromXML(xmlLogin, 0, out certificateBase64);

                if (!string.IsNullOrEmpty(certificateBase64))
                {
                    X509Certificate x509Cert = new X509Certificate(Convert.FromBase64String(certificateBase64));
                    //,model.Password, X509KeyStorageFlags.PersistKeySet);
                    X509Certificate2 x509Cert2 = new X509Certificate2(x509Cert);
                    bool             isVerify  = x509Cert2.Verify();

                    if (isVerify)
                    {
                        // [TODO] Make Didgital dignature Verify
                        // var verifyXml =  VerifyXml(x509Cert2, xmlLogin);

                        isSucccess = true;
                    }
                    else
                    {
                        isSucccess = false;
                        error      = "Ошибка аутентификации по сертификату!";
                    }

                    isSucccess = true;
                }
            }
            catch (Exception e)
            {
                error      = string.Format("Ошибка аутентификации по сертификату: {0}", e);
                isSucccess = false;
            }
            return(isSucccess);
        }