I need to use gnupg_decrypt
to decrypt a file that is being sent to us but can't get it working.
When I use the gnupg_keyinfo
to list all the public keys, it returns an empty array. Does anyone have any idea why this is happening?
The code I am using is:
$res = gnupg_init();
$info = gnupg_keyinfo($res, '');
print_r($info);
Looking at the comments of the above link putting ''
as the pattern it should list all keys.
I have set up a public key on my server using the info provided here http://irtfweb.ifa.hawaii.edu/~lockhart/gpg/gpg-cs.html
And when I run gpg --list-keys it shows it as being successfully created.
I have read somewhere that you have to put
putenv('GNUPGHOME=/tmp');
at the top of the page in order for it to work but there is no reference to the key in that folder and I can't find out what location to set with the above.
I also read I may not have permission to the folder the key is stored in but again I am not sure where it is.
Could anyone help with this?
Thank you
To get this working I did the following
chown -R {{user}} ~/.gnupg
chmod 600 ~/.gnupg/*
chmod 700 ~/.gnupg
Then reimported the key using gnupg_import
function
GnuPG has per-user keyrings. Your web server will not run as root user (if it does, change that immediately), so you have to analyze the web server's user and import the secret key under this user account (often called www-data
or something similar, which you could also su
into). Alternatively, import the key through a PHP script.