检查GPG / PGP公钥是否有效

时间:2012-11-21 16:53:42

标签: php gnupg pgp

通过网络界面,我试图检查给定的公钥是否有效。 bash命令gpg --import key.pub根据给定的密钥返回import successful/failed,但我不想将$data = system("/usr/bin/gpg --import $key)用于我自己的安全问题。还有其他选择吗?

2 个答案:

答案 0 :(得分:1)

好的,我做了一些调试,这就是我发现的:

nginx守护程序在nginx:nginx下运行,没有主目录,nologin shell

当我执行sudo -u nginx php -r "echo system("gpg -k");"

我得到了/home/nginx/.gnupg: directory does not exist!

所以我执行了以下内容:

mkdir -p /home/nginx/.gnupg; chown -R nginx:nginx /home/nginx/

然后,测试是否有效:

sudo -u nginx php -r "echo system("gpg --homedir /home/nginx/.gnupg --dry-run --batch --import key.pub");

我有输出!

答案 1 :(得分:0)

是否为您安装扩展程序?因为您可以使用gnupg_import()扩展名中gnupg_keyinfo()PECL/gnupg功能的组合。

gnupg_keyinfo()返回属性数组,并且在这种情况下有各种键可用。见:http://svn.php.net/viewvc/pecl/gnupg/trunk/gnupg.c?revision=330955&view=markup#l662