Cette page peut contenir du texte traduit automatiquement.
Ajouter des informations de validation à long terme (PAdES-LTV) aux signatures PDF en C# et VB.NET
Les informations de Validation à long terme (LTV) pour les signatures PDF aident à vérifier les signatures numériques longtemps après leur création. Sans LTV, une signature numérique devient impossible à vérifier une fois que le certificat du signataire expire ou que les données de révocation ne sont plus disponibles. Cela est souvent inacceptable pour les documents PDF juridiques et financiers qui doivent rester fiables pendant des années.

Cet article comporte deux parties : théorique et pratique. D’abord, vous découvrirez les informations de base sur les signatures PAdES-LTV. Ensuite, vous verrez comment ajouter des informations LTV aux signatures PDF en C# à l’aide de la bibliothèque Docotic.Pdf. Vous pouvez obtenir la bibliothèque et une clé de licence gratuite à durée limitée sur la page Télécharger la bibliothèque PDF C# .NET.
PAdES - Signatures électroniques avancées de PDF
L’Institut européen des normes de télécommunications (ETSI) a publié plusieurs normes pour les signatures électroniques. En particulier, l’Institut définit la norme PDF Advanced Electronic Signature (PAdES) dans la spécification ETSI EN 319 142. PAdES décrit comment rendre les signatures PDF conformes aux réglementations européennes eIDAS.
Le concept central des signatures LTV consiste à incorporer des informations liées à la validation (VRI) dans un PDF. Ces informations permettent de valider des signatures PDF après une longue période, même lorsque l’environnement de signature n’est plus disponible.
La spécification ETSI EN 319 142-1 définit quatre niveaux de signatures de base PAdES : B-B, B-T, B-LT et B-LTA. Dans cet article, je me concentrerai sur les niveaux B-LT et B-LTA, car ils concernent les signatures PDF avec LTV activée.
PAdES-B-B
Les signatures PDF numériques à court terme au format ETSI.CAdES.detached correspondent à ce niveau. L’article Signer des documents PDF en C# et VB.NET explique comment créer de telles signatures.
PAdES-B-T
Les signatures B-T doivent satisfaire aux exigences du niveau B-B et inclure également un horodatage.
PAdES-B-LT
Les signatures B-LT doivent être conformes au niveau B-T. De plus, un fichier PDF doit inclure le dictionnaire Document Security Store (DSS) avec les données suivantes :
- Tous les certificats de la chaîne de confiance
- Réponses du Online Certificate Status Protocol (OCSP)
- Listes de révocation de certificats (CRL)
Les signatures électroniques avancées correspondent à ce niveau.
PAdES-B-LTA
Les signatures B-LTA doivent être conformes au niveau B-LT. De plus, un fichier PDF doit inclure une signature d’horodatage du document et VRI pour le certificat d’horodatage du document.
Les signatures électroniques qualifiées correspondent à ce niveau.
Validation PAdES
Une option consiste à utiliser Adobe Acrobat Pro ou Adobe Reader. Ouvrez le panneau Signatures et développez une signature numérique pour vérifier son état. Si la signature est valide, vous verrez soit « La signature est activée pour LTV », soit « La signature n’est pas activée pour LTV et expirera après ».

Une autre option consiste à utiliser le validateur PAdES de la Commission européenne. Cette méthode fonctionne mieux lors de la validation de documents conformes à l’UE (eIDAS).
Il existe aussi le Signatures Conformance Checker d’ETSI. Ce service est principalement conçu pour les développeurs qui travaillent sur des outils de signature ou de validation.
Gardez à l’esprit que ces validateurs peuvent fournir des résultats différents pour un même document PDF.

