Цифрові підписи в документах виглядають подібно до паперових підписів, однак, будучи електронними підписами на основі сертифікатів, вони містять особу підписувача в зашифрованій формі. Сертифікати видаються перевіреними та авторизованими центрами сертифікації. Ці органи ідентифікують особу, якій видаються сертифікати. Тому документи з цифровим підписом можна перевірити в будь-який час. У цій статті я покажу вам, як програмно перевіряти цифровий підпис у документах PDF, Word і Excel за допомогою API GroupDocs.Signature for .NET із C#.

Кроки для перевірки PDF-документа з цифровим підписом

Для демонстрації я використовую PDF-документ для перевірки цифрового підпису. Однак той самий код працюватиме для форматів документів MS Word і Excel.

  1. Завантажте GroupDocs.Signature for .NET або встановіть його за допомогою NuGet.

  2. Додайте наступні простори імен у свій код.

using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;
  1. Завантажте PDF-документ із цифровим підписом за допомогою екземпляра класу Signature.
using (Signature signature = new Signature("sample.pdf"))
{
    // Ваш код міститься тут.
}
  1. Створіть об’єкт DigitalVerifyOptions і вкажіть параметри перевірки.
DigitalVerifyOptions options = new DigitalVerifyOptions("certificate.pfx")
{
    Comments = "Test comment"
};
  1. Викличте метод Verify екземпляра класу Signature і передайте йому DigitalVerifyOptions.
// перевірити підписи на документах
VerificationResult result = signature.Verify(options);
  1. Перевірити результати перевірки з об’єкта VerificationResult.
if (result.IsValid)
{
    Console.WriteLine("\nDocument was verified successfully!");
}
else
{
    Console.WriteLine("\nDocument failed verification process.");
}

Повний код

using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;

using (Signature signature = new Signature("sample.pdf"))
{
    DigitalVerifyOptions options = new DigitalVerifyOptions("certificate.pfx")
    {
        Comments = "Test comment"
    };
    // перевірити підписи на документах
    VerificationResult result = signature.Verify(options);
    if (result.IsValid)
    {
        Console.WriteLine("\nDocument was verified successfully!");
    }
    else
    {
        Console.WriteLine("\nDocument failed verification process.");
    }
}

Таким чином, можна визначити, чи відповідає цифровий підпис у PDF-документі вказаним критеріям чи ні. Нарешті, ви можете позначити документ як дійсний або недійсний. Докладніше про GroupDocs.Signature for .NET API тут.