php-gnupg/tests/vars.inc
Jakub Zelenka 74993ff4a2
Fix #32: Decryption of message encrypted with multiple keys (#55)
When the message is encrypted with multiple keys and the decryption
key(s) added is not the first encrypted key, then it was failing due to
invalid early failure when uid was not found in decrypted keys. This
changes such behavior and just returns empty key instead in such case.
2025-05-20 18:23:58 +02:00

156 lines
8.4 KiB
PHP

<?php
putenv("GNUPGHOME=".dirname(__FILE__) . '/home');
error_reporting (E_ALL);
$fingerprint = "2DF0DD02DC9B70B7F64F572E669E775E0A6284B3";
$passphrase = "blabla";
$plaintext = "foo bar";
$testkey =<<<EOF
-----BEGIN PGP PRIVATE KEY BLOCK-----
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
ngBZTudrwBbKC8xx224aOk0TiDbiWftGtx4=
=py/2
-----END PGP PRIVATE KEY BLOCK-----
EOF;
// RSA 2048 key with different passprhrase than testkey
$passphrase2 = "blabla2";
$fingerprint2 = "FB7E60AA1FE2564B10DF07FEA4C19633A227485F";
$testkey2 = <<<EOF
-----BEGIN PGP PRIVATE KEY BLOCK-----
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
=RBbv
-----END PGP PRIVATE KEY BLOCK-----
EOF;
// EC Curve 25519 Key with the same passphrase as testkey
$passphrase3 = "blabla";
$fingerprint3 = "2D5CCE418C7212931917A35E8A1C9B7E78F3F200";
$testkey3 = <<<EOF
-----BEGIN PGP PRIVATE KEY BLOCK-----
lIYEaAfDfBYJKwYBBAHaRw8BAQdA4jPoB0hx6VQELdNec5yMmGdk1y0w+FBd4795
Nzawq1v+BwMCQ0Stv6AJZoX/N+canKS8Reb1WI6rd2AFYJ1a635SuzJuiAXpZjNr
1dqQWzqfyiPkvSuEBX3xUoipnncyT4oS1v3Xxz2LyaJsVD/M84murbQkUEhQIFRo
aXJkIFRlc3QgPHRlc3QzQGdudXBnLnBocC5uZXQ+iJMEExYKADsWIQQtXM5BjHIS
kxkXo16KHJt+ePPyAAUCaAfDfAIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIX
gAAKCRCKHJt+ePPyAItFAQC5zOjM4m5R4LC9z2+Qc9+o/NsazZm4pRg/0GdDNKSq
RwD/fZkEQ3NVqAGyZAf05xySuCohjq6NyXB7FoHEKNM8DQaciwRoB8N8EgorBgEE
AZdVAQUBAQdALxHB/DCBuPT2N0D0blqPfCkzAoUoT8ryzCt0m38x2RQDAQgH/gcD
Ahl6v0cdX5YA/+8mmWL/3bFdT/TUkct232XUNosZJWAp/SirUEcIghisKoUslI0W
/yMskyfYQao9Xp2ZgAh5tDjY+zPrFeW/qBiRqGuLEvyIeAQYFgoAIBYhBC1czkGM
chKTGRejXoocm3548/IABQJoB8N8AhsMAAoJEIocm3548/IAhyMA/1Rj6kqCdqHl
cMH5geSnHg1pXfI9duFcNv/s8d3EqGx8AQCNHc+JFez4DQi22I8p/Lp5t1Wxugig
Fm5SdMmMXCHwAg==
=Bbro
-----END PGP PRIVATE KEY BLOCK-----
EOF;