C # PdfPKCS7 VerifySignature не удается - PullRequest
       37

C # PdfPKCS7 VerifySignature не удается

0 голосов
/ 07 февраля 2019

Я пытаюсь прочитать атрибуты из цифрового сертификата в C # для нескольких файлов PDF с цифровой подписью.

В той же программе, когда я впервые вызываю функцию VerifySignature, она работает, и я могуполучить детали подписи.Однако, когда я пытаюсь сделать это во второй раз, это терпит неудачу.

PdfReader readerX = new PdfReader(@"Z:\cert\PDF\fdo.pdf");
AcroFields af = readerX.AcroFields;
ArrayList names = af.GetSignatureNames();

for (int i = 0; i < names.Count; ++i)
{
  string name = (string)names[i];
  PdfPKCS7 pk = af.VerifySignature(name); // It works
  MessageBox.Show(pk.SignName);
}

PdfReader readerX2 = new PdfReader(@"Z:\cert\PDF\fdo2.pdf");
AcroFields af2 = readerX2.AcroFields;
ArrayList names2 = af2.GetSignatureNames();

for (int i = 0; i < names2.Count; ++i)
{
   String name = (string)names2[i];
   PdfPKCS7 pk2 = af2.VerifySignature(name); // System.ArgumentOutOfRangeException exception
   MessageBox.Show(pk2.SignName);
}

Я использую разные переменные, и файлы идентичны (fdo2.pdf является копией из fdo.pdf), и оба имеютта же цифровая подпись.Нужно ли каким-то образом "освобождать" первый экземпляр PdfPKCS7, чтобы можно было повторно использовать функциональность?

Заранее спасибо,

...