Verificar Firma en Archivo PDF

Verificar Si el Archivo PDF Está Firmado Usando una Firma

Para verificar si un archivo PDF está firmado usando una firma particular, use el método VerifySigned de la clase PdfFileSignature. Este método requiere el nombre de la firma y devuelve verdadero si el PDF está firmado usando ese nombre de firma. También es posible verificar que un PDF está firmado, sin verificar con qué firma está firmado.

Verificando que un PDF Está Firmado con una Firma Dada

El siguiente fragmento de código le muestra cómo verificar si un PDF está firmado usando una firma dada.

public static void IsPdfSigned()
        {
            PdfFileSignature pdfSign = new PdfFileSignature();
            pdfSign.BindPdf(_dataDir + "DigitallySign.pdf");
            if (pdfSign.ContainsSignature())
                Console.WriteLine("Documento Firmado");
            pdfSign.Close();
        }

Verificando que un PDF está firmado

Para determinar si un archivo está firmado, sin proporcionar el nombre de la firma, utilice el siguiente código.

 public static void IsPdfSignedWithGivenSignature()
        {
            PdfFileSignature pdfSign = new PdfFileSignature();
            pdfSign.BindPdf(_dataDir + "DigitallySign.pdf");
            if (pdfSign.VerifySigned("Signature1"))
            {
                Console.WriteLine("PDF Signed");
            }
            //if (pdfSign.VerifySigned("Signature2"))
            //{
            //    Console.WriteLine("PDF Signed");
            //}
        }

Verificar si la firma es válida

El método VerifySignature de la clase PdfFileSignature le permite validar una firma en particular. Este método requiere el nombre de la firma como entrada y devuelve verdadero si la firma es válida. El siguiente fragmento de código muestra cómo validar una firma.

public static void IsPdfSignatureValid()
        {
            PdfFileSignature pdfSign = new PdfFileSignature();
            pdfSign.BindPdf(_dataDir + "DigitallySign.pdf");
            if (pdfSign.VerifySignature("Signature1"))
            {
                Console.WriteLine("Firma Verificada");
            }
        }