Tests encrytion and decryption using multiple keys

This commit is contained in:
Francisco José Moreno Vílchez 2021-08-26 12:02:01 +02:00
parent 4905e3e2a5
commit 4f29b94975
4 changed files with 173 additions and 0 deletions

View file

@ -0,0 +1,34 @@
--TEST--
encrypt and decrypt a text using multiple keys
--SKIPIF--
<?php if(!class_exists("gnupg")) die("skip"); ?>
--FILE--
<?php
require_once "gnupgt.inc";
gnupgt::reset_key();
gnupgt::import_first();
gnupgt::import_second();
$gpg = new gnupg();
$gpg->seterrormode(gnupg::ERROR_WARNING);
$gpg->addencryptkey($fingerprint);
$gpg->addencryptkey($fingerprint2);
$enc = $gpg->encrypt($plaintext);
gnupgt::reset_key();
gnupgt::import_first();
gnupgt::import_second();
$gpg = new gnupg();
$gpg->adddecryptkey($fingerprint2, $passphrase2);
$ret = $gpg->decrypt($enc);
var_dump($ret);
?>
--EXPECTF--
string(7) "foo bar"
--CLEAN--
<?php
require_once "gnupgt.inc";
gnupgt::delete_key();
?>

View file

@ -0,0 +1,35 @@
--TEST--
encrypt and decrypt a text using multiple keys
--SKIPIF--
<?php if (!extension_loaded("gnupg")) die("skip"); ?>
--FILE--
<?php
require_once "gnupgt.inc";
gnupgt::reset_key();
gnupgt::import_first();
gnupgt::import_second();
$gpg = gnupg_init();
gnupg_seterrormode($gpg, GNUPG_ERROR_WARNING);
gnupg_addencryptkey($gpg, $fingerprint);
gnupg_addencryptkey($gpg, $fingerprint2);
$enc = gnupg_encrypt($gpg, $plaintext);
gnupgt::reset_key();
gnupgt::import_first();
gnupgt::import_second();
$gpg = NULL;
$gpg = gnupg_init();
gnupg_adddecryptkey($gpg, $fingerprint2, $passphrase2);
$ret = gnupg_decrypt ($gpg, $enc);
var_dump($ret);
?>
--EXPECTF--
string(7) "foo bar"
--CLEAN--
<?php
require_once "gnupgt.inc";
gnupgt::delete_key();
?>

View file

@ -16,6 +16,22 @@ class gnupgt {
$gpg->import($testkey);
}
/**
* Import keys individually
*/
static public function import_first()
{
global $testkey;
$gpg = new gnupg();
$gpg->import($testkey);
}
static public function import_second()
{
global $testkey2;
$gpg = new gnupg();
$gpg->import($testkey2);
}
/**
* Delete all keys.
* @param null|string $homeDir

View file

@ -66,4 +66,92 @@ ngBZTudrwBbKC8xx224aOk0TiDbiWftGtx4=
=py/2
-----END PGP PRIVATE KEY BLOCK-----
EOF;
$fingerprint2 = "1E2B4A3E24EAC85F9D8BC6B0F33CF5FD5DB887AE";
$passphrase2 = "bleble";
$testkey2 =<<<EOF
-----BEGIN PGP PRIVATE KEY BLOCK-----
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
=XLSo
-----END PGP PRIVATE KEY BLOCK-----
EOF;
?>