Signature et Cryptage fichier XML avec php

Signature et Cryptage fichier XML avec php - PHP - Programmation

Marsh Posté le 13-01-2010 à 17:47:30    

Bonjour
 
J'aurais besoin de vos lumières pour signer numériquement et encrypter un fichier XML.
 
J'ai ma clé publique et sa clé privée associée permettant la signature, ainsi que le clé publique permettant le cryptage.
 
J'ai mon fichier XML généré à la volé et sauvegardé sur mon FTP.
 
Ce dont j'ai besoin maintenant, c'est :  
1. Signer ce fichier XML numériquement (sans doute avec openssh_sign)
2. Crypter ce même fichier XML (sans doute avec openssh_public_encrypt)
 
Apres un petit tour sur php.net, je n'ai toujours pas compris comment faire.
 
Mon code fait comme suit :  

Code :
  1. $xml = "<xml>",
  2. // Signature SSH-RSA du fichier (avec clé privée Prévention Routière)
  3. $signature = "";
  4. $fp = fopen("private-key.ppk", "r" );
  5. $private_key = fread($fp, 8192);
  6. fclose($fp);
  7. openssl_sign($xml, $signature, $private_key);
  8. // Fin Signature SSH-RSA du fichier
  9. // Encryptage du fichier (avec clé publique Paybox)
  10. $crypttext = "";
  11. $fp = fopen("authorized_keys_serveur_paybox.txt","r" );
  12. $public_key = fread($fp, 8192);
  13. fclose($fp);
  14. openssl_get_publickey($public_key);
  15. openssl_public_encrypt($xml, $crypttext, $public_key);
  16. return(base64_encode($crypttext));
  17. // Fin Encryptage du fichier
  18. // Création du dit fichier csv
  19. $fp = fopen('exports/mon-export.xml', 'w');
  20. fwrite($fp, $xml);
  21. fclose($fp);


 
Merci de vos retours

Reply

Marsh Posté le 13-01-2010 à 17:47:30   

Reply

Marsh Posté le 13-01-2010 à 20:11:05    

et quel est le problème de ton code ?  
 
Ce que je vois, pour la signature :  
ligne 1 , tu déclare $xml = "<xml>", mai tu ne mets jamais rien de plus dedans. Pourtant ce sont les données que tu signes
tu devrai suivre l'exemple de http://php.net/manual/en/function.openssl-sign.php


---------------

Reply

Marsh Posté le 15-01-2010 à 10:06:16    

En fait, si, je mets beaucoup plus de données, mais je ne voulais pas flooder le post avec l'intégralité de mon fichier XML.
 
Je suis désemparé, je ne comprends pas ce que je dois faire...
 
Merci de votre aide

Reply

Marsh Posté le 18-01-2010 à 16:24:48    

Bonjour
 
un petit up en début de semaine pour signifier que j'ai toujours besoin d'aide
 
Merci encore à vous

Reply

Marsh Posté le 26-07-2010 à 13:37:19    

Bonjours  
j'ai un probléme aidez moi :(
je suis debutant dans le domain des signature electronique et openssl
j'ai utiliser les fonction  openssl_sign($data, $signature, $private_key)
est sa fonctionne correctement et $signature prend une chaine
mais je veux enregistrer cet signature dans un fichier.p7
comment le faire ???

Reply

Marsh Posté le 27-07-2010 à 16:42:21    

J'ai trouvé ça sur www.php.net
a tester :

Code :
  1. <?php
  2. echo "Source: $source";
  3. $fp=fopen ("/path/to/certificate.crt","r" );
  4. $pub_key=fread($fp,8192);
  5. fclose($fp);
  6. openssl_get_publickey($pub_key);
  7. /*
  8. * NOTE:  Here you use the $pub_key value (converted, I guess)
  9. */
  10. openssl_public_encrypt($source,$crypttext,$pub_key);
  11. echo "String crypted: $crypttext";
  12. $fp=fopen("/path/to/private.key","r" );
  13. $priv_key=fread($fp,8192);
  14. fclose($fp);
  15. // $passphrase is required if your key is encoded (suggested)
  16. $res = openssl_get_privatekey($priv_key,$passphrase);
  17. /*
  18. * NOTE:  Here you use the returned resource value
  19. */
  20. openssl_private_decrypt($crypttext,$newsource,$res);
  21. echo "String decrypt : $newsource";
  22. ?>


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 27-07-2010 à 16:45:26    

tonyjaa a écrit :

Bonjours  
j'ai un probléme aidez moi :(
je suis debutant dans le domain des signature electronique et openssl
j'ai utiliser les fonction  openssl_sign($data, $signature, $private_key)
est sa fonctionne correctement et $signature prend une chaine
mais je veux enregistrer cet signature dans un fichier.p7
comment le faire ???


 

Code :
  1. openssl_sign() calcule la signature des données data en utilisant l'algorithme SHA1 (hashing) suivi du chiffrage avec la clé privée priv_key_id. Notez que les données elles-mêmes ne sont pas chiffrées.


 voir une autre fonction


---------------
Tout à commencé par un rêve...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed