2016-11-20 2 views
0

Nous avons récemment basculé sur Ubuntu 16.04 et là pour php 7.0Pour envoyer des messages cryptés avec GPG en php 7, il demande un mot de passe

Pas je cours pour problème avec l'un de nos scripts php, met à jour ce script mûr utilisant l'interface de messagerie de maturité et envoyer le courrier signé par GPG à eux, qu'ils utilisent pour l'authentification. Mais maintenant le PHP cli commence à demander un mot de passe à utiliser avec la clé. Comment puis-je empêcher cette question passphrase j'ai essayé d'enlever la phrase secrète de la clé, mais cela n'a pas aidé.

mon code php ressemble à ceci:

$gpgkey = "some thubprint of a key"; 
$gpgpwd = "Secret"; 
$res = gnupg_init(); 
gnupg_addsignkey($res,$gpgkey,$gpgpwd); 
$updatemessages = "test"; 
$signedupdatemessages = gnupg_sign($res, $updatemessages); 

Espérons que certaines connaît la sollution

Cordialement,

Bas van den Dikkenberg

Répondre

0

Ubuntu 16.04 navires d'une version assez récente de GnuPG, qui ne permet pas de définir une phrase secrète sans pinentry sans autres tracas. En effet, l'application GnuPG plutôt volumineuse (et donc sujette à des problèmes de sécurité) ne devrait pas pouvoir accéder aux clés privées et aux mots de passe. Ces opérations sont donc extraites vers la plus petite gpg-agent (qui demande maintenant la phrase secrète). Pour supprimer la phrase secrète/la définir sur une phrase vide, assurez-vous de définir la phrase secrète pour l'utilisateur approprié (GnuPG a des fichiers de clés par utilisateur système).

La "GnuPG-2.0-way" de setting a passphrase is using the gpg-preset-passphrase utility, qui est généralement installée dans /usr/lib/gnupg2/gpg-preset-passphrase pour les distributions Debian et dérivées. Vous devez autoriser cette opération en ajoutant allow-preset-passphrase à ~/.gnupg/gpg-agent.conf, et exécutez

/usr/lib/gnupg2/gpg-preset-passphrase -c [keygrip] 

tout en fournissant le mot de passe sur STDIN (ne pas utilisation echo ou l'option -P, en utilisant les deux façons tous les autres utilisateurs du système peuvent lire le mot de passe !). Le keygrip peut être obtenu en exécutant gpg2 --with-keygrip --list-secret-keys.

+0

Ne pas résoudre isue en php :-( –