Il n'y a pas de méthode intégrée pour faire cela, mais c'est assez simple pour créer un test qui ne modifie rien et vous permet de simplement vérifier votre phrase de passe.
Vous n'avez pas spécifié, donc je suppose que vous utilisez la version GnuPG inférieure à la v2 et que vous êtes sous Linux avec Bash pour votre interpréteur de ligne de commande.
Je vais donner la commande ici et ci-dessous, je vais expliquer ce que fait chaque partie - (note: ce qui suit est pour la série GnuPG version 1, voir ci-dessous pour la série GnuPG v2)
echo "1234" | gpg --no-use-agent -o /dev/null --local-user <KEYID> -as - && echo "The correct passphrase was entered for this key"
Ce que cela fait, c'est d'abord, envoyer du texte à signer à GnuPG echo "1234" |
- parce que nous ne voulons vraiment rien signer, c'est juste un test, nous allons donc signer du texte inutile.
Ensuite, nous disons à gpg de ne pas utiliser l'agent clé avec --no-use-agent
; ceci est important plus tard car, en fonction de votre agent clé, il peut ne pas retourner "0" en cas de succès, et c'est tout ce que nous voulons faire - vérifier le succès de votre phrase de passe.
Ensuite, nous demandons à gpg de placer les données signées directement dans le /dev/null
fichier, ce qui signifie que nous les supprimons et que nous n'écrivons pas le résultat dans le terminal - REMARQUE: si vous n'utilisez pas une variante de Linux / Unix, ce fichier peut ne pas exister. Sous Windows, vous devrez peut-être simplement lui permettre d'écrire les données signées à l'écran en omettant simplement la -o /dev/null
partie.
Ensuite, nous spécifions la clé avec laquelle nous voulons faire notre test en utilisant --local-user 012345
. Vous pouvez utiliser le KeyID pour une spécificité maximale, ou utiliser un nom d'utilisateur, selon vos besoins.
Ensuite, nous spécifions -as
, qui active le mode de sortie ascii et définit le mode de contexte pour la signature. La -
suite dit simplement à GnuPG d'obtenir les données à signer à partir de l'entrée standard, qui est la toute première partie de la commande que nous avons donnée echo "1234" |
.
Et enfin, nous avons && echo "A message that indicates success"
- le "&&" signifie, si la commande précédente a réussi, imprimer ce message. Ceci est juste ajouté pour plus de clarté, car le succès de la commande ci-dessus serait autrement indiqué par aucune sortie du tout.
J'espère que c'est assez clair pour que vous compreniez ce qui se passe et comment vous pouvez l'utiliser pour effectuer les tests que vous souhaitez faire. Si une partie n'est pas claire ou que vous ne comprenez pas, je serai heureux de clarifier. Bonne chance!
[EDIT] - Si vous utilisez GnuPG v2, la commande ci-dessus devra être légèrement modifiée, comme ceci:
echo "1234" | gpg2 --batch --passphrase-fd 1 -o /dev/null --local-user <KEYID> -as - && echo "The correct passphrase was entered for this key"
La raison en est que GnuPG v2 s'attend à ce que la phrase secrète soit récupérée via un agent, nous ne pouvons donc pas désactiver l'utilisation de l'agent avec --no-use-agent
et avoir l'effet souhaité; à la place, nous devons dire à GnuPG v2 que nous voulons exécuter un processus "batch", et récupérer la phrase de passe de STDIN (standard in) en utilisant l'option --passphrase-fd 1
.
gpg --local-user <KEYID> -as
. Cela permet simplement à l'agent de demander la phrase de passe et de vous dire si elle était correcte (puis ne fait rien).