PHP 7.0.6 Released

gnupg_decrypt

(PECL gnupg >= 0.1)

gnupg_decryptDecrypts a given text

Description

string gnupg_decrypt ( resource $identifier , string $text )

Decrypts the given text with the keys, which were set with gnupg_adddecryptkey before.

Parameters

identifier

The gnupg identifier, from a call to gnupg_init() or gnupg.

text

The text being decrypted.

Return Values

On success, this function returns the decrypted text. On failure, this function returns FALSE.

Examples

Example #1 Procedural gnupg_decrypt() example

<?php
$res 
gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain gnupg_decrypt($res,$encrypted_text);
echo 
$plain;
?>

Example #2 OO gnupg_encrypt() example

<?php
$gpg 
= new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain $gpg -> decrypt($encrypted_text);
echo 
$plain;
?>

User Contributed Notes

Mike
6 years ago
As of gnupg version 2, it is not possible to pass a plain password any more. The parameter is simply ignored. Instead, a pinentry application will be launched in case of php running in cli mode. In cgi or apache mode, opening the key will fail.
The simplest solution is to use keys without passwords.
aidukas at gmail dot com
2 years ago
If empty text is encrypted, the gnupg_decrypt() function will return a boolean FALSE so if you do a strict comparison (===, !==) to track a failure it will trigger you a failure.
For failures use Exceptions:
<?php
        $gpg
= new gnupg();
       
$gpg->seterrormode(gnupg::ERROR_EXCEPTION);
       
/*
         .......further code.......
       */
       
try {
           
$string = $gpg->decrypt($stringToDecrypt);
        } catch (
Exception $e) {
        
// do the Error processing
       
}

?>
To Top