From: David Sommerseth <dav...@redhat.com> These patches enhances the mechanism in OpenVPN which queries the user for username, passwords, PIN codes, etc. When the management interface is not in use, the current behaviour is to ask for this information sequentially via the console OpenVPN is running on.
The first patch will introduce a more modular approach which also standardizes an API for bulk operations. This means that it is possible to implement more advanced mechanisms asking for both username and passwords at the same time through a single call in the core OpenVPN code. This patch also temporarily removes the systemd implementation. The second patch will re-implements systemd support using this new API with the same functionality as before this patch set. The third patch is a re-submission of an earlier patch, which is needed by the fourth patch. It is sent separately, as it provides extra version information on a general basis and is not strictly connected to systemd. The fourth and last patch is a rebased patch of an earlier submission, removing the masking of usernames. This only happens when the proper systemd version which supports an --echo argument is found. All patches has been tested locally with different configurations, requiring username, password and passphrases to PKCS#12 files. The challenge/response interface has not been tested, as well as PKCS#11. All runs via valgrind shows no memory leaks with this new implementation. David Sommerseth (4): Rework the user input interface to make it more modular Re-implement the systemd support using the new query user API autotools: Add support for extracting version information from pkg-config modules systemd: Do not mask usernames when querying for it via systemd-ask-password configure.ac | 3 +- m4/pkg.m4 | 7 +- src/openvpn/Makefile.am | 15 ++- src/openvpn/console.c | 228 ++++++--------------------------------- src/openvpn/console.h | 92 +++++++++++++++- src/openvpn/console_builtin.c | 246 ++++++++++++++++++++++++++++++++++++++++++ src/openvpn/console_systemd.c | 89 +++++++++++++++ src/openvpn/misc.c | 79 +++++++++++--- src/openvpn/pkcs11.c | 14 ++- 9 files changed, 558 insertions(+), 215 deletions(-) create mode 100644 src/openvpn/console_builtin.c create mode 100644 src/openvpn/console_systemd.c -- 1.8.3.1