Créer des signatures PDF activées pour LTV en C# et VB.NET
Il est temps d’écrire du code ! Docotic.Pdf fournit les méthodes PdfDocument.AddLtvInfo pour ajouter des informations LTV aux signatures PDF. Pour produire des signatures B-LTA, vous aurez également besoin des méthodes PdfDocument.TimestampAndSave pour enregistrer des PDF avec des signatures d’horodatage du document.
Comment créer des signatures PAdES-B-LT en C#
Le processus de création des signatures B-LT comprend trois étapes :
- Créer une signature B-T et enregistrer le document.
- Ouvrir le document signé et ajouter des informations LTV.
- Enregistrer le document final de manière incrémentielle.
Voici le code C# pour créer des signatures B-LT. Vous pouvez également télécharger le projet d’exemple complet Créer une signature PDF compatible LTV depuis GitHub :
// 1. Créer une signature PAdES-B-T
using var step1 = new MemoryStream();
using (var pdf = new PdfDocument())
{
var options = new PdfSigningOptions(..)
{
DigestAlgorithm = PdfDigestAlgorithm.Sha256,
Format = PdfSignatureFormat.CadesDetached,
};
options.Timestamp.AuthorityUrl = new Uri("http://timestamp.digicert.com");
pdf.SignAndSave(options, step1);
}
// 2. Ouvrir le document signé et ajouter des informations LTV
using (var pdf = new PdfDocument(step1))
{
pdf.AddLtvInfo();
// 3. Enregistrer le document final de manière incrémentielle
var incrementalOptions = new PdfSaveOptions()
{
WriteIncrementally = true,
};
pdf.Save("b-lt.pdf", incrementalOptions);
}
Il y a quelques points clés à prendre en compte. D’abord, vous pouvez créer PdfSigningOptions à l’aide d’un certificat PKCS#12 (.pfx ou .p12) ou d’un signataire externe. Quelle que soit la méthode, pour respecter PAdES, l’option Format doit être définie sur PdfSignatureFormat.CadesDetached.
Cet extrait de code utilise http://timestamp.digicert.com, mais vous pouvez utiliser toute autre autorité d’horodatage (TSA). Voici quelques alternatives populaires :
http://timestamp.comodoca.com/rfc3161
http://timestamp.sectigo.com
http://timestamp.entrust.net/TSS/RFC3161sha2TS
http://rfc3161timestamp.globalsign.com/advanced
Pour être conforme aux spécifications ETSI, vous devez utiliser une TSA approuvée par eIDAS. Vous pouvez en choisir une à l’aide du Navigateur des listes de confiance UE/EEE.
L’enregistrement du document intermédiaire après la première étape est obligatoire. Vous devez signer et enregistrer le document avant d’ajouter des informations LTV. Cependant, il existe une exception à cette règle, que j’explique plus bas dans la section Certifier un PDF avec LTV.
La ligne WriteIncrementally = true à l’étape trois active l’enregistrement incrémentiel. Les mises à jour incrémentielles n’invalident pas les signatures numériques. Vous devez toujours enregistrer les fichiers PDF de manière incrémentielle lors de l’ajout d’informations LTV.
Comment créer des signatures PAdES-B-LTA en C#
La génération des signatures B-LTA est similaire, sauf pour l’étape trois. Vous devez :
- Créer une signature B-T et enregistrer le document.
- Ouvrir le document signé et ajouter des informations LTV.
- Enregistrer le document final de manière incrémentielle avec une signature d’horodatage du document.
Cet exemple de code montre comment créer des signatures B-LTA en C# :
var timestampAuthorityUrl = new Uri("http://timestamp.digicert.com");
// 1. Créer une signature PAdES-B-T
using var step1 = new MemoryStream();
using (var pdf = new PdfDocument())
{
var options = new PdfSigningOptions(..)
{
DigestAlgorithm = PdfDigestAlgorithm.Sha256,
Format = PdfSignatureFormat.CadesDetached,
};
options.Timestamp.AuthorityUrl = timestampAuthorityUrl;
pdf.SignAndSave(options, step1);
}
// 2. Ouvrir le document signé et ajouter des informations LTV
using (var pdf = new PdfDocument(step1))
{
pdf.AddLtvInfo();
// 3. Enregistrer le document final de manière incrémentielle avec une signature d’horodatage du document
var timestampOptions = new PdfSignatureTimestampOptions
{
AuthorityUrl = timestampAuthorityUrl,
};
var incrementalOptions = new PdfSaveOptions()
{
WriteIncrementally = true,
};
pdf.TimestampAndSave(timestampOptions, "b-lta.pdf", incrementalOptions);
}
Le document final b-lta.pdf contient deux signatures : la signature principale de l’étape un et la signature d’horodatage du document de l’étape trois. Vous remarquerez peut-être qu’Adobe Acrobat affiche le message « La signature est activée pour LTV » pour les deux signatures. Comment est-il possible que la signature d’horodatage du document soit activée pour LTV alors qu’elle a été créée après l’appel à AddLtvInfo ?
L’astuce consiste à utiliser la même
TSA
pour l’horodatage de la signature et l’horodatage du document. La méthode AddLtvInfo ajoute
VRI
pour le certificat d’horodatage. L’horodatage du document utilise alors le même certificat et réutilise les données associées.
Vous ne pouvez pas utiliser la même TSA pour l’horodatage du document ? J’examine ce cas dans la section Conversion de PAdES-B-T en B-LTA.
Ajouter des informations LTV à des signatures PDF existantes en C# et VB.NET
Jusqu’à présent, j’ai créé des signatures activées pour LTV à partir de zéro. Cependant, il est souvent nécessaire de modifier des signatures PAdES-B-T existantes. Par exemple, pour les convertir en B-LT ou B-LTA, ou pour actualiser les informations LTV.
Comme dans les exemples précédents, vous devez :
- Ouvrir le document signé et ajouter des informations LTV.
- Enregistrer le document final de manière incrémentielle, avec ou sans signature d’horodatage du document.
Voici les extraits de code correspondants.
Comment convertir des signatures PAdES-B-T en B-LT en C#
using var pdf = new PdfDocument("b-t.pdf");
pdf.AddLtvInfo();
var incrementalOptions = new PdfSaveOptions()
{
WriteIncrementally = true,
};
pdf.Save("b-lt.pdf", incrementalOptions);
Comment convertir des signatures PAdES-B-T en B-LTA en C#
using var pdf = new PdfDocument("b-t.pdf");
pdf.AddLtvInfo();
var timestampOptions = new PdfSignatureTimestampOptions
{
AuthorityUrl = new Uri("http://timestamp.digicert.com"),
};
var incrementalOptions = new PdfSaveOptions()
{
WriteIncrementally = true,
};
pdf.TimestampAndSave(timestampOptions, "b-lta.pdf", incrementalOptions);
Téléchargez le projet d’exemple complet Ajouter des informations LTV aux signatures existantes. sur GitHub.
Ajouter des informations LTV à une signature d’horodatage du document
Les signatures B-T existantes peuvent utiliser une TSA arbitraire différente de celle utilisée dans cet exemple. Dans ce cas, Adobe Acrobat affichera le message « La signature n’est pas activée pour LTV » pour la signature d’horodatage du document.
Comment l’activer pour LTV ? Vous devez ajouter des informations LTV à la signature d’horodatage du document :
var timestampOptions = new PdfSignatureTimestampOptions
{
AuthorityUrl = new Uri("http://timestamp.digicert.com"),
};
var incrementalOptions = new PdfSaveOptions()
{
WriteIncrementally = true,
};
using var intermediate = new MemoryStream();
using (var pdf = new PdfDocument("b-t.pdf"))
{
pdf.AddLtvInfo();
pdf.TimestampAndSave(timestampOptions, intermediate, incrementalOptions);
}
// Ajouter des informations LTV à la signature d’horodatage du document
using (var pdf = new PdfDocument(intermediate))
{
pdf.AddLtvInfo();
pdf.TimestampAndSave(timestampOptions, "b-lta.pdf", incrementalOptions);
}
Certifier un PDF avec LTV en C# et VB.NET
Les signatures numériques dans les documents PDF certifiés n’autorisent aucune modification. Les applications de lecture PDF affichent ces signatures avec une icône spéciale et une légende qui commence par « Certifié par ».

