Esempio n. 1
0
        public static String GetHashTypeRectangleText(int numberPage, String src, X509Certificate[] certChain)
        {
            SignPdfFile   pdfSig        = new SignPdfFile();
            DisplayConfig displayConfig = DisplayConfig.generateDisplayConfigRectangleText(numberPage, 10, 10, 200, 80,
                                                                                           null, DisplayConfig.SIGN_TEXT_FORMAT_4, CertUtils.GetCN(certChain[0]), "", "", DisplayConfig.DATE_FORMAT_1);

            String base64Hash = pdfSig.createHash(src, certChain, displayConfig);
            var    session    = System.Web.HttpContext.Current.Session;

            session["pdfSig"] = pdfSig;
            return(base64Hash);
        }
Esempio n. 2
0
        public static String GetHashTypeRectangleText2_ExistedSignatureField(String src, X509Certificate[] certChain, String displayText, String fieldName)
        {
            SignPdfFile pdfSig = new SignPdfFile();
            //DisplayConfig displayConfig = DisplayConfig.generateDisplayConfigRectangleText(1, 10, 10, 200, 80,
            //        DisplayConfig.SIGN_TEXT_FORMAT_4, "Dương Ngọc Khánh", "Kiểm tra", "Hà Nội", DisplayConfig.DATE_FORMAT_1);
            DisplayConfig displayConfig = DisplayConfig.generateDisplayConfigRectangleText_ExistedSignatureField(1, 10, 10, 200, 80,
                                                                                                                 displayText, null, CertUtils.GetCN(certChain[0]), "", "", DisplayConfig.DATE_FORMAT_1);
            String base64Hash = pdfSig.createHashExistedSignatureField(src, certChain, displayConfig, fieldName);
            var    session    = System.Web.HttpContext.Current.Session;

            session["pdfSig"] = pdfSig;
            return(base64Hash);
        }
Esempio n. 3
0
        public static String GetHashTypeImage_ExistedSignatureField(String src, X509Certificate[] certChain, int numberPage, string urlPath, float coorX, float coorY, float width, float height)
        {
            SignPdfFile pdfSig = new SignPdfFile();
            //DisplayConfig displayConfig = DisplayConfig.generateDisplayConfigImage_ExistedSignatureField(numberPage
            //    , coorX, coorY, width, height, "", "", "", urlPath);

            DisplayConfig displayConfig = DisplayConfig.generateDisplayConfigImageDefault(numberPage
                                                                                          , coorX, coorY, width, height, urlPath);

            String base64Hash = pdfSig.createHash(src, certChain, displayConfig);
            var    session    = System.Web.HttpContext.Current.Session;

            session["pdfSig"] = pdfSig;
            return(base64Hash);
        }
Esempio n. 4
0
        public static String GetHashTypeRectangleTextDisplayConfigTableDefault(int numberPage, String src, X509Certificate[] certChain, out string file_dest)
        {
            var lst = new List <string>();

            lst.Add("321312321323");
            SignPdfFile   pdfSig        = new SignPdfFile();
            DisplayConfig displayConfig = DisplayConfig.generateDisplayConfigTableDefault(numberPage, lst.ToArray());

            file_dest = src.Replace(".pdf", "");
            file_dest = file_dest + "table" + ".pdf";
            pdfSig.addPageEmpty(src, file_dest, displayConfig);
            String base64Hash = pdfSig.createHash(src, certChain, displayConfig);
            var    session    = System.Web.HttpContext.Current.Session;

            session["pdfSig"] = pdfSig;

            return(base64Hash);
        }
