我有一个经过数字签名的 pdf,我想检查是否:
1)pdf包含签名
2)如果签名有效
我已经使用 iTextSharp 库尝试了一些代码,但没有成功。放置我尝试过的解决方案之一,但没有成功。特别是当我检查 names.Count 时,它成功并立即返回 false。我附上一个屏幕来阅读 AcroFields,我不知道它是否有助于理解问题。我无法摆脱它。
public static bool ValidateFileSignatures(byte[] file)
{
PdfReader reader = new PdfReader(file);
AcroFields af = reader.AcroFields;
var names = af.GetSignatureNames();
if (names.Count == 0)
return false; // no signatures
foreach (string name in names)
{
if (!af.SignatureCoversWholeDocument(name))
{
return false;
}
PdfPKCS7 pk = af.VerifySignature(name);
if (!pk.Verify())
{
return false;
}
}
return true;
}
示例 PDF 可在此处找到
我还找到了另一个使用 Pknet 库的解决方案,但我找不到 NuGet 包。欢迎任何解决方案或建议。谢谢
潇潇雨雨
相关分类