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# pour signer numériquement un PDF
- Ajouter des signatures numériques dans des documents PDF à l’aide de C#
- Signez numériquement des documents PDF avec un serveur d’horodatage en C#
- Vérifier la signature numérique dans un PDF à l’aide de 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
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.