Toute modification d’un PDF certifié invalide la signature, ce qui signifie que vous ne pouvez pas ajouter d’informations LTV sans rompre la certification.
Docotic.Pdf permet de générer des documents PDF certifiés avec des informations LTV. Utilisez la surcharge AddLtvInfo(PdfSigningOptions) pour ajouter des informations LTV pendant la signature. Cet exemple de code montre comment certifier un PDF avec une signature B-LT en C# :
using var pdf = new PdfDocument();
var options = new PdfSigningOptions(..)
{
DigestAlgorithm = PdfDigestAlgorithm.Sha256,
Format = PdfSignatureFormat.CadesDetached,
Type = PdfSignatureType.AuthorNoChanges,
};
options.Timestamp.AuthorityUrl = new Uri("http://timestamp.digicert.com");
pdf.AddLtvInfo(options);
pdf.SignAndSave(options, "certified-b-lt.pdf");
Explorez l’exemple de code Certifier des PDF avec des signatures LTV sur GitHub.
En juin 2025, Adobe Acrobat prend en charge les documents PDF certifiés avec des signatures B-LT, mais considère les signatures B-LTA dans des documents certifiés comme invalides.
Conclusion
Vous pouvez ajouter des informations de Validation à long terme (LTV) aux signatures PDF pour garantir la conformité légale et la confiance à long terme. La norme PAdES définit les règles et les niveaux de conformité pour les signatures PDF.
Il est recommandé de signer avec au moins des signatures PAdES-B-T. Les signatures B-T peuvent être converties en signatures électroniques avancées (B-LT) ou en signatures électroniques qualifiées (B-LTA) sans rompre les validations existantes.
Utilisez la bibliothèque Docotic.Pdf pour ajouter des informations LTV aux signatures PDF dans des applications .NET. Vous pouvez même certifier des documents PDF avec LTV.
Explorez des exemples de code pour les signatures numériques dans les PDF sur GitHub. Consultez les articles associés pour plus d’informations :
- Signer des documents PDF en C# et VB.NET
- Vérifier la signature PDF en C# et VB.NET
- Comment signer des PDF avec des jetons USB et des dispositifs HSM en C# et VB.NET
Questions fréquemment posées
Comment éviter le message "La validité de la signature est inconnue" dans Adobe Acrobat ?
Adobe Acrobat affiche l’avertissement « Signature validity is unknown » lorsqu’il ne peut pas vérifier le certificat du signataire. Cela se produit généralement lorsque le certificat est manquant, non approuvé, auto-signé, révoqué, expiré ou pas encore actif.
Obtenez le bon certificat pour éviter l’avertissement ou créez des documents conformes à l’UE (eIDAS).
Sinon, vous pouvez ajouter manuellement des certificats à « Trusted Certificates » dans Adobe Acrobat. Cette option est disponible sous : Menu > Preferences > Signatures > Identities & Trusted Certificates.
Si vous devez faire confiance à un certificat pour des documents certifiés, assurez-vous d’accorder l’autorisation correspondante :

