private SigObj GetRefSigFromDb(string name, string email) { if (sigDb == null) { return(null); } foreach (SignatureReference sigRef in sigDb.List) { if (sigRef.Name == name && sigRef.Email == email) { SigObj sigObj = new SigObj(); if (sigObj.ReadEncodedBitmap(sigRef.SigText) == ReadEncodedBitmapResult.ReadEncodedBitmapOK) { return(sigObj); } else { MessageBox.Show("Unable to read signature from database, it may be corrupted"); return(null); } } } return(null); }
public void loadSignInfo(string pdf_filename) { PdfReader reader = new PdfReader(pdf_filename); Dictionary <string, System.Drawing.Image> dict = PdfImageExtractor.ExtractImages(pdf_filename); int sigIndex = 1; foreach (string key in dict.Keys) { System.Drawing.Image img = dict[key]; MemoryStream ms = new MemoryStream(); if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp)) { img.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); } else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Tiff)) { img.Save(ms, System.Drawing.Imaging.ImageFormat.Tiff); } else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png)) { img.Save(ms, System.Drawing.Imaging.ImageFormat.Png); } SigObj sig = new SigObj(); ReadEncodedBitmapResult result = sig.ReadEncodedBitmap(ms.ToArray()); if (result == ReadEncodedBitmapResult.ReadEncodedBitmapOK) { //MessageBox.Show(sig.Who + " " + sig.Why + " " + sig.When); treeView1.BeginUpdate(); treeView1.Nodes.Add("Signature " + sigIndex); treeView1.Nodes[sigIndex - 1].Nodes.Add("Name: " + sig.Who); treeView1.Nodes[sigIndex - 1].Nodes.Add("Reason: " + sig.Why); treeView1.Nodes[sigIndex - 1].Nodes.Add("Timestamp: " + sig.When); treeView1.Nodes[sigIndex - 1].Nodes.Add("Digitizer: " + sig.get_AdditionalData(CaptData.CaptDigitizer)); treeView1.Nodes[sigIndex - 1].Nodes.Add("Digitizer Driver: " + sig.get_AdditionalData(CaptData.CaptDigitizerDriver)); treeView1.Nodes[sigIndex - 1].Nodes.Add("Machine OS: " + sig.get_AdditionalData(CaptData.CaptMachineOS)); treeView1.Nodes[sigIndex - 1].Nodes.Add("Network Card: " + sig.get_AdditionalData(CaptData.CaptNetworkCard)); treeView1.EndUpdate(); sigIndex = sigIndex + 1; } treeView1.ExpandAll(); } }
public void loadSignInfo(string pdf_filename) { PdfReader reader = new PdfReader(pdf_filename); AcroFields fields = reader.AcroFields; int sigIndex = 1; SignatureImageExtractor extractor = new SignatureImageExtractor(reader); foreach (string sigFieldName in fields.GetSignatureNames()) { PdfImageObject image = extractor.extractImage(sigFieldName); MemoryStream ms = new MemoryStream(image.GetImageAsBytes()); SigObj sig = new SigObj(); ReadEncodedBitmapResult result = sig.ReadEncodedBitmap(ms.ToArray()); if (result == ReadEncodedBitmapResult.ReadEncodedBitmapOK) { //MessageBox.Show(sig.Who + " " + sig.Why + " " + sig.When); treeView1.BeginUpdate(); treeView1.Nodes.Add("Signature " + sigIndex); treeView1.Nodes[sigIndex - 1].Nodes.Add("Name: " + sig.Who); treeView1.Nodes[sigIndex - 1].Nodes.Add("Reason: " + sig.Why); treeView1.Nodes[sigIndex - 1].Nodes.Add("Timestamp: " + sig.When); treeView1.Nodes[sigIndex - 1].Nodes.Add("Digitizer: " + sig.get_AdditionalData(CaptData.CaptDigitizer)); treeView1.Nodes[sigIndex - 1].Nodes.Add("Digitizer Driver: " + sig.get_AdditionalData(CaptData.CaptDigitizerDriver)); treeView1.Nodes[sigIndex - 1].Nodes.Add("Machine OS: " + sig.get_AdditionalData(CaptData.CaptMachineOS)); treeView1.Nodes[sigIndex - 1].Nodes.Add("Network Card: " + sig.get_AdditionalData(CaptData.CaptNetworkCard)); treeView1.Nodes[sigIndex - 1].Nodes.Add("Signature Covers whole document: " + fields.SignatureCoversWholeDocument(sigFieldName).ToString()); treeView1.Nodes[sigIndex - 1].Nodes.Add("Document Revision: " + fields.GetRevision(sigFieldName).ToString() + " of " + fields.TotalRevisions.ToString()); PdfPKCS7 pkcs7 = fields.VerifySignature(sigFieldName); treeView1.Nodes[sigIndex - 1].Nodes.Add("Integrity Check OK? " + pkcs7.Verify().ToString()); treeView1.EndUpdate(); sigIndex = sigIndex + 1; } ms.Close(); } treeView1.ExpandAll(); }
private void getSignatureFromPdf(string pdf_filename) { bool imagesFound = PdfImageExtractor.PageContainsImages(pdf_filename, 1); if (imagesFound) { Dictionary <string, System.Drawing.Image> dict = PdfImageExtractor.ExtractImages(pdf_filename, 1); foreach (string key in dict.Keys) { System.Drawing.Image img = dict[key]; img.Save("sign.png"); SigObj sig = new SigObj(); ReadEncodedBitmapResult result = sig.ReadEncodedBitmap("sign.png"); if (result == ReadEncodedBitmapResult.ReadEncodedBitmapOK) { MessageBox.Show(sig.Who + " " + sig.Why + " " + sig.When); } } } }