Ejemplo n.º 1
0
        //rennew certficiate that expired
        public int RenewCert(string Cert, int reqid)
        {
            int    iDisposition;
            string CertifcateStr;
            string status;
            string HostName;
            CX509CertificateRequestPkcs10 objPkcs10 = new CX509CertificateRequestPkcs10();
            CX509Enrollment        objEnroll        = new CX509Enrollment();
            CCertConfig            objCertConfig    = new CCertConfig();
            CX500DistinguishedName objDN            = new CX500DistinguishedName();
            CCertAdmin             objCertAdmin     = new CCertAdmin();
            string strCAConfig;
            var    inheritOptions = X509RequestInheritOptions.InheritPrivateKey | X509RequestInheritOptions.InheritSubjectFlag | X509RequestInheritOptions.InheritExtensionsFlag | X509RequestInheritOptions.InheritSubjectAltNameFlag;

            try
            {
                strCAConfig = objCertConfig.GetConfig(CC_DEFAULTCONFIG);                                                                                             //connect to the  ca
                InstallCert(Cert);
                objPkcs10.InitializeFromCertificate(X509CertificateEnrollmentContext.ContextUser, Cert, EncodingType.XCN_CRYPT_STRING_BASE64HEADER, inheritOptions); //create new cert request from exists expired cert
                objDN    = objPkcs10.Subject;                                                                                                                        //getting old cert subject (hostname)
                HostName = objDN.Name.ToString().Substring(3);
                objEnroll.InitializeFromRequest(objPkcs10);                                                                                                          //create enroll rquest
                CertifcateStr = objEnroll.CreateRequest(EncodingType.XCN_CRYPT_STRING_BASE64);                                                                       //crearte  new cert request
                iDisposition  = submitRequest(CertifcateStr, HostName);                                                                                              //submit cert to the ca
                objCertAdmin.ResubmitRequest(strCAConfig, iDisposition);                                                                                             //issue the Certificate

                if (iDisposition > 0)                                                                                                                                //if cert was created delete the old cert from the table
                {
                    SqlLite sql = new SqlLite();
                    sql.deleteCertRecord(reqid);
                    deleteFromStore(objDN.Name.ToString());
                    return(iDisposition);
                }
                return(0);
            }

            catch (Exception ex)
            {
                status = ex.Message;
                return(1);
            }
        }
        public string revokCertifcate(string hostname)
        {
            int         requestID;
            string      serialnumber;
            SqlLite     sql  = new SqlLite();
            Certificate cert = new Certificate();

            try
            {
                requestID    = sql.returnCertInfo(hostname);
                serialnumber = sql.returnCertSerialnumber(hostname);
                sql.deleteCertRecord(requestID);
                cert.revokeCert(serialnumber);
                return("SUCCESS");
            }

            catch (Exception ex)
            {
                return(ex.Message);
            }
        }