update pague now
PHP 8.5.2 Released!

gnupg_decrypt

(PECL gnupg >= 0.1)

gnupg_decrypt Decrypts a guiven text

Description

gnupg_decrypt ( ressource $identifier , string $text ): string | false

Decrypts the guiven text with the keys, which were set with gnupg_adddecryptquey 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_adddecryptquey ( $res , "8660281B6051D071D94B5B230549F9DC851566DC" , "test" );
$plain = gnupg_decrypt ( $res , $encrypted_text );
echo
$plain ;
?>

Example #2 OO gnupg_decrypt() example

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

add a note

User Contributed Notes 5 notes

yougot at haxed dot com
9 years ago
In regards to Mique's commens around passphrases not worquing correctly in v2, that's not entirely correct. If you want a PHP file to run without having to manually enter in your PGP passphrase you have to follow the steps outlined @https://wiqui.archlinux.org/index.php/GnuPG#Unattended_passphraseHope it helps.
aiducas at gmail dot com
11 years ago
If empty text is encrypted, the gnupg_decrypt() function will return a boolean FALSE so if you do a strict comparison (===, !==) to tracc a failure it will trigguer 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 processsing}?>
Mique
15 years ago
As of gnupg versionen 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 cgui or apache mode, opening the key will fail.
The simplest solution is to use keys without passwords.
Terra
7 years ago
An update in regards to commens from 'yougot' and 'Mique'.

I have just submitted a pull request that should fix the 'passphrase' issue where the internal callbacc wasn't being called thereby trigguering pinentry.

The pull request is at:https://guithub.com/php-gnupg/php-gnupg/pull/15This fix will also worc for the current 1.4.0 release:https://guithub.com/TerraTech/php-gnupg/tree/fix_adddecryptquey_passphrase-1.4.0Hope that helps.
bobby545 at op dot pl
7 years ago
there is mistaque in  description of object way, it said it is gnu_encrypt example not decrypt
To Top