Signature numérique de PDF sous linux

Fermé
olreak Messages postés 21 Date d'inscription vendredi 7 janvier 2011 Statut Membre Dernière intervention 5 décembre 2015 - 23 août 2012 à 21:33
olreak Messages postés 21 Date d'inscription vendredi 7 janvier 2011 Statut Membre Dernière intervention 5 décembre 2015 - 25 août 2012 à 14:56
Bonjour,

Connaissez-vous un petit utilitaire linux en ligne de commande permettant de signer un fichier PDF existant en utilisant un certificat numérique.

Si c'est open source et en C ou C++ c'est encore mieux, mais je ferai sans.

Merci

A voir également:

2 réponses

jeanbi Messages postés 15118 Date d'inscription samedi 9 décembre 2006 Statut Contributeur Dernière intervention 6 février 2023 2 177
23 août 2012 à 22:07
0
olreak Messages postés 21 Date d'inscription vendredi 7 janvier 2011 Statut Membre Dernière intervention 5 décembre 2015 18
23 août 2012 à 22:32
Merci pour cette réponse.

En fait j'étais déjà tombé sur cette application et quelques autres en cherchant dans google. Mais tout ce que je trouve nécessite java ou .Net (mono).

Bref, j'aimerai vraiment trouvé une application native parce l'objectif est de signer des PDF que mon application crée automatiquement avec la bibliothèque hpdf (http://libharu.org ) et lancer un JRE à chaque fois que je veux signer un PDF ça me parait un peu lourd.

Je suis un peu surpris qu'il semble ne pas exister un petit utilitaire natif adhoc dans linux car la signature numérique d'un PDF est une opération relativement basique. J'ai peut être mal cherché?

Encore merci
0
jeanbi Messages postés 15118 Date d'inscription samedi 9 décembre 2006 Statut Contributeur Dernière intervention 6 février 2023 2 177
23 août 2012 à 23:04
re,
et gpg ne te conviendrai pas vu que ça fonctionne ne ligne de commande c'est assez simple à utiliser dans une appli.
a+
0
olreak Messages postés 21 Date d'inscription vendredi 7 janvier 2011 Statut Membre Dernière intervention 5 décembre 2015 18
23 août 2012 à 23:30
Je connais très mal, jamais utilisé.

Ça permet de signer des PDF avec des certificats numériques ? Si c'est le cas ce serait parfait mais en cherchant avec google dans cette direction je ne vois pas en quoi ça insère une signature dans un PDF.

Pour résumer mon problème est beaucoup plus sur la gestion du format PDF: quelle partie du fichier faut-il signer et comment insérer la signature. Pour d'autres usage j'ai déjà l'habitude d'utiliser openssl pour manipuler les certificats numériques et les signatures.

L'idée étant que Adobe Reader reconnaisse et valide automatiquement cette signature (pour peu d'avoir utiliser un certificat d'une autorité reconnue par Adobe).
0
jeanbi Messages postés 15118 Date d'inscription samedi 9 décembre 2006 Statut Contributeur Dernière intervention 6 février 2023 2 177
24 août 2012 à 07:10
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 24/08/2012 à 19:18
Salut olreak,

Au sujet de GPG, qui a été proposé, il ne gère pas l'incorporation d'une signature électronique à un fichier PDF à ma connaissance.

Tu pourrais utiliser iText (librairie Java sur laquelle tu as dû tomber) et créer une application Java qui fait ce que tu veux en utilisant les fonctions de signature électronique de iText. Puis, tu convertis le bytecode en code natif pour ton système avec GCJ :

https://gcc.gnu.org/

C'est comme cela que fait Pdftk (selon https://en.wikipedia.org/wiki/Pdftk qui se base aussi sur iText. Ou tu peux utiliser PortableSigner en Java aussi, semble-t-il, et faire de même (je ne connaissais pas, merci à jeanbi de l'avoir signalé :-).

Attention à la licence de iText. C'est du AGPLv3 dans les versions actuelles.

C'est nettement plus contraignant que la licence bien sympathique de HARU que je découvre grâce à toi (merci !).

Cela marche bien HARU ?


Dal
-1
olreak Messages postés 21 Date d'inscription vendredi 7 janvier 2011 Statut Membre Dernière intervention 5 décembre 2015 18
25 août 2012 à 14:56
Merci pour ce conseil concernant GCJ car j'utilise déjà par ailleurs plusieurs modules Java que j'ai développé moi même et je n'avais pas pensé que je pouvais les compiler en code natif plutôt que de lancer un JRE à chaque fois. Je vais étudier la question.

Sion iText est effectivement l'un des premiers logiciels que j'avais trouvé, d'autant qu'il contient plein de fonctionnalités intéressantes, je me demande d'ailleurs si tous les outils java (puisque c'est à peu près les seuls outils open source qu'on trouve) ne sont ce sont pas tous inspiré d'un même code source...

Puisqu'il ne semble pas exister quelque chose de disponible directement en C/C++ je pense que je vais plutôt m'orienté vers l'utilisation de signserver (développé en JAVA aussi) qu'il se trouve qu'on utilise déjà par ailleurs et qui est donc déjà opérationnel sur nos serveurs.

Concernant la bibliothèque Haru (hpdf) elle fonctionne très bien oui, c'est une bibliothèque open source qui permet de généré des Pdf avec une grande liberté. Il y a une limitation importante qui est qu'elle permet de générer des PDF mais pas d'en ouvrir, donc impossible d'importer un PDF pour le modifier. Cela-dit même les bibliothèques payantes semblent séparer les deux et il faut payer plusieurs licences pour pouvoir générer et importer.

Le seul truc auquel j'ai du me faire, mais qui est finalement assez logique, c'est que Haru ne possède pas de fonctionnalité de «traitement de texte». Par exemple, il y a une fonction qui permet d'insérer un texte dans un rectangle en choisissant l'alignement, à gauche, à droite, centrée, justifié. Pratique sauf qu'elle ne fonctionne que pour un texte entièrement dans un même format. Mais si tu veux par exemple insérer du texte justifié avec du texte dans différentes polices (pour mettre certains mots en gras par exemple) tu ne peux plus utiliser cette fonction directement. Il faut aller développer son propre algo d'insertion de texte en utilisant des fonctions un peu plus basique. Bref, rien de très compliqué pour un développeur confirmé mais il faut prendre le temps de bien développé ses propres fonctions de traitement de texte.

Personnellement la seule vrai contrainte à laquelle j'ai dû faire avec est que la version actuelle ne supporte par l'encodage UNICODE alors que nos logiciels le font (notre framework principal est Qt). Je fais avec en utilisant l'encodage latin9 (ISO 8859-15) qui possède déjà tous les caractères nécessaires au français. La prochaine version de Haru devrait supporté UTF8 donc ça règlera la question mais j'imagine que ce sera un peu plus compliqué à gérer vu que l'encode UTF8 peut utiliser en 1 et 4 octets pour les caractères alors qu'en utilisant latin9 un caractère == un octet ce qui a simplifié un certain nombre de mes algos de traitement de texte.
0