1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-10-31 20:08:43 +01:00
gnupg/tests/fake-pinentries
Daniel Kahn Gillmor 705da1eb23 docs: Point to https://dev.gnupg.org/ .
Replace mentions of bugs.gnupg.org with https://dev.gnupg.org/.  Since
the project has transitioned to a better workflow for supporting
contributions, we should ensure that our documentation points to the
right place.

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2017-05-18 15:05:57 -04:00
..
fake-pinentry.php tests/fake-pinentries: fake pinentries for downstream developers. 2016-09-15 10:28:23 +02:00
fake-pinentry.pl tests/fake-pinentries: fake pinentries for downstream developers. 2016-09-15 10:28:23 +02:00
fake-pinentry.py tests/fake-pinentries: fake pinentries for downstream developers. 2016-09-15 10:28:23 +02:00
fake-pinentry.sh tests/fake-pinentries: fake pinentries for downstream developers. 2016-09-15 10:28:23 +02:00
README.txt docs: Point to https://dev.gnupg.org/ . 2017-05-18 15:05:57 -04:00

Fake Pinentries for Test Suites

If you're writing a test suite, it should use one of these pinentries by setting the following line in $GNUPGHOME/gpg-agent.conf:

pinentry-program /path/to/fake-pinentry.ext

Note that different fake-pinentry programs have been supplied here in different languages, with the intent of making them available to developers who have different languages available.

They are all licensed Creative Commons Zero (CC0-1.0-Universal, see the COPYING.CC0 file in GnuPG's top directory), so they should be reusable by any project. Feel free to copy them into your own project's test suite.

Rationale

If you're implementing software that uses GnuPG, you probably want a test suite that exercises your code, and you may have some that involve secret key material locked with a passphrase. However, you don't want to require your developers to manually enter a passphrase while tests are run, and you probably also don't want to deal with alternate codepaths/workflows like using gpg's loopback pinentry.

The solution for this is to use a fake pinentry in your test suite, one that simply returns a pre-selected passphrase. In this case, all the other code follows the same path as normal, but the user interaction is bypassed because the fake-pinentry is used instead.

Troubleshooting

If you have any trouble with this technique, please drop a line to the GnuPG development mailing list gnupg-devel@gnupg.org or open a report on the GnuPG bug tracker at https://dev.gnupg.org/gnupg