Bonjour a tous. J'ai un drole de souci.
Mon projet consiste à pouvoir signer électroniquement des documents sur un intranet par insertion d'une clé usb. L'intranet est écrit en php.
La clé privée pour signer est stockée sur une clé usb. Quand un utilisateur choisi signature électronique l'intranet attend que la clé lui soit envoyé par socket. J'ai donc créé une petite application client en PHP qui detecte la clé USB , qui extrait la clé pivé et qui envoie la clé au serveur. Cette application marche nickel. Mais voila c'est pas tres portable. J'ai donc décider de refaire cette petite applic client en java.
Dans le client java j'ai un bug assez important quand je lis le fichier qui contient la clé alors que ça fonctionnait tres bien en PHP.
J'ai donc fais des petites comparaisons entre l'ouverture de ce fichier en PHP et en JAVA.
voici le test en PHP(je sais on est dan le forum java mais c est pas long).
Ce code me renvoie "la cle chaine a pour longueur 1679". Cette chaine est une clé correct j'arrive a la convertir en ressource clé privé pour openSSL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $f=fopen ("E:\carte\bbibi\baba_bibi.pem","r"); $cle_chaine=fread($f,2048); echo "cle chaine a pour longueur".strlen($cle_chaine);
En java j'ai fais le test suivant sur le même fichier.
Ce test me renvoie longueur de cle=1652.J'envoie cette chaine au serveur et j'essai de la convertir en ressource cle privé evidemment ça ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 String chemin="E:\\carte\\bbibi\\baba_bibi.pem"; String cle=""; BufferedReader rf =new BufferedReader(new FileReader("chemin)); int nb_carac=0; while ( (s=rf.readLine())!=null) { s1=s1+s; } cle=s1; System.out.println("longueur de cle="+cle);
Ma question est pourquoi en lisant ce fichier en JAVA il m'enleve des caracteres alors qu en PHP ce n'est pas le cas?
Est ce que j'utilise la bonne classe pour lire dans le fichier(j'ai vu cette façon de parcouri un fichier dans "penser en Java").
Je mis la clé dans un fichier texte meme si je pense que ce n'est pas la même chose que le fichier PEM
Partager