Création d'une application de signature et de chiffrement

Messages postés
1
Date d'inscription
samedi 16 juillet 2016
Dernière intervention
16 juillet 2016
- - Dernière réponse :  fadenca - 21 juil. 2016 à 12:00
Bonjour,
j'ai également pour tache dans le cadre d'un projet de mettre en place une application qui va signer
et chiffrer les documents. je n'ai pas de connaissances assez poussée en programmation ( java ). j'ai
besoin de l'aide des personnes ayant déja eu a traiter un thème semblable s'il vous plait...
merci.
Afficher la suite 

Votre réponse

6 réponses

Messages postés
5306
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
14 décembre 2018
0
Merci
Salut,

Tu butes à quel niveau ?

Commenter la réponse de Twinuts
0
Merci
merci Twinusts d'avoir pris la peine de repondre....la premiere des choses j'aimerai qu'on m'aide a avoir une PKI opensource et par la suite qu'on me montre comment faire interagir cette PKI avec l'application de signature que je suis entrain de mettre sur pieds...merci
Commenter la réponse de fadenca
Messages postés
5306
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
14 décembre 2018
0
Merci
Salut,

Pour ce qui est de la génération des clés tu peux le faire avec openssl ici

Et pour le support des fichiers PKI en java voir la doc

Commenter la réponse de Twinuts
0
Merci
merci Twinuts,
je reviens avec un autre probleme, jai trouvé un code pour signer et sa le fait bien. maintenant le probleme cest que c'est static donc a chaque fois pour appliquer la signature je dois aller changer le nom du document dans le code et mettre le doc a signer dans le dossier qui contient le code souce. j'ai besoin qu'on m'aide a faire en sorte que je puisse charger un document a travers le JFileChooser de Net beans et que le document chargé soit prise en conte quelqu'en soit son nom. svp
Merci

NB: Je ne suis pas programmeur les gars, raison pour laquelle mes question et preoccupation sont un peu betes.

voici le code en question

package sign_pdf ;
 
import java.io.*;
import java.security.*;
import java.security.cert.Certificate;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;


/**
 *


* @author Work Post BILLE

*/
public class Sign_pdf {
/**


* Nom du document PDF généré non signé

*/
 static String fname = ("HelloWorld.pdf") ;
 
 /**


* Nom du document PDF généré signé

*/
 static String fnameS = "HelloWorld_sign.pdf" ;
 
    /**


* @param args the command line arguments

*/
    public static void main(String[] args) {
        
        // TODO code application logic here
   try {
   Sign_pdf.buildPDF() ;
   Sign_pdf.signPdf() ;
  }
  catch(Exception e) { }
 }
 public static void buildPDF() {
 
  // Creation du document
  Document document = new Document();
 
  try {
   // Creation du "writer" vers le doc
   // directement vers un fichier
   PdfWriter.getInstance(document,
     new FileOutputStream(fname));
   // Ouverture du document
   document.open();
 
   // Ecriture des datas
   document.add(new Paragraph("Hello World"));
 
  } catch (DocumentException de) {
   System.err.println(de.getMessage());
  } catch (IOException ioe) {
   System.err.println(ioe.getMessage());
  }
  // Fermeture du document
  document.close();}
 public static final boolean signPdf()
   throws IOException, DocumentException, Exception
 {
  // Vous devez preciser ici le chemin d'acces a votre clef pkcs12
  String fileKey          = "michael.p12" ;
  // et ici sa "passPhrase"
  String fileKeyPassword  = "fossouo" ;
 
  try {
   // Creation d'un KeyStore
   KeyStore ks = KeyStore.getInstance("pkcs12");
   // Chargement du certificat p12 dans el magasin
   ks.load(new FileInputStream(fileKey), fileKeyPassword.toCharArray());
   String alias = (String)ks.aliases().nextElement();
   // Recupération de la clef privée
   PrivateKey key = (PrivateKey)ks.getKey(alias, fileKeyPassword.toCharArray());
   // et de la chaine de certificats
   Certificate[] chain = ks.getCertificateChain(alias);
 
   // Lecture du document source
   PdfReader pdfReader = new PdfReader((new File(fname)).getAbsolutePath());
   File outputFile = new File(fnameS);
   // Creation du tampon de signature
   PdfStamper pdfStamper;
   pdfStamper = PdfStamper.createSignature(pdfReader, null, '\0', outputFile);
   PdfSignatureAppearance sap = pdfStamper.getSignatureAppearance();
   sap.setCrypto(key, chain, null, PdfSignatureAppearance.SELF_SIGNED);
   sap.setReason("Test SignPDF berthou.mc");
   sap.setLocation("");
   // Position du tampon sur la page (ici en bas a gauche page 1)
   sap.setVisibleSignature(new Rectangle(10, 10, 50, 30), 1, "sign_rbl");
 
   pdfStamper.setFormFlattening(true);
   pdfStamper.close();
 
   return true;
  }
  catch (Exception key) {
   throw new Exception(key);
  }
 }
}
Commenter la réponse de fadenca
Messages postés
5306
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
14 décembre 2018
0
Merci
Salut,

Là je pense qu'il y a méprise.
Ici, tu es sur un forum d'entraide pour développeurs, est pas sur le forum d'une SSII.
Nous ne donnons pas de code sur demande et ne faisons en aucun cas le travail pour les autres.

Le mieux reste de te mettre au code, ou bien de payer une prestation (privée, SSII, autre ; via le site de ton choix) pour que tu puisses avoir un soft qui correspond à ton besoin.



Commenter la réponse de Twinuts
Commenter la réponse de fadenca

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.