ajouter une signature numérique au PDF C#

Les signatures numériques sont utilisées pour sécuriser les documents PDF avant qu’ils ne soient partagés avec des tiers. La signature numérique d’un document PDF permet de détecter la falsification en vérifiant le document à l’aide de la signature numérique. Afin de sécuriser les documents PDF par programmation à l’aide de signatures numériques, cet article vous montrera comment ajouter des signatures numériques dans un fichier PDF en C#. Vous apprendrez également à vérifier les signatures numériques dans les fichiers PDF en C#.

API C# .NET pour ajouter des signatures numériques en PDF

Afin d’ajouter et de vérifier les signatures numériques dans les documents PDF, nous utiliserons l’API Aspose.PDF for .NET qui est une puissante API de manipulation de PDF pour créer, éditer, convertir et signer numériquement des documents PDF. Vous pouvez télécharger Aspose.PDF for .NET ou l’installer en utilisant l’une des méthodes suivantes dans Visual Studio :

Gestionnaire de packages NuGet

Signer numériquement un PDF en C#

Console du gestionnaire de packages

PM> Install-Package Aspose.PDF

Ajouter une signature numérique à un PDF en C#

Voici les étapes pour signer un document PDF en utilisant Aspose.PDF for .NET.

  • Créez un objet de la classe Document et initialisez-le avec le chemin du document PDF.
  • Créez un objet de la classe PdfFileSignature et initialisez-le avec l’objet de la classe Document.
  • Créez un objet de classe PKCS7 et initialisez-le avec un chemin de certificat et un mot de passe.
  • Créez et initialisez l’objet de la classe DocMDPSignature pour le type de signature MDP.
  • Créez un Rectangle pour le placement de la signature.
  • Signez numériquement le document PDF à l’aide de la méthode PdfFileSignature.Certify().
  • Enregistrez le document en utilisant la méthode PdfFileSignature.Save().

L’exemple de code suivant montre comment ajouter une signature numérique à un document PDF en C#.

// Charger le document PDF
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		PKCS7 pkcs = new PKCS7("certificate.pfx", "1234567890"); // Use PKCS7/PKCS7Detached objects
		DocMDPSignature docMdpSignature = new DocMDPSignature(pkcs, DocMDPAccessPermissions.FillingInForms);
		System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
		// Définir l'apparence de la signature
		signature.SignatureAppearance = @"aspose-logo.png";
		// Créez l'un des trois types de signature
		signature.Certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
		// Enregistrer un fichier PDF signé numériquement
		signature.Save("Digitally Signed PDF.pdf");
	}
}

C# Ajouter une signature numérique au PDF à l’aide du serveur d’horodatage

Vous pouvez également ajouter une signature numérique à un document PDF avec le serveur TimeStamp en fournissant ses détails à l’aide de la classe TimestampSettings. L’exemple de code suivant montre comment signer numériquement un document PDF avec un serveur TimeStamp en C#.

// Charger le document PDF
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		PKCS7 pkcs = new PKCS7("certificate.pfx", "WebSales"); // Use PKCS7/PKCS7Detached objects
		TimestampSettings timestampSettings = new TimestampSettings("https:\\your_timestamp_settings", "user:password"); // User/Password can be omitted
		pkcs.TimestampSettings = timestampSettings;
		System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
		// Créez l'un des trois types de signature
		signature.Sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
		// Enregistrer le fichier PDF de sortie
		signature.Save("Output.pdf");
	}
}

Vérifier un PDF signé numériquement en C#

Voici les étapes pour vérifier la signature numérique dans un document PDF :

  • Créez un objet de la classe Document et initialisez-le avec le chemin du document PDF.
  • Créez un objet de la classe PdfFileSignature et initialisez-le avec l’objet de la classe Document.
  • Accédez à toutes les signatures du document PDF.
  • Vérifiez la validité de la signature à l’aide de la méthode PdfFileSignature.VerifySigned().

L’exemple de code suivant montre comment vérifier la signature numérique dans un PDF à l’aide de C#.

// Charger le document PDF
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		IList<string> sigNames = signature.GetSignNames();
		if (sigNames.Count > 0) // Any signatures?
		{
			if (signature.VerifySigned(sigNames[0] as string)) // Verify first one
			{
				if (signature.IsCertified) // Certified?
				{
					if (signature.GetAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
					{
						// Faire quelque chose
					}
				}
			}
		}
	}
}

Essayez Aspose.PDF for .NET gratuitement

Vous pouvez obtenir une licence temporaire gratuite pour essayer d’utiliser Aspose.PDF for .NET.

Conclusion

Dans cet article, vous avez appris à ajouter des signatures numériques aux fichiers PDF en C#.NET. De plus, vous avez vu comment vérifier les fichiers PDF signés numériquement par programmation en C#. Vous pouvez simplement installer Aspose.PDF for .NET dans vos applications et signer numériquement vos fichiers PDF de manière transparente.

Articles Liés