IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Utiliser gpg en php


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Développeur Full Stack
    Inscrit en
    Janvier 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Janvier 2007
    Messages : 30
    Par défaut [Système] Utiliser gpg en php
    Bonjour,

    Au bout de plus de 24h, j'crois que je peux dire que j'y arrives pas.
    Je cherche à décrypter le fichier 'fichier_crypte.gpg' contenu dans le répertoire 'rep' et l'envoyer dans le fichier 'plop/test4'
    J'ai essayé vraiment pas mal de méthodes, mais... visiblement, y'a un os

    Un bout de code, à un moment donné (now), ca donne ca :

    $source = "/home/rep";

    $gpg = '/usr/bin/gpg';
    $passphrase = 'mapassphrase';
    $encrypted_file = $source.'/fichier_crypte.gpg';
    $unencrypted_file = $source.'/plop/test4';

    $command = "echo $passphrase | $gpg --passphrase-fd 0 -o $unencrypted_file -d $encrypted_file";

    echo $command;

    $out3 = exec($command,$output,$out2);
    Si quelqu'un a une idée, je suis preneur à 200%

    Merci d'avance, nico.

  2. #2
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Et t'as un message d'erreur t'indiquant que ta commande ne peut s'éxécuter, ou une erreur php ?

    Si t'es sur un serveur GNU/Linux je crois que c'est tail -f /var/log/apache/error.log pour voir les erreurs.

  3. #3
    Membre averti
    Profil pro
    Développeur Full Stack
    Inscrit en
    Janvier 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Janvier 2007
    Messages : 30
    Par défaut
    ( le rép. des logs, c'est "/var/log/httpd/....", mais c'est vrai que j'y penses jamais )

    Il m'a mis un problème de permissions sur le répertoire.
    J'ai mis le répertoire en 777, mais là, il me sort uniquement cette erreur :
    gpg : cannot open '/dev/tty' : aucun périphérique ou adresse



    Ce qui m'étonne, outre le fait que ca ne marche pas, c'est que php devrait ressortir ces erreurs, non ?

    Merci de ton aide

  4. #4
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Non, le PHP n'a pas a faire ressortir d'erreur, du moins pas directement.
    Ta commande PHP s'execute normalement, PHP a fait son taf, si après la commande n'est pas réalisable, c'est le problème du développeur, PHP n'y peut rien.

    Dans ton cas ( et j'ai quasiment le même problème en ce moment ), c'est un "simple" problème de droit, à toi d'y remédier même si ce n'est pas forcément évident.

  5. #5
    Membre averti
    Profil pro
    Développeur Full Stack
    Inscrit en
    Janvier 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Janvier 2007
    Messages : 30
    Par défaut
    J'ai lu quelque part (ici : http://devzone.zend.com/node/view/id/1265 dernier commentaire )
    qu'il pouvait y avoir un problème de droits sur la signature :
    En gros si j'ai bien compris : si on créé la clé avec marcel et qu'on veut s'en servir avec gerard, ca risque de coincer.
    Comme tout le monde, j'ai créé la clé avec root, et je voudrais m'en servir avce apache.

    Perso, je crains une explosion du serveur quand je fais 'ls', alors.. là, j'ose pas trop y toucher, et d'ailleurs je ne saurais pas quoi toucher.

    Mais p'tete que toi, ca te parlera plus !?

    Alors me sont venues 2 idées :
    - créer un fichier batch qui transforme le fichier .gpg en .decrypt et lancer uniquemement ce fichier (si tu sais faire !? )
    - recréer la clé, mais je doute qu'il veuille bien le faire, s'il en existe déjà une. Or pour moi personnellement, j'ai refilé la clé aux prestataires, au bout de 50 tests, je me vois mal leur refaire tout le cheminement parce que j'ai dû refaire une autre clé.

    A te lire, merci encore

  6. #6
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    I noticed a couple of people commenting that they're having problems with the code, but GPG works fine from the command line. GPG uses a keyring to store your own public and private keys (and other user's public keys). By default the keyring is stored in ~/.gnupg, i.e. in the home directory of the user creating the key. This causes a problem for PHP because when you log in you'll likely be logged in as a different user to Apache. There's two possible solutions: 1) Manually specify a location for the keyring on the command line (check the gpg man page) which will allow you to put it in a location which is accessible to both Apache and your login user. 2) Use the su command to switch to the Apache user before generating your keys.

    J'suis pas parfaitement bilingue, mais en gros ça veut dire que tu peux soit :
    - Spécifier manuellement le chemin pour le cryptage/décryptage en ligne de commande, ce qui te permettra de choisir un emplacement à la fois accessible d'Apache et de ton utilisateur
    - Changer de clef ^^'

    Après, j'peux pas vraiment t'aider plus, GPG c'est pas dans mes compétences on va dire

  7. #7
    Membre éclairé
    Avatar de Le Barde
    Homme Profil pro
    Chanteur
    Inscrit en
    Juillet 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chanteur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 343
    Par défaut
    Bonjour,
    j'arrive un peu tard pour répondre, mais j'ai vu que ça parlait de TTY. GnuPG s'exécute dans un terminal lorsqu'on l'utilise en ligne de commande, mais il y a une option --no-tty qui pourra remédier à ton problème.

    Pour les prochains :-)

Discussions similaires

  1. [Système] Utilisation gnuplot avec php
    Par jejerome dans le forum Langage
    Réponses: 12
    Dernier message: 27/04/2013, 15h39
  2. Utiliser un système de cache en PHP
    Par valche5 dans le forum Langage
    Réponses: 5
    Dernier message: 04/08/2008, 17h31
  3. [Système] Utilisation de nohup en php
    Par gannher dans le forum Langage
    Réponses: 5
    Dernier message: 04/04/2008, 18h02
  4. [Système] Utilisation de BIGINT(20) de MySQL à PHP
    Par metfan dans le forum Langage
    Réponses: 4
    Dernier message: 23/10/2007, 21h44
  5. [Système] Utiliser pg_dump via php
    Par bossLINDROS dans le forum Langage
    Réponses: 8
    Dernier message: 22/06/2007, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo