2012-09-18 1 views
4

J'utilise ITextSharp pour lire des informations de certificat à partir d'un document pdf signé numériquement.Lire le certificat du pdf

La classe ITextSharp.Text.Pdf.PdfPKCS7 expose trois propriétés:

  • Certificates (liste)
  • SignCertificate (comme objet unique)
  • SignCertificateChain (liste)

Comment puis-je combiner ces trois propriétés afin d'obtenir toutes les informations sur un seul certificat?

Je serais en mesure d'afficher tout le chemin du certificat (tous les certificats imbriqués).

Répondre

2

Certificates vous donne la liste dans aucun ordre particulier, y compris les certificats qui ne sont pas utilisés pour la signature principale.

SignCertificate vous donne le certificat du signataire réel.

SignCertificateChain vous donne la liste où le premier certificat est le SignCertificate, le suivant est le certificat de l'instance qui a émis le SignCertificate, le suivant est le certificat de l'instance qui a délivré le certificat précédent, et ainsi de suite. Cela peut renvoyer moins de certificats que Certificates, car seuls les certificats utilisés pour la signature principale seront renvoyés.

Vous n'avez pas besoin de « combiner » les propriétés pour montrer le chemin du certificat, il vous suffit SignCertificateChain. Notez que votre question n'est pas tout à fait claire:

'toutes les informations sur un seul certificat'

genre de contredit avec

« montrer tous les chemins de certificat (tous les certificats imbriqués) »

Si vous voulez visualiser la chaîne qui a abouti au certificat de signature, vous devez regarder plus d'un seul certificat (à moins que le certificat ne soit auto-signé, auquel cas il n'y a qu'un seul élément dans la chaîne).

+0

Ok, la réponse était exactement ce que je cherchais. Ainsi, grâce à SigncertificateChain, je peux restaurer la chaîne de certification principale telle qu'elle est mon but. Merci beaucoup mauch. – bit

+0

uhmmm .. juste une chose: existe-t-il un moyen de récupérer la clé publique des certificats? J'ai jeté un coup d'oeil dans la classe pdfPkcs7 mais je n'ai trouvé aucun moyen. – bit

+0

Je ne sais comment faire cela en Java. C'est une méthode dans le certificat ou la classe X509Certificate. –