Пример #1
0
        /// <summary>
        /// Sertifikaları birbirine (der to pfx, cer to pkcs12 vb) çevirir
        /// </summary>
        public ResConvertCertificate ConvertCertificate(ReqConvertCertificate req)
        {
            ResConvertCertificate resConvertCertificate = new ResConvertCertificate();

            string inputPath         = ConfigurationManager.AppSettings.Get("opensslTmpPath");
            string inputFile         = req.SourceFileName;
            string inputFullFilename = inputPath + inputFile;

            string outputPath         = ConfigurationManager.AppSettings.Get("opensslTmpPath");
            string outputFile         = req.DestinationFileName;
            string outputFullFilename = outputPath + outputFile;

            switch (req.CertificateConvertType)
            {
            case ConvertType.PEMtoDER:
                ExecuteOpenSSL(string.Format("x509 -outform der -in {0} -out {1}", inputFullFilename, outputFullFilename));
                break;

            case ConvertType.PEMtoP7B:
                ExecuteOpenSSL(string.Format("crl2pkcs7 -nocrl -certfile {0} -out {1}", inputFullFilename, outputFullFilename));
                break;

            case ConvertType.PEMtoPFX:
                ExecuteOpenSSL(string.Format("pkcs12 -export -out {0} -inkey C:\\Users\\Yalcin\\Desktop\\test_private.key -in {1} -certfile C:\\Users\\Yalcin\\Desktop\\test_ca.crt", outputFullFilename, inputFullFilename));
                // TODO: Oluşturulan dosyayı download et #YalcinG
                break;

            case ConvertType.DERtoPEM:
                ExecuteOpenSSL(string.Format("x509 -inform der -in {0} -out {1}", inputFullFilename, outputFullFilename));
                break;

            case ConvertType.P7BtoPEM:
                ExecuteOpenSSL(string.Format("pkcs7 -print_certs -in {0} -out {1}", inputFullFilename, outputFullFilename));
                break;

            case ConvertType.P7BtoPFX:
                ExecuteOpenSSL(string.Format("pkcs7 -print_certs -in {0} -out {1}", inputFullFilename, outputFullFilename));
                //ExecuteOpenSSL("pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer");
                break;

            case ConvertType.PFXtoPEM:
                ExecuteOpenSSL(string.Format("pkcs12 -in {0} -out {1} -nodes", inputFullFilename, outputFullFilename));
                break;
            }

            File.Delete(inputFullFilename);

            string fileName = req.DestinationFileName.Substring(0, req.DestinationFileName.LastIndexOf('.'));
            string fileExt  = req.DestinationFileName.Substring(req.DestinationFileName.LastIndexOf('.') + 1);

            resConvertCertificate.DownloadUrl = string.Format("/PaymentGateway/DownloadConvertedFile.ashx?file={0}&ext={1}", fileName, fileExt);
            return(resConvertCertificate);
        }
Пример #2
0
 public ResConvertCertificate ConvertCertificate(ReqConvertCertificate req)
 {
     return(Call <ResConvertCertificate, ReqConvertCertificate>(req, MethodBase.GetCurrentMethod().Name));
 }