Esempio n. 5
0
        public ActionResult InsertSignatrue(string signatureBase64, string fileName)
        {
            var statusResultInsertSignature = "error";
            var descErrorInsertSignature    = "";
            var signedFileName = "";

            try
            {
                if (signatureBase64 == null || signatureBase64.Trim().Length == 0)
                {
                    descErrorInsertSignature = "Signature is empty";
                    return(Json(new
                    {
                        statusResultInsertSignature = statusResultInsertSignature,
                        descErrorInsertSignature = descErrorInsertSignature,
                        signedFileName = signedFileName
                    }, JsonRequestBehavior.AllowGet));
                }
                if (fileName == null || fileName.Trim().Length == 0 || fileName.IndexOf(".pdf") == -1)
                {
                    descErrorInsertSignature = "File Name is empty";
                    return(Json(new
                    {
                        statusResultInsertSignature = statusResultInsertSignature,
                        descErrorInsertSignature = descErrorInsertSignature,
                        signedFileName = signedFileName
                    }, JsonRequestBehavior.AllowGet));
                }

                byte[] signByteArray = Convert.FromBase64String(signatureBase64);
                if (signByteArray == null || signByteArray.Length == 0)
                {
                    descErrorInsertSignature = "Định dạng chữ ký không hợp lệ";
                    return(Json(new
                    {
                        statusResultInsertSignature = statusResultInsertSignature,
                        descErrorInsertSignature = descErrorInsertSignature,
                        signedFileName = signedFileName
                    }, JsonRequestBehavior.AllowGet));
                }

                var session = System.Web.HttpContext.Current.Session;

                if (session["pdfSig"] != null)
                {
                    try
                    {
                        pdfSig = session["pdfSig"] as SignPdfFile;
                    }
                    catch (Exception ex)
                    {
                        Logger.Error($"{DateTime.Now.ToString("HH:mm:ss dd/MM/yyyy")} InsertSignatrue {ex.Message} {JsonConvert.SerializeObject(ex)}");
                        descErrorInsertSignature = "Không tìm thấy phiên làm việc";
                        return(Json(new
                        {
                            statusResultInsertSignature = statusResultInsertSignature,
                            descErrorInsertSignature = descErrorInsertSignature,
                            signedFileName = signedFileName
                        }, JsonRequestBehavior.AllowGet));
                    }
                }
                if (pdfSig == null)
                {
                    descErrorInsertSignature = "Không tìm thấy phiên làm việc";
                    return(Json(new
                    {
                        statusResultInsertSignature = statusResultInsertSignature,
                        descErrorInsertSignature = descErrorInsertSignature,
                        signedFileName = signedFileName
                    }, JsonRequestBehavior.AllowGet));
                }

                string HCC_FILE_PDF = GetUrlFileDefaut();

                string[] stringSeparators = new string[] { ".pdf" };
                String[] chainBase64      = fileName.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
                String   name             = fileName.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries)[0] + "_signed";
                String   ext = "pdf";

                bool exists = System.IO.File.Exists(Path.Combine(HCC_FILE_PDF, name + "." + ext));
                if (exists)
                {
                    int    index  = 1;
                    String name_2 = name + "_" + index + "." + "_signed_1";
                    String path   = Path.Combine(HCC_FILE_PDF, name_2 + "." + ext);
                    while (System.IO.File.Exists(path))
                    {
                        index++;
                        name_2 = name + "_" + index + "." + "_signed_2";
                        path   = Path.Combine(HCC_FILE_PDF, name_2 + "." + ext);
                    }
                    name = name_2;
                }

                TimestampConfig timestampConfig = new TimestampConfig();
                timestampConfig.UseTimestamp = false;
                if (!pdfSig.insertSignature(signatureBase64, Path.Combine(HCC_FILE_PDF, name + "." + ext), timestampConfig))
                {
                    descErrorInsertSignature = "Insert signature into file fail.";
                    return(Json(new
                    {
                        statusResultInsertSignature = statusResultInsertSignature,
                        descErrorInsertSignature = descErrorInsertSignature,
                        signedFileName = signedFileName
                    }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    #region lưu đường dẫn file rác
                    var filecu = _fileKyRepos.FirstOrDefault(x => x.DuongDanTep == fileName);
                    if (filecu != null)
                    {
                        filecu.DaSuDung = false;
                        _fileKyRepos.Update(filecu);

                        #region lưu đường dẫn file đã ký
                        var fileKy = new LogFileKy
                        {
                            HoSoId         = filecu.HoSoId,
                            ThuTucId       = filecu.ThuTucId,
                            DuongDanTep    = name + "." + ext,
                            LoaiTepDinhKem = filecu.LoaiTepDinhKem,
                            DaSuDung       = true
                        };
                        _fileKyRepos.Insert(fileKy);
                        #endregion
                    }
                    #endregion

                    statusResultInsertSignature = "success";
                    signedFileName = name + "." + ext;
                }

                return(Json(new
                {
                    statusResultInsertSignature = statusResultInsertSignature,
                    descErrorInsertSignature = descErrorInsertSignature,
                    signedFileName = signedFileName
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Logger.Error($"{DateTime.Now.ToString("HH:mm:ss dd/MM/yyyy")} InsertSignatrue {ex.Message} {JsonConvert.SerializeObject(ex)}");
                descErrorInsertSignature = "Lỗi trong quá trình xử lý";
                return(Json(new
                {
                    statusResultInsertSignature = statusResultInsertSignature,
                    descErrorInsertSignature = descErrorInsertSignature,
                    signedFileName = signedFileName
                }, JsonRequestBehavior.AllowGet));
            }
        }