Signatures numériques

Signatures numériques

Aspose.Words FOSS pour .NET peut inspecter et vérifier les signatures numériques déjà attachées à un .docx document via le Aspose.Words.DigitalSignatures espace de noms. Cette édition couvre la signature verification — lecture des métadonnées de la signature, vérification de la validité et examen du certificat de signature. Elle n’inclut pas la capacité de créer de nouvelles signatures sur un document.


Lecture des signatures à partir d’un document

Chaque Document expose une propriété DigitalSignatures renvoyant un DigitalSignatureCollection — une collection en lecture seule et énumérable d’objets DigitalSignature déjà présents dans le fichier chargé. DigitalSignatureUtil.LoadSignatures(fileName) (et la surcharge LoadSignatures(stream)) lit les signatures directement depuis un fichier ou un flux sans charger le document complet dans un objet Document, ce qui est utile lorsque vous avez seulement besoin de vérifier l’état des signatures. La propriété IsValid de la collection indique si chaque signature qu’elle contient est valide, et Count indique combien de signatures ont été trouvées.


Inspection d’une signature individuelle

Chaque DigitalSignature expose IsValid (indiquant si la signature est cryptographiquement valide), SignatureType (une valeur DigitalSignatureType — CryptoApi, XmlDsig ou Unknown), SignTime, Comments, SubjectName, IssuerName, et les octets bruts SignatureValue. La propriété CertificateHolder renvoie un objet CertificateHolder encapsulant le certificat de signature; sa propriété Certificate expose le X509Certificate2 sous-jacent afin que vous puissiez inspecter les champs standards du certificat (émetteur, sujet, période de validité) avec les propres API de certificat de .NET.


Ce qui n’est pas pris en charge dans cette édition

La surface API déclare toujours des membres liés à la signature — DigitalSignatureUtil.Sign(), SignOptions, et XmlDsigLevel — pour assurer la compatibilité structurelle avec le modèle d’objet commercial Aspose.Words pour .NET, mais la création d’une nouvelle signature numérique sur un document n’est pas fonctionnelle dans cette édition FOSS. Utilisez cette édition pour verify les signatures qui existent déjà dans un document ; un flux de travail de signature nécessite Aspose.Words pour .NET.


Conseils et bonnes pratiques

  • Privilégiez DigitalSignatureUtil.LoadSignatures() plutôt que d’ouvrir le Document complet lorsque vous avez seulement besoin de vérifier si un fichier est signé — cela évite le coût de l’analyse de tout le corps du document.
  • Vérifiez d’abord DigitalSignatureCollection.IsValid pour un résultat rapide de réussite/échec avant d’itérer les valeurs individuelles de DigitalSignature.IsValid.
  • SignatureType indique quel mécanisme de signature a produit la signature (CryptoApi vs. XmlDsig); cela influence les champs du certificat qui sont pertinents.
  • Traitez IsValid == false comme une condition d’échec critique dans tout pipeline d’ingestion automatisée de documents — ne faites pas apparaître les métadonnées de signature d’une signature invalide comme fiables.

Problèmes courants

ProblèmeCauseCorrection
DigitalSignatures.Count est 0 sur un .docx signéLe fichier a été réenregistré par un outil qui a supprimé la partie signatureVérifiez avec le fichier signé original, pas avec une copie réenregistrée
La signature indique IsValid = falseLe contenu du document a été modifié après la signature, ou le certificat n’est pas fiable/expiréTraiter comme invalide; ne pas tenter de “repair” la signature
Tenter de signer un document n’a aucun effetLa signature n’est pas implémentée dans cette édition FOSSUtilisez Aspose.Words pour .NET (commercial) pour les flux de travail de signature
CertificateHolder.Certificate lance une exception lors de l’inspectionLes données de certificat sous-jacentes sont mal formées ou la partie signature est corrompueConfirmez que le fichier source est un document signé authentique et non modifié

FAQ

Le Aspose.Words FOSS pour .NET peut-il signer un document?

Non. Cette édition peut vérifier les signatures numériques existantes mais ne peut pas en créer de nouvelles. La méthode DigitalSignatureUtil.Sign() et la classe SignOptions existent dans la surface API pour la compatibilité structurelle, mais la signature n’est pas fonctionnelle ici.

Comment vérifier si un document est signé sans le charger complètement?

Appelez DigitalSignatureUtil.LoadSignatures(fileName), qui renvoie un DigitalSignatureCollection directement depuis le fichier.

Que signifie DigitalSignatureCollection.IsValid?

C’est true uniquement lorsque chaque signature de la collection est individuellement valide — une façon rapide de vérifier l’intégrité globale de la signature du document avant d’inspecter chaque DigitalSignature.

Où puis-je obtenir les détails du certificat d’une signature?

Via DigitalSignature.CertificateHolder.Certificate, qui renvoie un .NET X509Certificate2 standard.


API Reference Résumé

Classe / MéthodeDescription
Document.DigitalSignaturesSignatures déjà jointes à un document chargé
DigitalSignatureUtil.LoadSignatures()Lire les signatures à partir d’un fichier ou d’un flux sans charger le document complet
DigitalSignatureCollectionCollection en lecture seule d’objets DigitalSignature; IsValid, Count
DigitalSignatureUne signature unique : IsValid, SignTime, SubjectName, IssuerName, CertificateHolder
DigitalSignatureTypeÉnumération : CryptoApi, XmlDsig, Unknown
CertificateHolderEnveloppe la signature X509Certificate2

Voir aussi

 Français