Hi
I found that the apache or httpd user (or whichever user the webserver is using to run) needed to have write access to the .gnupg directory for the gnupg_php functions to work. This could be your problem. It seems a rather unsatisfactory feature of this module - gnupg keeps giving warnings that it is unsafe.
gnupg_encrypt
(PECL gnupg >= 0.1)
gnupg_encrypt — Encrypts a given text
Beschreibung
string gnupg_encrypt
( resource
$identifier
, string $plaintext
)
Encrypts the given plaintext with the keys, which
were set with gnupg_addencryptkey before and
returns the encrypted text.
Parameter-Liste
-
identifier -
Eine von gnupg_init() oder der Klasse gnupg zurückgegebene GnuPG-Ressource.
-
plaintext -
The text being encrypted.
Rückgabewerte
On success, this function returns the encrypted text.
On failure, this function returns FALSE.
Beispiele
Beispiel #1 Procedural gnupg_encrypt() example
<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
$enc = gnupg_encrypt($res, "just a test");
echo $enc;
?>
Beispiel #2 OO gnupg_encrypt() example
<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$enc = $gpg -> encrypt("just a test");
echo $enc;
?>
gnupg_encrypt
paul at cressbrook dot co dot uk
14-Feb-2007 01:52
14-Feb-2007 01:52
jkushner at livemercial dot com
03-Jan-2007 08:49
03-Jan-2007 08:49
Very nice function, yet I cant seem to get it to work correctly.
Here is what I have..
/**
* Test Values. Will be grabbed from database.
*/
$_STR_recipientKeyId='78F21BCA81042C23';
// This is a wrapper class I made that engulfs the gnupg class
if(!class_exists('core_Gnupg')){
require(CORE_PATH_CLASS.'Gnupg.class.php');
}
//$_OBJ_gpg is just an instantiation of that class.
//returnInfo takes in the userID name, and uses the keyinfo() //function to return an array of data for that user.
$_ARR_keyinfo=$_OBJ_gpg->returnInfo($_STR_recipientUserId);
//now I have the fully functional userid
//ex: Jonathan Kushner <jkushner@livemercial.com>
$_STR_recipientUserId=$_ARR_keyinfo[0]['uids'][0]['uid'];
###########################
See, originally I was using the fingerprint from the $_ARR_keyinfo above and passing that into the encrypt function, but it still associated the encrypted data with my personal private key that I have associated with apache.
Any ideas?