检查GPG / PGP公钥是有效的(Check if GPG/PGP public key is v

2019-10-17 10:17发布

通过Web界面我想检查一个给定的公钥是有效还是无效。 bash命令gpg --import key.pub回报import successful/failed基础上,给出的关键,但我不希望使用$data = system("/usr/bin/gpg --import $key)为我自己安全问题。是否有其他选择吗?

Answer 1:

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

nginx的守护程序下运行nginx:nginx ,没有主目录,NOLOGIN壳

当我执行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");

和我有输出!



Answer 2:

正在安装扩展你的选择吗? 因为你可以使用组合gnupg_import()和gnupg_keyinfo()从功能PECL / GnuPG的扩展。

gnupg_keyinfo()返回的属性阵列和有这将是在这种情况下是有用的各种键。 见: http://svn.php.net/viewvc/pecl/gnupg/trunk/gnupg.c?revision=330955&view=markup#l662



文章来源: Check if GPG/PGP public key is valid
标签: php gnupg pgp