Comment vérifier si une signature PDF est activée pour LTV ?
Vous pouvez utiliser Adobe Reader ou le validateur PAdES de la Commission européenne. Consultez la section Validation PAdES pour plus de détails.
Pourquoi Adobe Acrobat affiche-t-il « La signature n’est pas activée pour LTV » ?
Adobe Acrobat vérifie les informations de révocation dans le cadre du processus de validation de la signature. S’il doit télécharger des données, la signature correspondante n’est pas activée pour LTV.
Comment faire en sorte qu’une signature PDF soit conforme aux spécifications ETSI ?
Suivez les exigences des signatures électroniques avancées PDF. Vous devez utiliser des certificats émis par des fournisseurs répertoriés dans les Listes de confiance de l’Union européenne (EUTL).
Comment obtenir l’indicateur « La signature est activée pour LTV » dans Adobe Reader ?
D’abord, la signature doit être conforme au moins au niveau PAdES-B-T. Ensuite, vous devez ajouter des informations LTV, y compris tous les certificats de la chaîne de confiance, OCSP réponses, et CRLs .
Les sections Créer une signature PDF activée pour LTV et Ajouter des informations LTV à des signatures PDF existantes expliquent comment ajouter des informations LTV en C# et VB.NET.
Comment activer LTV pour une signature d’horodatage du document ?
Le processus est similaire à celui des signatures PDF ordinaires. Vous devez ajouter les informations LTV de la signature d’horodatage du document au DSS dictionnaire.
Reportez-vous à l’exemple de code dans la section Ajouter des informations LTV à une signature d’horodatage du document.
Est-il possible d’effectuer LTV et l’horodatage dans la même opération ?
Oui ! Consultez l’exemple de code dans la section Comment convertir des signatures PAdES-B-T en B-LTA.
Comment créer une signature numérique avec LTV en C# ?
Utilisez la bibliothèque Docotic.Pdf. Pour produire des signatures électroniques avancées, consultez les exemples de code dans la section Comment créer une signature PAdES-B-LT. Pour créer des signatures électroniques qualifiées, consultez la section Comment créer une signature PAdES-B-LTA.
Comment activer LTV pour une signature lorsque « aucune modification n’est autorisée » ?
Pour les documents certifiés, Adobe Acrobat exige que toutes les données LTV soient incluses dans le document signé initial. Consultez la section Certifier un PDF avec LTV pour plus de détails.
Comment activer la Validation à long terme (LTV) lors de la signature externe de documents PDF ?
Utilisez la bibliothèque Docotic.Pdf pour signer des documents PDF avec LTV à l’aide de jetons USB, de cartes à puce ou de HSM cloud. Consultez l’article Comment signer des PDF avec des jetons USB et des dispositifs HSM en C# et VB.NET et la section Comment créer une signature PAdES-B-LT.
Comment signer un PDF avec plusieurs signatures et activer LTV ?
Combinez les exemples de code Signer un formulaire PDF par plusieurs personnes et Ajouter des informations LTV aux signatures existantes..