Tag: digital signature

iTextSharp中的Pades LTVvalidation会引发公钥,而不是根CA证书的证书签名

我收到一个带有错误消息的Org.BouncyCastle.Security.InvalidKeyException当使用LtvVerifiervalidationpdf时, 公钥不会出现在证书签名中 。 在绕过CRL LDAP URI的问题之后出现此问题。 用于执行validation的代码与上一篇文章相同: public static bool Validate(byte[] pdfIn, X509Certificate2 cert) { using (var reader = new PdfReader(pdfIn)) { var fields = reader.AcroFields; var signames = fields.GetSignatureNames(); if (!signames.Any(n => fields.SignatureCoversWholeDocument(n))) throw new Exception(“None signature covers all document”); var verifications = signames.Select(n => fields.VerifySignature(n)); var invalidSignature = verifications.Where(v => !v.Verify()); var invalidTimeStamp […]

c#itextsharp如何获取数字签名图像

是否可以使用c#代码使用itextsharp在pdf文件中获取任何数字签名的图像? PdfReader pdf = new PdfReader(“location.pdf”); AcroFields acroFields = pdf.AcroFields; List names = acroFields.GetSignatureNames(); foreach (var name in names) { PdfDictionary dict = acroFields.GetSignatureDictionary(name); } 通过这些简单的线条,我可以获得签名词典,但是从这个对象我无法获得图像的内容。 有人可以帮忙吗?

对Visual Studio 2012 VSIX扩展进行数字签名

我正在尝试签署一个打包为VSIX文件的Visual Studio 2012 extension 。 我已按照http://www.jeff.wilcox.name/2010/03/vsixcodesigning/上的说明进行操作; 但是,我有兴趣在不指定pfx文件和密码的情况下执行签名。 例如,如果我要调用’signtool.exe’,我的命令行将是: “signtool.exe” sign /n MySubjectName /t ‘http://timestamp.verisign.com/scripts/timstamp.dll’ /d “MyDescription” MyPackage.vsix 我知道这个命令不适用于VSIX文件,尽管它适用于MSI存档。 使用此命令,调用signtool时无需指定密码或pfx文件。 使用指定的主题MySubjectName选择已安装的最佳证书。 按照Jeff博客上的代码,签名步骤要求定义pfx文件名和密码以创建签名中使用的X509Certificate2 : private static void SignAllParts(Package package, string pfx, string password, string timestamp){ var signatureManager = new PackageDigitalSignatureManager(package); signatureManager.CertificateOption = CertificateEmbeddingOption.InSignaturePart; /*…*/ signatureManager.Sign(toSign, new System.Security.Cryptography.X509Certificates.X509Certificate2(pfx, password)); } 是否有任何涉及PackageDigitalSignatureManager API可能让我找到基于MySubjectName的X509Certificate ,以便我可以签名?

使用C#生成的数字签名无法在C ++中进行validation

我有一个C#应用程序,它使用RSA对数据进行数字签名。 代码如下: RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); rsa.ImportCspBlob(privateKeyBlob); SHA1 sha1 = new SHA1CryptoServiceProvider(); sha1.ComputeHash(myData); byte[] signature = rsa.SignHash(sha1.Hash, CryptoConfig.MapNameToOID(“SHA1”)); 我无法在C ++中validation签名。 代码如下: HCRYPTPROV cryptProvider; CryptAcquireContext(&cryptProvider, 0, 0, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT); // PROV_RSA_SIG does not work HCRYPTKEY publicKey; CryptImportKey(cryptProvider, publicKeyBlob, publicKeyBlobLength, 0, 0, &publicKey); HCRYPTHASH hash; CryptCreateHash(cryptProvider, CALG_SHA1, 0, 0, &hash); CryptHashData(hash, myData, myDataLength, 0); BOOL isSigOk […]

WCF中SOAP消息的数字签名

我在4.0中有一个WCF服务。 我需要在SOAP响应中添加数字签名。我不太确定它应该如何实现。 我相信响应应该如下面的链接所示。 https://spaces.internet2.edu/display/ISWG/Signed+SOAP+Messages 我有什么地方可以获得这方面的细节吗? 请指教。

我何时应该使用SHA-1,何时应该使用SHA-2?

在我的c#应用程序中,我正在使用RSA签名文件,然后由上传的人上传到我公司的数据库中,在这里我必须选择SHA-1或SHA-2来计算哈希值。 与编程中的任何其他组件一样,我知道必须有一个“在这里使用”和“在那里使用”这两个组件。 那么,什么时候? 那时呢? 编辑: 我的问题是:性能有什么不同? 而不是关于安全性,因为我已经知道SHA-2比SHA-1更安全。 在此链接中 ,不同类型的SHA-2之间的比较注意何时使用SHA-512以及何时不使用SHA-512。 我需要一个关于SHA-1和SHA-2的类似论点。

如何使用ItextSharp检索数字签名信息(名称,日期……)

我有一个由2人(Eid)签名的PDF。 我正在尝试检索这些信息,但到目前为止我还不能。 这是我到目前为止: namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string workingFolder = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); string inputFile = Path.Combine(workingFolder, “Tax Return.pdf”); PdfReader reader = new PdfReader(inputFile); Console.ReadLine(); } } } 如果我在运行期间检查’reader’,我可以看到AcroForm有2个指向签名的字段,但我无法看到有关这些签名的任何特定信息。

validation可执行文件是否已签名(用于签署该exe的signtool)

在我的应用程序中,我需要validation它是否已签名。 如果签名继续执行并退出应用程序,如果没有。 signtool将用于签署应用程序。 有没有C#代码可以做到这一点?

Java数字签名与C#不同

我有以下c#代码从私钥生成数字签名: static string Sign(string text, string certificate) { X509Certificate2 cert = new X509Certificate2(certificate, “TestPassword”, X509KeyStorageFlags.Exportable); RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey; // Hash the data SHA1Managed sha1 = new SHA1Managed(); ASCIIEncoding encoding = new ASCIIEncoding(); byte[] data = encoding.GetBytes(text); byte[] hash = sha1.ComputeHash(data); // Sign the hash return System.Convert.ToBase64String(rsa.SignHash(hash, CryptoConfig.MapNameToOID(“SHA1”))); } 然后我创建了我认为是等效的java代码: public static String signData(String dataToSign, […]

如何对可执行文件进行数字签名?

我正在编写需要管理访问权限的软件。 弹出UAC对话框时,它会显示与未签名软件不同的数字签名软件弹出窗口。 我相信对我的软件进行数字签名将使用户更容易信任我的软件。 数字签名软件需要花费数千美元,还是免费的? 有一个简单的方法吗? 我搜索过谷歌,我得到的是如何签署PHP,XML和PDF文件,这不是我想要的。 我需要签署我的软件可执行文件。 刚看到一些关于sigtool.exe的事情? 这是正确的方向吗? 那些复杂的.pfx文件和Authenticode怎么样?