diff options
Diffstat (limited to 'debian/pinentry-tqt/pinentry-tqt-1.2.1/ChangeLog')
-rw-r--r-- | debian/pinentry-tqt/pinentry-tqt-1.2.1/ChangeLog | 2998 |
1 files changed, 2998 insertions, 0 deletions
diff --git a/debian/pinentry-tqt/pinentry-tqt-1.2.1/ChangeLog b/debian/pinentry-tqt/pinentry-tqt-1.2.1/ChangeLog new file mode 100644 index 00000000..4f1a0172 --- /dev/null +++ b/debian/pinentry-tqt/pinentry-tqt-1.2.1/ChangeLog @@ -0,0 +1,2998 @@ +2022-08-24 Werner Koch <wk@gnupg.org> + + Release 1.2.1. + + commit 338961541fa9416937092d6e7720246b3cd7465a + + +2022-08-12 Andre Heinecke <aheinecke@gnupg.org> + + qt: Use Dialogs foregroundwindow code in confirm. + + commit 835b690cbd857eb699f24745ee13371b4d379683 + * qt/pinentryconfirm.cpp (PinentryConfirm): Minimize and raise on + start. + (showEvent): Do not call raiseWindow. + +2022-08-05 Ingo Klöcker <dev@ingo-kloecker.de> + + qt4: Add recipe for container for testing build for Qt4. + + commit 0cb17ea14e533655e17c9daff1058a211ff9087e + * docker: New. + + qt4: Make it compile with Qt 4.8.7 and without C++11. + + commit 825819b754f50b79e238efc8c9613653315872bb + * qt4/main.cpp (qt_cmd_handler): Replace nullptr with NULL. + * qt4/pinentrydialog.cpp (PinEntryDialog::generatePin): Replace auto with + type name. + * qt4/pinlineedit.cpp (PinLineEdit::keyPressEvent): Replace + Qt::Key::Key_Backspace with Qt::Key_Backspace. + + qt,qt4: Separate build of pinentry with Qt5 and Qt4. + + commit 08a7391fc024530fa619fabbd16f900ad42108e6 + * Makefile.am (pinentry_qt4): New. + (SUBDIRS): Add pinentry_qt4. + * configure.ac: Add arg pinentry-qt4. Check for Qt4 libraries. + Substitute variables PINENTRY_QT4_CFLAGS, PINENTRY_QT4_LIBS, + PINENTRY_QT4_LDFLAGS, MOC4. + (BUILD_PINENTRY_QT4): New conditional. + (PINENTRY_QT4): New define. + * m4/qt.m4: Remove check for Qt4 libraries. + * m4/qt4.m4: New. + * qt4/Makefile.am: Check for BUILD_PINENTRY_QT4 instead of + BUILD_PINENTRY_QT. + (bin_PROGRAMS): Change pinentry-qt to pinentry-qt4. + (AM_CXXFLAGS): Change PINENTRY_QT_CFLAGS to PINENTRY_QT4_CFLAGS. + (pinentry_qt_LDADD): Renamed to pinentry_qt4_LDADD. + (pinentry_qt4_LDADD): Change PINENTRY_QT_LIBS to PINENTRY_QT4_LIBS. + (pinentry_qt_LDFLAGS): Renamed to pinentry_qt4_LDFLAGS. + (pinentry_qt4_LDFLAGS): Change PINENTRY_QT_LDFLAGS to + PINENTRY_QT4_LDFLAGS. + (pinentry_qt_SOURCES): Renamed to pinentry_qt4_SOURCES. + (nodist_pinentry_qt_SOURCES): Renamed to nodist_pinentry_qt4_SOURCES. + (.h.moc): Change MOC to MOC4. + + qt4: Add old copy of source code of pinentry-qt for building with Qt4. + + commit 70388f18958c5df7a45911e0fade23d19acb38e8 + * qt4: New. + +2022-07-21 NIIBE Yutaka <gniibe@fsij.org> + + Fix for modern Autoconf. + + commit 34709975debde7afc0927f30c8541c40af0cc481 + * m4/curses.m4: Use AS_HELP_STRING. Use AC_LINK_IFELSE. + * m4/qt.m4: Use AS_HELP_STRING. + + build: Update config.guess, config.sub, and config.rpath. + + commit e1cdfc733757b9cc801b628185f1404494d5000c + * build-aux/config.guess: Update from upstream. + * build-aux/config.sub: Ditto. + * build-aux/config.rpath: Update from gettext 0.21. + + build: Fix for internal secmem. + + commit 55353112cdc7a9fb84ad5d6d430e218ae81710b4 + * acinclude.m4 (GNUPG_CHECK_TYPEDEF): Remove. + (GNUPG_CHECK_MLOCK): Update from libgcrypt. + * configure.ac: Use AC_CHECK_TYPES for byte, ulong, and u64. + * secmem/secmem.c: Use HAVE_U64. + + build: Update gpg-error.m4. + + commit 4f26b1fa994c8d013fc7516e16e2f1488212e0e7 + * m4/gpg-error.m4: Update from libgpg-error. + +2022-06-01 NIIBE Yutaka <gniibe@fsij.org> + + Remove old code which makes sure NUL-termination of strings. + + commit 523a4f2d5d1c37df5ea7922f9545823afb3cb762 + * gnome3/pinentry-gnome3.c (create_prompt): Remove putting 0. + * gtk+-2/pinentry-gtk-2.c (changed_text_handler): Ditto. + * pinentry/pinentry.c (get_cmdline, pinentry_get_title): Ditto. + (my_strusage, write_status_error, cmd_getinfo): Ditto. + * w32/main.c (w32_strerror): Ditto. + + Remove USE_CAPABILITIES. + + commit 0d3be7b81eb1fea6b51144d2381eaa318a63e761 + * configure.ac: Remove --with-libcap. + * curses/Makefile.am, efl/Makefile.am: Remove LIBCAP. + * emacs/Makefile.am, fltk/Makefile.am: Ditto. + * gnome3/Makefile.am, gtk+-2/Makefile.am: Ditto. + * qt/Makefile.am, tqt/Makefile.am: Ditto. + * tty/Makefile.am: Ditto. + + secmem: Remove use of cap_set_proc. + + commit 88cad4621be36fa70596abb803252b844d1b5d42 + * secmem/secmem.c (lock_pool): Clean up. + +2022-06-01 Jakub Jelen <jjelen@redhat.com> + + pinentry: Remove dead code. + + commit 96771ae57e86756a2f079202cf069a1ce6cc4357 + * pinentry/pinentry.c (pinentry_get_title): Remove needless check for + null on static array + + pinentry: Terminate the buffer in the right place. + + commit cd753c8560cde013981466c7298e0376e27b6364 + * pinentry/pinentry.c (get_pid_name_for_uid): Terminate the buffer in + the right place. + + secmem: Do not pass negative values to strerr. + + commit c2e7cc560bdbcdaa9861ae8d37f28be5b342a64d + secmem/secmem.c (lock_pool): Pass the correct variable to strerr + +2022-05-25 NIIBE Yutaka <gniibe@fsij.org> + + Mark with ASSUAN_CONFIDENTIAL flag. + + commit c405add93a77f332273fa844bba36dade3f6422b + * pinentry/pinentry.c (cmd_getpin): Call assuan_begin_confidential + and assuan_end_confidential. + +2022-05-12 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Update the cursor position when reformatting the text. + + commit 555cd94a2b2bb294a658a1c6ff9574f8a4ff3186 + * qt/pinlineedit.cpp (PinLineEdit::textEdited): Update cursor position + after reformatting the text. + +2022-03-24 NIIBE Yutaka <gniibe@fsij.org> + + w32,curses: Supply simple replacement for nl_langinfo. + + commit 41884436bec05997ffe21e93bcee604e53b9d120 + * pinentry/pinentry-curses.c [HAVE_W32_SYSTEM] (nl_langinfo): New. + + curses: Move pinentry_utf8_to_local/pinentry_local_to_utf8. + + commit 4612fd45f56963abf6052ef44a3575a1f98bf08a + * pinentry/pinentry-curses.c (pinentry_utf8_to_local): Now here. + (pinentry_local_to_utf8, lc_ctype_unknown_warning): Likewise. + * pinentry/pinentry.c: Moved to pinentry-curses.c. + (pinentry_get_pgmname): New. + + build,w32: Fix build on Windows. + + commit 9a8a38d28d36cf49b057fcd730de878acbd5fae3 + * Makefile.am: Add EXEEXT. + * secmem/secmem.c [HAVE_MMAP] (pool_is_mmapped): Only enabled with + HAVE_MMAP. + (init_pool): The variable PGSIZE is only used with HAVE_MMAP. + +2022-03-02 Ingo Klöcker <dev@ingo-kloecker.de> + + build: Do not list the same files thrice in qt/Makefile.am. + + commit 5531e1c682382f42ef8f0545596a4fd3635e8484 + * qt/Makefile.am (CLEANFILES, nodist_pinentry_qt_SOURCES): Set to + $(BUILT_SOURCES). + + qt: Make text label in pinentry message box focusable. + + commit 42af54bece51f3c4c70eab0b2f67a03cc8951dff + * qt/main.cpp (qt_cmd_handler): Set text format of message box to + PlainText. Set text interaction flags of message box to + TextSelectableByMouse. + * qt/qt/pinentryconfirm.h (class PinentryConfirm): Derive from + QAccessible::ActivationObserver interface; add d'tor; override + focusNextPrevChild method of QMessageBox and accessibilityActiveChanged + method of QAccessible::ActivationObserver interface. + * qt/pinentryconfirm.cpp (messageBoxLabel): New. + (PinentryConfirm::PinentryConfirm): Register as activation observer. + (PinentryConfirm::~PinentryConfirm): New. + (PinentryConfirm::focusNextPrevChild): New. + (PinentryConfirm::accessibilityActiveChanged): New. + + qt: Extract function for selecting the text of a QLabel. + + commit b6370f87d247cfeb4d4161a248fa91661d08af37 + * qt/accessibility.h, qt/accessibility.cpp (selectLabelText): New. + * qt/pinentrydialog.cpp (TextLabel::focusInEvent): Use new function. + + qt: Modernize code. + + commit e7bcc0894e3a9e7cf5ae460af0269033c5b421cd + * qt/pinentryconfirm.h, qt/pinentryconfirm.cpp + (PinentryConfirm::PinentryConfirm): Remove timeout argument. Add flags + argument. Rename argument desc to text. + (PinentryConfirm::setTimeout, PinentryConfirm::timeout): New. + (PinentryConfirm::showEvent): Mark as override. + (class PinentryConfirm): Hold field _timer by value instead of by + pointer. Initialize _timed_out in-class. Use Q_SLOTS instead of slots. + * qt/pinentryconfirm.cpp (PinentryConfirm::PinentryConfirm): + Use QTimer::callOnTimeout() for setting the timeout handler. Do not + start the timer. + (PinentryConfirm::showEvent): Make timer a single-shot timer and start it. + * qt/main.cpp (qt_cmd_handler): Set timeout with new setter. + + qt: Fix reaction to Escape key and close button of window. + + commit 4435e9fa206f29b2fbc45e24b85c5604c4eefdbd + * qt/pinentryconfirm.cpp (PinentryConfirm::showEvent): Call the + overridden method of the direct super class. + + qt: Use better icon for signalling an error. + + commit 774e8a72cd1e10f6e81592fe8e47c13c3167cd77 + * qt/icons/data-error.svg: New. + * qt/icons/Makefile.am, qt/pinentryrc.qrc: Add new file. + * qt/pinentrydialog.h, qt/pinentrydialog.cpp (icon): Rename to + applicationIconPixmap. Change optional parameter to QIcon. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog, + PinEntryDialog::setDescription): Adjust to renaming of icon(). + (PinEntryDialog::setError): Use new icon as overlay for application icon. + * qt/main.cpp (qt_cmd_handler): Adjust to renaming of icon(). + +2022-03-02 Andre Heinecke <aheinecke@gnupg.org> + + qt: Add Makefile.am for icons subdir. + + commit 62efdca5e5cc354e53bbf4d39ca84031a9706086 + * qt/icons/Makefile.am: New. + +2022-03-01 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Modernize code: Use in-class initializers for all members. + + commit 09e0111f02853c210b2106410eedf62734c1ec35 + * qt/pinentrydialog.h (class PinEntryDialog): Use in-class initializers + for all POD members. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Remove + superfluous member initializers. Flag argument 'name' as unused. Remove + superfluous initialization by assignment of _timed_out and _timer. + + qt: Modernize code: Use type-safe, new-style connects. + + commit d63355949f27787b131c34c8213666ea75a738ce + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Use new-style + connects. + + qt: Fix giving focus to repeat field after Enter in first field. + + commit 8671cc814ca0c148bdfbd67816e211aa27462ca1 + * qt/pinentrydialog.h, qt/pinentrydialog.cpp + (PinEntryDialog::keyPressEvent): New. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Remove + connection to QLineEdit::returnPressed signal. + (PinEntryDialog::focusChanged): Remove code changing the default property + of the Ok button. + + qt: Fix compiler warning. + + commit 3157e27ebbd62a08a813d4f8e2dac7051e3b1059 + * qt/pinentrydialog.h (class PinEntryDialog): Mark showEvent as override. + + qt: Allow text of all labels to be selected with the mouse. + + commit c75350edce1b0580caacbe8a30d8e52885ae6366 + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Set text + interaction flags of all text labels to TextSelectableByMouse. + (PinEntryDialog::accessibilityActiveChanged): Keep ClickFocus in focus + policy of labels. + + qt: Do not set an empty tool tip. + + commit e19dc862774e30206cb55662214273d068d9dc89 + qt/pinentrydialog.cpp (PinEntryDialog::setConstraintsOptions): Check + if options.longHint is empty. + + qt: Ensure visual feedback when a text label gets focus. + + commit 09f92e7123c22fb7354ad26a67b404f3cb4028a4 + qt/pinentrydialog.cpp (class TextLabel): New. + qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Set text format + of all text labels to PlainText. Change all text labels that shall be + able to receive focus from QLabel to TextLabel. + (PinEntryDialog::setFormattedPassphrase): Set text format of + mFormattedPassphraseHint to RichText. + + qt: Make text labels focusable if accessibility is active. + + commit 50ad2196d3f62a2fe078e4554b34e75b423374ee + qt/pinentrydialog.h (class PinEntryDialog): Derive from + QAccessible::ActivationObserver interface; add d'tor; override + accessibilityActiveChanged function of QAccessible::ActivationObserver + interface. + qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Register the + dialog as activation observer. + (PinEntryDialog::~PinEntryDialog): New. + (PinEntryDialog::accessibilityActiveChanged): New. + + qt: Create all widgets in tab order. + + commit dd9f765258230cad6704afb4fab6c3deb4a8de56 + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + _have_quality_bar with member initializer; rework setup of UI + +2022-02-10 Andre Heinecke <aheinecke@gnupg.org> + + qt: Embed icons to avoid theme searches. + + commit 7d5c123f802abce11c711d57e8796d58d6ff1a16 + * m4/qt.m4: Check for RCC tool + * qt/qrc_pinentry.cpp: Remove not used file. + * qt/document-encrypt.png: Move to icons subfolder + * qt/icons/*.svg: New. + * qt/main.cpp: Use new path for window icon. + * qt/pinentryrc.qrc: Real ressource file. + * qt/pinentrydialog.cpp: Use embedded icons. + +2022-01-19 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + avoid typo. + + commit 8b07ddf3460acd613db66f4c1230636da6ea191b + + +2022-01-17 Andre Heinecke <aheinecke@gnupg.org> + + qt: Install translator and translations. + + commit 8f239a2b133cae8ca9c1876c732d4e00d06c7d26 + * qt/qti18n.cpp: New. Based on KDE framework ki18n. + +2021-12-22 NIIBE Yutaka <gniibe@fsij.org> + + build: Fix configure.ac for newer autoconf/automake. + + commit ac338b99fd63ddfa8a7b6ae07933cfda6b108162 + * configure.ac (AC_CONFIG_HEADERS): Use it, instead of obsolete + AM_CONFIG_HEADER. + (AC_HEADER_STDC): Remove. + +2021-10-15 NIIBE Yutaka <gniibe@fsij.org> + + curses: Fix the previous commit. + + commit b713f31c5b042ff9d7b10c64bbc7ab02e195fbc9 + + +2021-10-13 NIIBE Yutaka <gniibe@fsij.org> + David Stes <stes@telenet.be> + + curses: Specify fg/bg when an extention of Ncurses is not available. + + commit d937ccfe4445394f0ca0da24fe46429a29ae48ce + * pinentry/pinentry-curses.c (dialog_run): Support original Curses. + +2021-09-30 NIIBE Yutaka <gniibe@fsij.org> + + curses: Handle an error at curses initialization. + + commit d22c49140b86880bbea2bb55542297984792b40a + * pinentry/pinentry-curses.c (dialog_run): Detect an error of newterm. + +2021-09-14 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Support building with Qt 5.9. + + commit c68d80e23a860a06e7b22b6c0d72aed5d049faef + * qt/pinlineedit.cpp (class PinLineEdit::Private): Add field q. + (PinLineEdit::Private::Private): New. + (PinLineEdit::Private::copyToClipboard): Remove obsolete parameter. + Use new field q instead. + (PinLineEdit::Private::selectionEnd): New. + (PinLineEdit::PinLineEdit): Pass this to Private. + (PinLineEdit::setFormattedPassphrase): Use new selectionEnd. + (PinLineEdit::copy): Call copyToClipboard without parameter. + +2021-08-25 Werner Koch <wk@gnupg.org> + + Release 1.2.0. + + commit aaf5d44f26e39f57bb47ae09dd3d575fcc51d9f5 + + +2021-08-18 Werner Koch <wk@gnupg.org> + + Accept percent escaped formatted-passphrase-hint option. + + commit 008fb9337a52730b5533c6c3ddc93128f8c5395b + * pinentry/pinentry.c (option_handler): Unescape + formatted_passphrase_hint. + +2021-08-18 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Change group size for passphrase formatting to 5. + + commit 5a6d70cf7d7bdd42505400bb1838c56812a22e56 + * qt/pinlineedit.cpp (static const int FormattedPassphraseGroupSize): + Set to 5. + +2021-08-16 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Make sure the message box is centered on top of the pinentry. + + commit d285c2cb1f61df77427967ea96c1df02adcae8df + * qt/pinentrydialog.cpp (PinEntryDialog::checkConstraints): Set + parent of message box. + +2021-08-12 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Make pinentry compile again with QT_NO_ACCESSIBILITY. + + commit 141b5776a90675877bdf63c17946170a7b20e5c6 + * qt/accessibility.cpp, qt/accessibility.h: New. + * qt/Makefile.am (pinentry_qt_SOURCES): Add new files. + * qt/main.cpp (qt_cmd_handler): Use new Accessibility helpers. + * qt/pinentryconfirm.cpp (PinentryConfirm::PinentryConfirm): Use new + Accessibility helpers. + * qt/pinentrydialog.cpp (PinEntryDialog::setDescription, + PinEntryDialog::setError, PinEntryDialog::setOkText, + PinEntryDialog::setCancelText, PinEntryDialog::setQualityBar, + PinEntryDialog::setGenpinLabel, PinEntryDialog::setCapsLockHint, + PinEntryDialog::setConstraintsOptions): Use new Accessibility helpers. + (PinEntryDialog::textChanged, PinEntryDialog::checkCapsLock): Guard + code using accessibility features with #ifndef QT_NO_ACCESSIBILITY. + + qt: Always make passphrase visible after generating it. + + commit e0b4e552638ed0d18a166a1337d9caa32744520e + * qt/pinentrydialog.cpp (PinEntryDialog::generatePin): Trigger + visibility action or check visibility checkbox. + + qt: Prevent possible crash when generating pin. + + commit 146fc0444b1fd30b85bac1f97607a9691164faa0 + * qt/pinentrydialog.cpp (PinEntryDialog::toggleVisibility): Check + visibility action for nullptr. + + qt: Change calculation of end of selection when enabling formatting. + + commit 1349fb7bcb5c84f3e0474ae209c5a058c12ff6e9 + * qt/pinlineedit.cpp (PinLineEdit::Private::formattedSelection): + Do not include trailing separator in selection. + + qt: Fix calculation of end of selection when disabling formatting. + + commit 1ae88d75321898901a692df95799a3c7e7b2f038 + * qt/pinlineedit.cpp (PinLineEdit::Private::unformattedSelection): + Fix calculation. + + qt: Remove checkbox for passphrase formatting. + + commit 06190adba5ac544bce77c4e5af75b44896850145 + * qt/main.cpp (qt_cmd_handler): Pass changed formatted passphrase + options to the dialog. + * qt/pinentrydialog.h (PinEntryDialog): Add field mFormatPassphrase. + Remove field mFormattedPassphraseCB. + (enum PinEntryDialog::FormattedPassphraseMode): Remove. + (struct PinEntryDialog::FormattedPassphraseOptions): Remove fields + mode, label, tooltip. Add field formatPassphrase. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + mFormatPassphrase. + (PinEntryDialog::setFormattedPassphrase): Set mFormatPassphrase. + Update widgets. + (PinEntryDialog::toggleFormattedPassphrase): Use mFormatPassphrase + instead of state of removed checkbox. + + Make passphrase formatting a simple flag. + + commit c42c6371fcf8ff2e856fa6059261617644e32a57 + * pinentry/pinentry.h (struct pinentry): Remove fields + formatted_passphrase_label, formatted_passphrase_tt. + * pinentry/pinentry.c (pinentry_reset): Remove free'ing of removed + fields. + (option_handler): Treat option "formatted-passphrase" as simple flag. + Remove options "formatted-passphrase-label", "formatted-passphrase-tt". + +2021-08-11 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Add missing header files to sources. + + commit 990afda6a9a1633297882da4f9c255b60a1cc338 + * qt/Makefile.am (pinentry_qt_SOURCES): Add header files. + + qt: Add logging category. + + commit 3086964f103d19b035f8df95114905a82fb4eb89 + * qt/pinentry_debug.cpp, qt/pinentry_debug.h: New. + * qt/Makefile.am (pinentry_qt_SOURCES): Add new files. + * qt/main.cpp (main): Use logging category for debug messages. + + qt: Fix crash when setting repeat error. + + commit d71d890ec23e718f339dc5a3f141a3f04a38e020 + * qt/pinentrydialog.cpp (PinEntryDialog::setRepeatErrorText): Check + for nullptr. + + qt: Change type and title of "Passwords do not match" notification. + + commit b8f1d2cc4202b4a76b199c356f2957df8acc37f5 + * qt/pinentrydialog.cpp (PinEntryDialog::onAccept): Make notification + an "information". Use repeat error text as title. + + qt: Avoid HTML markup in accessible descriptions and names. + + commit 639725b68b8a57fdad610fbe570029f151b138cb + * qt/pinentrydialog.cpp (PinEntryDialog::setFormattedPassphrase, + PinEntryDialog::setConstraintsOptions): + Set accessible descriptions and accessible names without HTML markup. + + qt: Select generated password explicitly after giving focus to input. + + commit 70b14b29d53291245dd72281e2b94a43f5834328 + qt/pinentrydialog.cpp (PinEntryDialog::generatePin): Select text in + input field. + +2021-08-10 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Make the generate password action accessible. + + commit 42c0d3ee935de67b5a261b1bd0fa62b1b519cbd4 + * qt/pinentrydialog.h (PinEntryDialog): Remove unused field mGenerateTT. + Remove field mGenerateActionEdit. Add field mGenerateButton. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + new field. Set up new push button. + (PinEntryDialog::setGenpinLabel): Set accessible name and update + visibility of new push button. + (PinEntryDialog::setGenpinLabel): Set tooltip of new push button. + (PinEntryDialog::setGenpinLabel): Update visibility of new push button. + (PinEntryDialog::generatePin): Focus password input field. + +2021-08-09 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Improve accessibility when entering new password. + + commit 8acf47ea46a6c2aa1fc5254b81c6cf57ad506b9c + * qt/pinentrydialog.h (PinEntryDialog): Change type of field + mRepeatError from QString to QLabel*. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + mRepeatError. Add widget for "entered passwords do not match" + error. Do not make the Ok button the default button. Connect to + returnPressed signal of (first) password input field. + (PinEntryDialog::focusChanged): Update default state of Ok button. + (PinEntryDialog::textChanged): Remove code disabling the Ok button + and setting a tooltip. + (PinEntryDialog::setRepeatErrorText): Set text of "entered passwords + do not match" widget. + (PinEntryDialog::onAccept): Show error if entered passwords do not + match. + +2021-08-06 Andre Heinecke <aheinecke@gnupg.org> + + qt: Mask caps lock toggle bit on windows. + + commit e5d4738a76b44c4732ddb57b7a3f3e25001ef006 + * qt/capslock_win.cpp (capsLockState): Mask toggle bit. + +2021-08-02 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Try harder to find out whether we are running in a GUI session. + + commit 956ee260f541790e0ecf01feb9d91f8f1617aa0e + * qt/main.cpp (main): Check more environment variables on Unix systems. + + Fix typo. + + commit 0735afa87e90c160bd3092605598c204b7dc38c3 + + + qt: Improve message shown if passphrase does not satisfy constraints. + + commit fefd730651b6881aba374c548ff253517063747a + qt/pinentrydialog.cpp (PinEntryDialog::checkConstraints): Use + property-based API of QMessageBox. + + qt: Ensure that malloced strings are free'd. + + commit 6191d4f06c8b46232e7d1bb3e12e3a3736fa6582 + * qt/main.cpp (qt_cmd_handler): Use unique_malloced_ptr for malloced + strings. + * qt/pinentrydialog.cpp (PinEntryDialog::generatePin, + PinEntryDialog::checkConstraints): Use unique_malloced_ptr for malloced + strings. + * qt/util.h: New. + + qt: Cancel timeout on more user interactions. + + commit f622321df5bbaedef882c3451307ff1727c4cd2d + * qt/pinentrydialog.h, qt/pinentrydialog.cpp + (PinentryDialog::cancelTimeout): New. + * qt/pinentrydialog.cpp (PinEntryDialog::onBackspace): Cancel timeout. + (PinEntryDialog::updateQuality, PinEntryDialog::textChanged): Cancel + timeout in PinEntryDialog::textChanged instead of + PinEntryDialog::updateQuality. + (PinEntryDialog::onAccept): Cancel timeout. + +2021-07-28 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Check passphrase constraints before accepting passphrase. + + commit b0969ef692ac729c3e3d9d8d5f34579f2116438a + * qt/main.cpp (qt_cmd_handler): Pass constraints options to the dialog. + * qt/pinentrydialog.h (PinEntryDialog): Add struct ConstraintsOptions. + Add enum PassphraseCheckResult. Add fields mEnforceConstraints, + mConstraintsHint, mConstraintsErrorTitle. + * qt/pinentrydialog.h, qt/pinentrydialog.cpp + (PinEntryDialog::setConstraintsOptions, PinEntryDialog::onAccept, + PinEntryDialog::checkConstraints): New. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + new fields. Call onAccept() on click on Ok. Add widget for constraints + hint. + (PinEntryDialog::checkCapsLock): Constify variable. + + Add support for passphrase constraints options and checkpin inquiry. + + commit 8f5d4532fbd6e3ed460386bdcda2cdac066a0556 + * pinentry/pinentry.h (struct pinentry): Add fields constraints_enforce, + constraints_hint_short, constraints_hint_long, constraints_error_title. + * pinentry/pinentry.h, pinentry/pinentry.c (pinentry_inq_checkpin): + New. + * pinentry/pinentry.c (pinentry_reset): Take care of the new fields. + (do_unescape_inplace): New. + (option_handler): New options "constraints-enforce", + "constraints-hint-short", "constraints-hint-long", + "constraints-error-title". + +2021-07-26 Ingo Klöcker <dev@ingo-kloecker.de> + + Mention Caps Lock warning in NEWS file. + + commit 134f75516d9511d7012e7dd3567e45b00ce4cb9a + + + qt: Add support for Caps Lock hint on Wayland. + + commit 3e803ebf640e73d9fb485fbb8b69b845a80fc695 + * configure.ac: Check for KF5WaylandClient. Add "-fpic" to CFLAGS. + Define PINENTRY_QT_WAYLAND if pinentry-qt should use KF5WaylandClient. + * qt/Makefile.am (BUILT_SOURCES, CLEANFILES, nodist_pinentry_qt_SOURCES): + Add capslock.moc. + (pinentry_qt_SOURCES): Add capslock.cpp. + * qt/capslock.cpp: New. + * qt/capslock.h (class CapsLockWatcher): New. + * qt/capslock_p.h: New. + * qt/capslock_unix.cpp (watchingWayland): New static. + (capsLockState): Log hint for using CapsLockWatcher on Wayland. + (CapsLockWatcher::Private::*): New. + * qt/pinentrydialog.cpp: Include config.h. + (PinEntryDialog::PinEntryDialog): Set up CapsLockWatcher. + + qt: Differentiate unknown Caps Lock state from off state. + + commit a074c90c78a6dfed3b7d8f32434bcf9f9f2b56dc + * qt/capslock.h (enum class LockState): New. + * qt/capslock.h, qt/capslock_unix.cpp, qt/capslock_win.cpp + (capsLockIsOn, capsLockState): Rename former to latter. Change return + type to LockState. + * qt/capslock_unix.cpp (capsLockState): Remove check for qApp. + * qt/pinentrydialog.cpp (checkCapsLock): Adapt to changed function name + and return type of capsLockIsOn/capsLockState. + +2021-07-22 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Fix showing of pinentry window on Wayland. + + commit 9dd46926f8d50cca059bbf5ea7aa003b9199a05f + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Skip the + minimize+raise trick on Wayland. + +2021-07-21 Ingo Klöcker <dev@ingo-kloecker.de> + + qt: Show hint if Caps Lock is on. + + commit 78e4284e8d93502f301cf0c2eab384094680d444 + * configure.ac: Check for libX11. Define PINENTRY_QT_X11 if pinentry-qt + should use x11. + * m4/qt.m4: Check for Qt5X11Extras if libX11 is available. + * qt/Makefile.am (pinentry_qt_platform_SOURCES): New. + (pinentry_qt_SOURCES): Add pinentry_qt_platform_SOURCES. + * qt/capslock.h, qt/capslock_unix.cpp, qt/capslock_win.cpp: New. + * qt/main.cpp (qt_cmd_handler): Pass caps lock hint to the dialog. + * qt/pinentrydialog.cpp, qt/pinentrydialog.h + (PinEntryDialog::setCapsLockHint, PinEntryDialog::keyReleaseEvent, + PinEntryDialog::checkCapsLock): New. + * qt/pinentrydialog.h (PinEntryDialog): Use Q_SLOTS instead of slots. + Add field mCapsLockHint. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + new field. Add new widgets to GUI. Connect to applicationStateChanged() + signal. Call checkCapsLock(). + + Add support for Caps Lock hint. + + commit 672260f15bf88f7aadc88e5ed2717ed22abc510e + * pinentry/pinentry.h (struct pinentry): Add field 'default_capshint'. + * pinentry/pinentry.cpp (pinentry_reset): Take care of this field. + (option_handler): New option "default-capshint". + +2021-07-15 Ingo Klöcker <dev@ingo-kloecker.de> + + Fix Assuan commands mentioned in comments. + + commit 621500c872585b60d2b31e2ce529c916b2f1d64c + pinentry/pinentry.h (struct pinentry): Fix comments. + + qt: Keep selection when enabling/disabling passphrase formatting. + + commit d875dba1cf87623d0d1240465cd43c660956eb2a + * qt/pinlineedit.cpp (struct Selection): New. + (PinLineEdit::Private::formattedSelection, + PinLineEdit::Private::formattedSelection): New. + (PinLineEdit::setFormattedPassphrase): Restore adjusted selection after + setting formatted/unformatted passphrase. + + qt: Enable formatted passphrase after generating passphrase. + + commit 64695a5e6f7bf59a1c161a60805dcfe5f3e5d720 + * qt/pinentrydialog.cpp (PinEntryDialog::generatePin): Enable formatted + passphrase option. + + qt: Select passphrase after generation. + + commit 5a5a4de1a32ebfc6364aedfe00702eee9374d63e + qt/pinentrydialog.cpp (PinEntryDialog::generatePin): Select text in + input field. + + qt: Enable passphrase generation. + + commit 742462d8a4d124936650901fe57b928a6518957c + qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Set icon for + generate action to a valid icon. + + qt: Show hint if passphrase is shown and formatting is enabled. + + commit 85b180f1b0148a07d51d244deb1a1245c9008cc3 + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + new fields. + (PinEntryDialog::PinEntryDialog): Add new widgets to GUI. + (PinEntryDialog::setFormattedPassphrase): Set text of the hint. + (PinEntryDialog::toggleFormattedPassphrase): Show/hide hint and spacer + as needed. + * qt/pinentrydialog.h (PinEntryDialog): Add fields + mFormattedPassphraseHint, mFormattedPassphraseHintSpacer. + + qt: Copy passphrase without separators to clipboard. + + commit 8ad23d6f18cecf4fd0ba1f357a1845c36c9abc97 + * qt/pinlineedit.cpp, qt/pinlineedit.h (PinLineEdit::copy, + PinLineEdit::cut): New. + * qt/pinlineedit.cpp (PinLineEdit::Private::copyToClipboard): New. + (PinLineEdit::keyPressEvent): Handle more key sequences. + + qt: Support passphrase formatting. + + commit de70241567773a96195882002ce916e54a3639c1 + * qt/main.cpp (qt_cmd_handler): Pass formatted passphrase options to + the dialog. + * qt/pinentrydialog.cpp, qt/pinentrydialog.h + (PinEntryDialog::setFormattedPassphrase, + PinEntryDialog::toggleFormattedPassphrase): New. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Initialize + new field. Construct widgets in the order they appear on the screen. + Add widget for enabling passphrase formatting. + (PinEntryDialog::setPin, PinEntryDialog::generatePin): Use + PinLineEdit::setPin() instead of setText(). + (PinEntryDialog::pin, PinEntryDialog::textChanged, + PinEntryDialog::repeatedPin): Use PinLineEdit::pin() instead of text(). + (PinEntryDialog::toggleVisibility): Call toggleFormattedPassphrase(). + * qt/pinentrydialog.h (enum PinEntryDialog::FormattedPassphraseMode, + struct PinEntryDialog::FormattedPassphraseOptions): New. + * qt/pinentrydialog.h (PinEntryDialog): Change type of field mRepeat. + Add field mFormattedPassphraseCB. + * qt/pinlineedit.cpp, qt/pinlineedit.h (PinLineEdit::~PinLineEdit, + PinLineEdit::setPin, PinLineEdit::pin, + PinLineEdit::setFormattedPassphrase, PinLineEdit::textEdited, + class PinLineEdit::Private): New. + * qt/pinlineedit.cpp: Add static constants FormattedPassphraseGroupSize, + FormattedPassphraseSeparator. + (PinLineEdit::PinLineEdit): Initialize new field. Connect textEdited + signal. + * qt/pinlineedit.h (PinLineEdit::PinLineEdit): Add explicit specifier. + Make argument optional. + (PinLineEdit::keyPressEvent): Add override specifier. + (PinLineEdit): Make inherited QLineEdit::setText and QLineEdit::text + private. Add field d. + + Add support for formatted passphrase options. + + commit deb97f3eb65f64ccabffee74c037a3dca81a3f49 + * pinentry/pinentry.h (struct pinentry): Add fields + formatted_passphrase, formatted_passphrase_label, + formatted_passphrase_tt, formatted_passphrase_hint. + * pinentry/pinentry.c (pinentry_reset): Free the fields. + (option_handler): Add options "formatted-passphrase", + "formatted-passphrase-label", "formatted-passphrase-tt", + "formatted-passphrase-hint". + +2021-04-16 NIIBE Yutaka <gniibe@fsij.org> + Jakub Jelen <jjelen@redhat.com> + + tty: Fix error return paths and its resource leaks. + + commit 7f7fd8bcfd74919091cc318b27b8617a9ef2ac82 + * tty/pinentry-tty.c (tty_cmd_handler): Only call do_touch_file + on successful interaction. Fix closing file. + +2021-04-15 NIIBE Yutaka <gniibe@fsij.org> + + build: Update m4/gpg-error.m4. + + commit 6b697bd3e9f859cea338936894079241f2e15ffc + * m4/gpg-error.m4: Update from libgpg-error. + + Let autogen.sh create the VERSION file. + + commit 1c0c177fa5aee63bc2c12ba2074a337555254d99 + * autogen.sh: Update from Libgpg-error + * configure.ac: Use autogen.sh --find-version. + * Makefile.am (dist-hook): Do not create VERSION. + (EXTRA_DIST): Add VERSION. + * autogen.rc: Remove obsolete use of --with-gpg-error-prefix and + --with-libassuan-prefix, which is not needed any more. + +2021-04-14 Jakub Jelen <jjelen@redhat.com> + + core,emacs,tty,curses: Fix memory leaks, invalid accese, and mistake. + + commit a87d9e8f89f946a733c756c72bf5ec41e0a738b8 + * pinentry/pinentry-curses.c (dialog_create): Free NEW. + [HAVE_NCURSESW] (dialog_run): Free OLD_CTYPE on error. + * pinentry/pinentry.c (pinentry_inq_genpin): Free VALUE on error. + * tty/pinentry-tty.c (tty_cmd_handler): Don't access closed FDs. + * pinentry/pinentry-emacs.c (set_labels): Fix for ->default_cancel. + +2021-02-23 Damien Goutte-Gattat <dgouttegattat@incenp.org> + + qt: Honor the --disable-rpath option. + + commit 6e8ad3150566d16a20cb3b54267191bcb0c14208 + * m4/qt.m4: Do not set rpath if --disable-rpath has been specified + at configure time. + +2021-02-19 Ingo Klöcker <dev@ingo-kloecker.de> + + build: Make EFL libraries optional unless EFL is explicitly wanted. + + commit d09e7de3df65b22ae2e606e5c9e32dda260c8bef + * configure.ac: Build pinentry-efl if EFL libraries are found. If EFL + libraries are not found, then warn or error out depending on whether EFL + is explicitly requested or not. + +2021-02-18 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + build: Simplfy use of pkg-config when testing for EFL. + + commit 19a18ba5fee049aac87b5114763095aaeb42430f + * configure.ac: use standard PKG_CONFIG macros when testing for EFL + libraries. + + GnuPG-Bug-Id: T5308 + +2021-02-16 Bertrand Jacquin <bertrand@jacquin.bzh> + + efl: Convert pinentry description to markup. + + commit d6a3a048f172cf79869d1a0c0bc1e1c659e5dab7 + * efl/pinentry-efl.c (create_window): Convert all UI strings to markup + text. + +2021-02-13 Bertrand Jacquin <bertrand@jacquin.bzh> + + efl: Ensure pinentry window is activated. + + commit 8fcbc9f40102d083db7a4acff2445e546ff5ec8b + * efl/pinentry-efl.c (create_window): Call elm_win_activate. + +2021-01-26 Andre Heinecke <aheinecke@gnupg.org> + + qt: Fix build against Qt4. + + commit 2859eddfb0c935d3f9eb9ccc1b42c121621123e9 + * qt/main.cpp: Ifdef out QWindow usage. + * qt/pinentrydialog.cpp: Only call the raiseWindow delayed when + using Qt5. + +2021-01-18 Damien Goutte-Gattat <dgouttegattat@incenp.org> + + build: Fix make dist with newer Automake. + + commit b3e83681119e74a7a084310cd1ab14170cb549d5 + * qt/Makefile.am: Make sure .moc files are only built if needed. + * tqt/Makefile.am: Likewise. + +2020-12-21 NIIBE Yutaka <gniibe@fsij.org> + + gtk+-2: Avoid use of deprecated API. + + commit de1829f81f31df37912198dda4a0c31c75a79c01 + * gtk+-2/pinentry-gtk-2.c (create_window): Use + gtk_widget_set_can_default. + +2020-11-20 Andre Heinecke <aheinecke@gnupg.org> + + qt: Disable generate button for now. + + commit 749529cac2b050586518d8de145a55901d6158cd + * qt/pinentrydialog.cpp: Disable generate until we make it + prettier. + +2020-11-18 NIIBE Yutaka <gniibe@fsij.org> + + build: Update to newer autoconf constructs. + + commit 5c83f6314e3fe6cb78d92e353263ac519821c927 + * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS instead of AC_GNU_SOURCE. + Use AS_HELP_STRING instead of AC_HELP_STRING. + * m4/gpg-error.m4: Update from libgpg-error. + * m4/libassuan.m4: Update from libassuan. + +2020-11-06 Andre Heinecke <aheinecke@gnupg.org> + + qt: Improve focus and frontness. + + commit a421ae8c4d2a0ce182e099e634e49ccdad454627 + * qt/pinentrydialog.cpp (raiseWindow): Use QtWindowsWindowFunctions + to get a more agressive bring to frontness. + (PinEntryDialog::PinEntryDialog): Start minimized. + + qt: Fix crash when generate icon was not found. + + commit cd2e69bfcf2630d7a61c4499b49c21790a1821d1 + * qt/pinentrydialog.cpp (PinEntryDialog::setGenpinLabel) + (PinEntryDialog::setGenpinTT): Check for NULL. + + qt: Silence deprecation warning. + + commit e4f1681550b1c42c062bc0e209947f13351cf02c + * qt/pinentrydialog.cpp (PinEntryDialog::setDescription): QString::null + is deprecated. + + qt: Add genpin suppport. + + commit 340e3ef6f4fc1136bc38691745aeb651cbf263a1 + * pinentry/pinentry.c (pinentry_inq_genpin): New. Based on + inq_quality. + (cmd_setgenpin_tt, cmd_setgenpin_label): New string helpers. + (register_commands): Register stringhelper commands. + * pinentry/pinentry.h (struct pinentry): Add new variables for + label and tooltips. + * qt/main.cpp (qt_cmd_handler): Set up labels. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Add + generate action if label is provided. + (PinEntryDialog::setGenpinLabel): New. + (PinEntryDialog::setGenpinTT): New. + (PinEntryDialog::textChanged): Hide generate action if text + is entered. + (PinEntryDialog::generatePin): Inquire generate. + (PinEntryDialog::toggleVisibility): Allow calls from other + senders. + +2020-05-08 Andre Heinecke <aheinecke@gnupg.org> + + curses: Fix build with ncurses 6.2. + + commit ae584040d14a4d7d6eed8be77844126130ef0118 + * pinentry/pinentry-curses.c (curses_cmd_handler): Use + renamed variable. + * pinentry/pinentry.c (pinentry_reset, pinentry_parse_opts) + (option_handler, cmd_getinfo) Use renamed variable. + * pinentry/pinentry.h (struct pinentry): Rename ttytype to + ttytype_l. + +2020-01-10 David Faure <faure@kde.org> + + qt: Add rpath so the Qt libs are found at runtime. + + commit 971d1365ab16279bb33312583c320008e391f26e + * configure.ac: Add PINENTRY_QT_LDFLAGS variable. + * m4/qt.m4: Check qt libdir and add it to LDFLAGS. + * qt/Makefile.am: Use PINENTRY_QT_LDFLAGS. + +2019-12-05 NIIBE Yutaka <gniibe@fsij.org> + + build: Require newer GTK+2 (>= 2.12.0). + + commit 099b79fc2d6638598b94161e1162a55af8a95531 + * configure.ac: Check gtk+-2.0 >= 2.12.0. + + gtk: Remove support of old GTK+2 (< 2.12.0). + + commit edbd0d61b35fe7408cb879c0bd81daf42accb5ed + * gtk+-2/pinentry-gtk-2.c (tooltips): Remove + (create_window): Remove use of tooltips, but use + gtk_widget_set_tooltip_text. + +2019-11-14 Werner Koch <wk@gnupg.org> + + core: Allow to query info about the emacn integration. + + commit 02a4f2fa0d8c8a63e72b9b9924b2817bfacce09a + * pinentry/pinentry-emacs.c (pinentry_emacs_status): New. + * pinentry/pinentry.c (cmd_getinfo): Add emacs info getinfo. + + emacs: Handle options before trying to conenct to emacs. + + commit f4b896ab75ba6536e78c56d377ad5ab6ff69b944 + * emacs/pinentry-emacs.c (main): Parse options first. + +2019-07-25 Andre Heinecke <aheinecke@gnupg.org> + + qt: Fix use of dangling pointer in QApplication. + + commit 0e2e53c8987d6f236aaef515eb005e8e86397fbc + * qt/main.cpp (main): Use a new variable for argc that stays + valid. + +2019-07-10 NIIBE Yutaka <gniibe@fsij.org> + + curses: Fix more. + + commit dad35d65f05eb1c15589a7e4755dcae6aed2d6cf + * pinentry/pinentry-curses.c (dialog_create): Reverting was not + enough. Correctly check with the character at len - 1. + +2019-07-09 NIIBE Yutaka <gniibe@fsij.org> + + curses: Fix handling of newline in description. + + commit a03f3920714830b1f09b48f41be5a0aa8177f11a + * pinentry/pinentry-curses.c (collect_line): LEN including the + newline/null character. + (dialog_create): Fix the caluculation. + + curses: Fix width calculation. + + commit 67a7cfa12d1525097d9822124c9bd05207204a60 + * pinentry/pinentry-curses.c (collect_line): Fix caluculation + where skipping the first character and adding 1 column. + + curses: Fix calculation of columns for CJK text. + + commit 9298cca67742df946efb9ba268a04904339454f1 + * pinentry/pinentry-curses.c (STRWIDTH): New. + (collect_line): Let return value for columns width. + LEN minus one. + (dialog_create): Calculate for the columns with STRWIDTH. + +2019-06-27 NIIBE Yutaka <gniibe@fsij.org> + + tty: Confirmation is not by line edit mode. + + commit f6e84ce0a34c5314999ac9af2f1d360c157b1ed5 + * tty/pinentry-tty.c (terminal_setup): Support single char mode. + + tty: Support line editing by system. + + commit 531b92300c58aee665b55d1dffa7ffb4027cba20 + * tty/pinentry-tty.c (terminal_setup): Not cbreak, but only no echo. + (confirm, read_password): Don't do editing here. + [HAVE_DOSISH_SYSTEM] (confirm, read_password): Return + GPG_ERR_FULLY_CANCELED when EINTR and it's not timed out. + (tty_cmd_handler): Call sigaction for SIGINT. + + Exit the loop on an error with GPG_ERR_FULLY_CANCELED. + + commit b176a8ac0dcd682549084cbf02876a550226d722 + * pinentry/pinentry.c (cmd_getpin, cmd_confirm): Set + ASSUAN_FORCE_CLOSE flag when GPG_ERR_FULLY_CANCELED. + + tty: Factor out terminal setup into tty_cmd_handler. + + commit 89add7b733138d7fe86d348be57873936cab3112 + * tty/pinentry-tty.c (terminal_save, terminal_restore): New. + (terminal_setup): Rename from cbreak. + (confirm, read_password): Don't touch terminal setting here. + (tty_cmd_handler): Do terminal setting/restore here. + +2019-06-10 Ineiev <ineiev@gnu.org> + + tty: Show supplied message when using default. + + commit 95743b2cd7361aab10c5eb4f430928d09ce9c214 + * tty/pinentry-tty.c (fputs_highlighted): New function. + (button): Display the supplied text when falling back to default; the + default text is shown in braces and provides the accelerator. + +2019-05-13 NIIBE Yutaka <gniibe@fsij.org> + + build: Update m4/iconv.m4. + + commit 42c32e08d5a428627e5f74e0ab2bf4102e511b40 + * m4/iconv.m4: Update from gettext 0.20.1. + +2019-04-17 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + gnome3: correctly detect when no GNOME screenlock exists. + + commit f74c4673e6b60508012c14f7574dbc3215345210 + * gnome3/pinentry-gnome3.c (pe_gnome_screen_locked): skip + G_IO_ERROR_IS_DIRECTORY responses, not G_IO_ERROR_TIMED_OUT responses + from dbus. + +2019-04-17 Zephaniah E. Loss-Cutler-Hull <zephaniah@gmail.com> + + gnome3: Use the default dbus timeout when checking for screenlock. + + commit 65d2c6d5911ab04b19f953153d01116198cc4cb8 + * gnome3/pinentry-gnome3.c (pe_gnome_screen_locked): use default dbus + timeout instead of 0ms. + +2019-03-04 NIIBE Yutaka <gniibe@fsij.org> + + Update gpg-error.m4 and libassuan.m4 from corresponding repos. + + commit 6ddcc92cf6e9a904a5c98982709edeb42034843d + * m4/gpg-error.m4: Update. + * m4/libassuan.m4: Update. + +2019-02-10 Damien Goutte-Gattat <dgouttegattat@incenp.org> + + build: Add --disable-doc option. + + commit 8f8d907f53b2749642ee273e2cec28f7d68f26ff + * configure.ac (BUILD_DOC): Add new am_conditional. + * Makefile.am: Skip doc subdir if BUILD_DOC is not set. + +2019-02-10 Damien Goutte-Gattat <dgouttegattat@incenp.org> + Michael Bäuerle + + fltk: Handle '_' in button labels as keyboard shortcuts. + + commit 21f0883059c84de7145d402877cd178fcfed44e3 + * fltk/main.cxx (convert_accel_utf8): New method. + (fltk_cmd_handler): Calls previous method to escape button labels. + +2019-02-10 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + fltk: Fix formatting escapes. + + commit a60e4f8142159b3e2df10d8d725b9680be5b4616 + * fltk/main.cxx (fltk_cmd_handler): Fix calls to fl_message() + and fl_choice() functions. + +2018-08-22 Damien Goutte-Gattat via Gnupg-devel <gnupg-devel@gnupg.org> + + Disallow echo disabling when prompting for a PIN. + + commit d0eaec8ef60be9b4d1aa5993c11d261a35202a2e + * gtk+-2/pinentry-gtk-2.c (create_window): Do not setup + the backspace handler when prompting for a PIN. + callback only when not prompting for a PIN. + * qt/pinentrydialog.h (_got_input): Rename field to + _disable_echo_allowed. + * qt/pinentrydialog.cpp (PinEntryDialog::setPrompt): Disallow + echo disabling when prompting for a PIN. + * tqt/pinentrydialog.h (_got_input): Rename field to + _disable_echo_allowed. + * tqt/pinentrydialog.cpp (PinEntryDialog::setPrompt): Disallow + echo disabling when prompting for a PIN. + +2018-08-15 Damien Goutte-Gattat via Gnupg-devel <gnupg-devel@gnupg.org> + + tqt: Disable echoing if backspace is pressed first. + + commit 0fb3392f61569cb93e52c81465bc8e4636bca3b7 + * tqt/secqlineedit.h (backspacePressed): New signal. + * tqt/secqinternal.cpp (SecTQLineEdit::backspace): Emit new signal. + * tqt/pinentrydialog.h (_got_input): New member field. + (onBackspace): New slot. + * tqt/pinentrydialog.cpp (onBackspace): New slot. + (PinEntryDialog::updateQuality): Prevent echo disabling as soon as + the text has been edited. + + qt: Disable echoing if backspace is pressed first. + + commit a75786a11666a080cae67f6e386163fcf93ff233 + * qt/pinlineedit.h: New file. + * qt/pinlineedit.cpp: New file. + * qt/Makefile.am: Add new source files. + * qt/pinentrydialog.cpp (PinEntryDialog): New member _got_input; + Type of _edit member changed to PinLineEdit. + (PinEntryDialog::onBackspace): New slot. + + gtk: Disable echoing if backspace is pressed first. + + commit 4b06bc6009011a84e5e8d4da2f01659f35e5a2d5 + * gtk+-2/pinentry-gtk-2.c (backspace_handler): New callback. + (create_window): Attach previous callback to "backspace" signal. + + curses: Disable echoing if backspace is pressed first. + + commit fd22facabd784586f72eeecc72830620a534929c + * pinentry/pinentry-curses.c (struct dialog): New fields got_input, + no_echo. + (dialog_input): Disable echoing and display instead "[no echo]" if + the backspace key is pressed first. + +2018-06-13 Werner Koch <wk@gnupg.org> + + core: Add info about tty mode etc to 'getinfo ttyinfo' + + commit 779b8e6df7d2678d40bc61ba9e9ff35324a40d03 + * configure.ac: Check for 'stat'. + * pinentry/pinentry.c: Include types.h and stat.h. + (device_stat_string): New. + (cmd_getinfo): Print more info. + +2018-05-29 William L. Thomson Jr <wlt@o-sinc.com> + + efl: Add an EFL-based pinentry. + + commit 948105b7a34ec9a9e5479d376b7c86bafee50a01 + * NEWS: Update. + * Makefile.am: Add new efl subdirectory. + * configure.ac: Add --enable-pinentry-efl option. + * efl/Makefile.am: New file. + * efl/pinentry-efl.c: New file. + +2018-03-05 Andre Heinecke <aheinecke@intevation.de> + + qt: Try again to fix Windows Window Management. + + commit fa817f00363cdc305728ece6139d76361c77f361 + * qt/pinentrydialog.cpp (raiseWindow): Activate Window and + disable windows hacks. + (PinEntryDialog::PinEntryDialog): Delay setFocus after the + event loop returns. + +2018-03-01 Andre Heinecke <aheinecke@intevation.de> + + qt: Renable Windows Foreground Window hacks. + + commit 141fd941a58f70692cb6244f011e54b005d2195c + * qt/main.cpp, qt/pinentryconfirm.cpp: Use raiseWindow again. + * qt/pinentrydialog.cpp: Renable Foreground Window hacks. + +2018-02-28 Andre Heinecke <aheinecke@intevation.de> + + qt: Clean up foreground window code. + + commit 84d473f5c323a3001374b0db736af9be4e3478a3 + * qt/main.cpp (ForeignWidget): Remove. This did nothing + with Qt 5. + (setup_foreground_window): New helper to set parent and + window flags. + (qt_cmd_handler): Use setup_foreground_window. + * qt/pinentrydialog.cpp: Disable Windows API hacks. + +2018-02-06 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + tqt: use UTF-8 instead of ISO-8859-1. + + commit 822c66815b5072281563fc4faa055493d20d660d + + +2017-12-03 Werner Koch <wk@gnupg.org> + + Release 1.1.0. + + commit 02df3d26b986c8f2850eeba47efcb3aca9d5dbcb + + +2017-11-22 Damien Goutte-Gattat <dgouttegattat@incenp.org> + "deloptes" <deloptes@gmail.com> + + tqt: Add a TQt-based pinentry. + + commit 985e5cad6f60de8e60d8ae410cffcd7e2d84f3a2 + * NEWS: Update. + * Makefile.am: Add new tqt subdirectory. + * configure.ac: Add --enable-pinentry-tqt option. + * tqt/Makefile.am: New file. + * tqt/main.cpp: New file. + * tqt/pinentrydialog.cpp: New file. + * tqt/pinentrydialog.h: New file. + * tqt/secqinternal.cpp: New file. + * tqt/secqinternal_p.h: New file. + * tqt/secqlineedit.cpp: New file. + * tqt/secqlineedit.h: New file. + * tqt/secqstring.cpp: New file. + * tqt/secqstring.h: New file. + +2017-11-21 Werner Koch <wk@gnupg.org> + + w32: Allow building for Windows again. + + commit 8ea3a6c3f8e72ebece2af9b1b05ea1da4865a786 + * pinentry/pinentry.c [W32]: Do not include utsname.h + (WITH_UTF8_CONVERSION): New macro. + (lc_ctype_unknown_warning): Move that var to the top and define only + if needed. + (pinentry_utf8_to_local, pinentry_local_to_utf8): Simplyfy by using + the new macro. + (get_cmdline) [W32]: Do not build. + (get_pid_name_for_uid) [W32]: Do not build. + (pinentry_get_title) [W32]: Do not use the new utsname code. + (option_handler) <debug-wait>: Ignore for any Windows version. + +2017-11-20 Werner Koch <wk@gnupg.org> + + Add SPDX-License-Identifier to most files. + + commit 622f876784239c9524a598e6486181bcd0ee64b2 + + + Add copyright info for AUTHORS. + + commit 738ab548f13cc032f01ca5da1f8dc3ea221b209d + + +2017-11-16 Damien Goutte-Gattat <dgouttegattat@incenp.org> + + fltk: Fix compilation and distcheck errors. + + commit 89ae5378d1cc54be0825bcfa3ea567b1caa4a247 + * fltk/Makefile.am (AM_CXXFLAGS): Add -std=c++11 flag. + (pinentry_fltk_SOURCES): Add header files. + (EXTRA_DIST): Add icon files. + * .gitignore: Ignore autoconf-generated files in fltk/. + +2017-10-19 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + core: Expect (and verify) a uid on "owner" option. + + commit 6aafa61b199ab9091d6c9e190129f2ead2a647c7 + * pinentry/pinentry.h (struct pinentry): Add field 'owner_uid'. + * pinentry/pinentry.c (pinentry_reset): Handle this new field. + (get_pid_name_for_uid): New. Atomic check for the base process name + contingent on process ownership. + (pinentry_get_title): Only scan for full commandline if the process + actually belongs to the claimed uid. + (option_handler): Option "owner" now expects "pid/uid hostname". + +2017-10-12 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + core: Only scan for the command line if probably on the same host. + + commit 1f5b351531205214e9513a0aed170660dc822ceb + * pinentry/pinentry.c (pinentry_get_title): Check the current hostname + and make sure it matches. If it does not, do not bother looking for + the command line. + + core: Clean up command line extraction. + + commit 242b658289488696d371c639c1da631712bd774c + * pinentry/pinentry.c (get_cmdline): Avoid trailing space, and return + NULL when no bytes were read from /proc. + + tty: correct comments. + + commit d7c54372512fbbd77709a3ea913b902061e5d45d + * tty/Makefile.am, tty/pinentry-tty.c: comments were copy/pasted from + pinentry-curses; correcting them. + +2017-08-23 Damien Goutte-Gattat <dgouttegattat@incenp.org> + + gtk: Really always set the window as transient. + + commit 2b1fb2f30a94a967dacec298e3c7d8a80b4c3194 + * gtk+-2/pinentry-gtk-2.c (make_transient): Set the window as + transient even if we do not grab the keyboard. + +2017-08-23 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de> + + core: Supress compiler warnings. + + commit 858bde1fbbc5e14f2d6410da05869188bdc36ee3 + * pinentry/password-cache.c (password_cache_save, password_cache_lookup, + password_cache_clear) [!HAVE_LIBSECRET]: Suppress unused parameter + warnings. + +2017-08-04 Damien Goutte-Gattat <dgouttegattat@incenp.org> + + gtk: Disable tooltips in keyboard-grabbing mode. + + commit 1590b664d88be8386a4664c2994b685187d1eb25 + * gtk+-2:/pinentry-gtk-2.c (show_hide_button): Do not show the + tooltip if we attempt to grab the keyboard. + (create_window): Likewise. + +2017-07-12 Daiki Ueno <ueno@gnu.org> + + doc: Make Emacs frontend description more accurate. + + commit ebfa54e6044420ae12a090cdef9df7e7b0d961d2 + * doc/pinentry.texi (Front ends): Remove false assertions on + insecurity of Emacs, and mention allow-emacs-pinentry option of + gpg-agent. + +2017-07-12 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de> + + core: Disable "save passphrase" checkbox without secret service. + + commit e57bcb7a2acff3a61a342d24e6a55407bf736631 + * pinentry/password-cache.c (password_cache_lookup): New argument + FATAL_ERROR. Set it on fatal error. + * pinentry/password-cache.h (password_cache_lookup): New argument + FATAL_ERROR in declaration. + * pinentry/pinentry.c (cmd_getpin): On fatal error, disallow + external password store. + * NEWS: Update. + +2017-07-11 Alon Bar-Lev <alon.barlev@gmail.com> + + Use pkg-config consistently. + + commit 6053cb4f3873897acf5d899bc6f02046d0748a0f + * configure.ac: Invoke PKG_PROG_PKG_CONFIG. Consistently use + PKG_CHECK_MODULES for GTK+2.0, Gnome 3 and libsecret. + * gnome3/Makefile.am (AM_CPPFLAGS, LDADD): Adjust Gnome 3 flags. + * gtk+-2/Makefile.am (AM_CPPFLAGS, LDADD): Adjust Gtk+2.0 flags. + +2017-07-11 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de> + + curses: Add option to beep or flash terminal on dialog. + + commit 1dba96fafa123f3631c0a50bb01835306c23b903 + * pinentry/pinentry-curses.c (dialog_run): Beep or flash terminal. + * pinentry/pinentry.c (pinentry_reset): Reset ttyalert option. + (pinentry_parse_opts): Parse option ttyalert. + (option_handler): Handle option ttyalert. + * pinentry/pinentry.h (struct pinentry): New option ttyalert. + +2017-07-05 Damien Goutte-Gattat <dgouttegattat@incenp.org> + + gtk: Always set the window as transient. + + commit f69dadc6ccea7672869436291ab5c1f58d545466 + * gtk+-2/pinentry-gtk-2.c (create_window): Setup the make_transient + callback whether we ask for a passphrase or not. + +2017-05-03 Andre Heinecke <aheinecke@intevation.de> + + qt: Improve width of pinentryconfirm. + + commit 4101806bf73caf25c8ce4e455b154901da1fe788 + * qt/pinentryconfirm.cpp (PinentryConfirm::showEvent): Add spacer + item for text width. + + qt: Fix build with Qt4. + + commit 8bf41fe086438de9fa223ccf4162ed9d98e54646 + * qt/main.cpp (main): Don't use Q_NULLPTR. + +2017-03-08 Justus Winter <justus@gnupg.org> + + fltk: Remove commented-out code. + + commit 5c3f796798d655b5583257f9dfc81ae9c1427fb3 + * fltk/main.cxx: Remove commented-out code. + + fltk: Fix warning. + + commit 2b2bbc9f67115baf518514281d3911b727b1caf9 + * fltk/main.cxx (fltk_cmd_handler): Use a 'std::unique_ptr' instead of + a deprecated 'std::auto_ptr'. + +2017-03-08 Anatoly madRat L. Berenblit <madrat-@users.noreply.github.com> + + fltk: Add a FLTK-based pinentry. + + commit 6c45eed62214b44fcc11e642b19df7b6ca0da0bd + * NEWS: Update. + * Makefile.am: Add new subdirectory. + * configure.ac: Add configuration for FLTK. + * fltk/Makefile.am: New file. + * fltk/encrypt.xpm: Likewise. + * fltk/icon.xpm: Likewise. + * fltk/main.cxx: Likewise. + * fltk/passwindow.cxx: Likewise. + * fltk/passwindow.h: Likewise. + * fltk/pinwindow.cxx: Likewise. + * fltk/pinwindow.h: Likewise. + * fltk/qualitypasswindow.cxx: Likewise. + * fltk/qualitypasswindow.h: Likewise. + +2017-02-13 Andre Heinecke <aheinecke@intevation.de> + + qt: Fix pinentry-curses fallback for qt5. + + commit cd7b35e8ff106993b9ce98ea99a5210d637f3452 + * qt/main.cpp (main): Initialize QApplication later. + +2017-02-03 Werner Koch <wk@gnupg.org> + + core: Show the command line in the titlebar. + + commit e467a000f87e87582f5838964b6f1e0a960d4445 + * pinentry/pinentry.c (get_cmdline): New. + (pinentry_get_title): Add the cmdline to the title. + + Use a shared function to construct the title. + + commit 36d32fbdedb07b285d01871b3ee66400c81681d3 + * pinentry/pinentry.c (pinentry_get_title): New. + * qt/main.cpp (qt_cmd_handler): Use that function for the title. + * tty/pinentry-tty.c (confirm, password): Ditto. + * gnome3/pinentry-gnome3.c (create_prompt): Ditto. + * gtk+-2/pinentry-gtk-2.c (create_window): Ditto. + * pinentry/pinentry-emacs.c (set_labels): Ditto. + + gtk: Unless SETTITLE is used show the pid in the titlebar. + + commit c0d60e130b9bbd21801c8e71e80ab7c36f4ad6bd + * gtk+-2/pinentry-gtk-2.c (create_window): Display the pid as title. + + core: New Assuan option "owner". + + commit 61cde37b3e6a41bd24476d3c285288c12da0ed60 + * pinentry/pinentry.h (struct pinentry): Add fields 'owner_pid' and + 'owner_host'. + * pinentry/pinentry.c (pinentry_reset): Take care of these fields. + (option_handler): New option "owner". + + curses: Do not return OK on error. + + commit ce745a292192b01203ba5f557205a6f000bff953 + * pinentry/pinentry.c (cmd_confirm): Take care not to return OK if the + RESULT is negative. + * pinentry/pinentry-curses.c (dialog_create): Amend error reporting by + setting specific_err_loc. + (dialog_run): Use new var confirm_mode for clearness. In confirm mode + return Cancel instead of error. This is how the gtk Pinentry does it. + + core: New command getinfo/ttyinfo. + + commit cd45d74d07512f8ec8d2b3306a1804457dd12964 + * pinentry/pinentry.c (remember_display): New var. + (pinentry_have_display): Peek at --display. + (pinentry_parse_opts): Set pinentry.display. + (cmd_getinfo): Add sub-command "ttyinfo". + +2017-02-03 Werner Koch <wk@gnupg.org> + Vincent Lefevre <vincent@vinc17.net> + + gtk2: Fix a problem with fvwm. + + commit b0e0bdeac5d40ca645afc9017778b39a26303523 + * gtk+-2/pinentry-gtk-2.c (grab_pointer): Take care of + GDK_GRAB_ALREADY_GRABBED. + +2017-01-16 Justus Winter <justus@g10code.com> + + gnome3: Use the program name as default title. + + commit 8e3aa3204e74e8d7a7538e0d0f04e555f140131b + * gnome3/pinentry-gnome3.c (create_prompt): If no title is requested, + use the program name as the default title. This mimics what the GTK+2 + variant does (although the GTK+2 pinentry seems to use + basename(argv[0])). + +2017-01-13 NIIBE Yutaka <gniibe@fsij.org> + + gnome3: Fix CONFIRM condition. + + commit c725fdd260b0c2291660ff954e6b2250006ec08f + * gnome3/pinentry-gnome3.c (gnome3_cmd_handler): No buffer for PIN means + it's not passphrase input but confirmation dialog. + +2016-12-19 Raphael Kubo da Costa <rakuco@FreeBSD.org> + + Qt: Make sure extended grep is used with '|'. + + commit 1acb06aac3dd08f573d7c2e3be75226346e61ed2 + * m4/qt.m4: Use grep -E when using the alternation character. + +2016-12-01 Werner Koch <wk@gnupg.org> + + Fix linkage problem in tty and emacs pinentries. + + commit c5c7bee68730c9f66a27f9bb0d023480623a2bfb + * emacs/pinentry-emacs.c (curses_cmd_handler): Remove var. + * tty/pinentry-tty.c (curses_cmd_handler): Remove var. + * pinentry/pinentry.c (flavor_flag): New local var. + (pinentry_set_flavor_flag): New function. + (cmd_getinfo): Use FLAVOR_FLAG for the "flavor" sub-command. + * gnome3/pinentry-gnome3.c (main): Call pinentry_set_flavor_flag. + * gtk+-2/pinentry-gtk-2.c (main): Ditto. + * pinentry/pinentry-emacs.c (initial_emacs_cmd_handler): Ditto. + * qt/main.cpp (main): Ditto. + +2016-11-22 Werner Koch <wk@gnupg.org> + + Create SWDB entry during make distcheck. + + commit d015020b56dc11848d638d8a0f22c11971f896ea + * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Build emacs flavor. + (distcheck-hook): New. + + Release 1.0.0. + + commit 5eb55801a70148111a78a7ffd8ee459790f1aafe + + + emacs: Add curses handler stub. + + commit d126036671e7dd631babc118cb4113f723f15748 + * emacs/pinentry-emacs.c (curses_cmd_handler): New stub. + +2016-11-08 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + gnome3: Tighten up error messages when GNOME screensaver is absent. + + commit cf8885fd5a61654a164f470fa3e7095b8e424258 + * gnome3/pinentry-gnome3.c (pe_gnome_screen_locked): clean up error + messages when GNOME screensaver is absent or misbehaving. + +2016-11-07 Werner Koch <wk@gnupg.org> + + Add fail-safe string termination for snprintf. + + commit 8f51108a17d0080c33fae182f1e4b9259f10a9e5 + * gtk+-2/pinentry-gtk-2.c (changed_text_handler): Make sure an + snprintf buffer is always ternminated. + * pinentry/pinentry.c (my_strusage): Ditto. + (write_status_error): Ditto. + (cmd_getinfo): Ditto. + * w32/main.c (w32_strerror): Ditto. + +2016-11-07 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + gnome3: Avoid risk of uinitialized memory access. + + commit 15a6fd9f1ee0e3bc62daf143546f5186ce947700 + * gnome3/pinentry-gnome3.c (_propagate_g_error_to_pinentry): Ensure + that pinentry->specific_err_info is null-terminated. + + tty: Declare dummy curses_cmd_handler. + + commit e4e3a9cc88704dcffac660d0b92fd1ed8abecc11 + * tty/pinentry-tty.c: Declare a dummy handler for the + curses_cmd_handler for fallback. + + gnome3: Fall back to curses if screensaver is locked. + + commit e353f4d1ac31e58f46eeba29279adf809dfb96a9 + * gnome3/pinentry-gnome3.c (pe_gnome_screen_locked): New Function. + Returns true only if we can talk to a GNOME screensaver over D-Bus and + it assures us that it is locked. + (main): If GNOME screensaver is locked, fall back to curses. + +2016-11-05 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + gnome3: Test if Gcr System Prompter is available at startup. + + commit 2e17565fd9cb94afe840050780d28db75e5c4053 + * gnome3/pinentry-gnome3.c (gcr_system_prompt_available): New. Tests + whether it is possible to create a GcrSystemPrompt. + (main): Use gcr_system_prompt_available() to decide whether to fall + back to curses or not. + + build: Avoid unnecessary dependency on gtk+-2 for GNOME3 development. + + commit b945576fe906ffcd5bcc50b4322ef2f34d8fb89f + * configure.ac: There is no reason to reject building the GNOME3 + pinentry if GTK+-2 development libraries are not present. GNOME3 does + not require GTK+-2. + +2016-11-05 Werner Koch <wk@gnupg.org> + + gnome3: Avoid using gnome and gcr symbol namespace. + + commit 799116010a57aec9a86c5529388111d54aff3c55 + * gnome3/pinentry-gnome3.c (struct _gnome3_run): Rename to + pe_gnome3_run_s. + (_gcr_prompt_password_done): Rename to pe_gcr_prompt_password_done. + (_gcr_prompt_confirm_done): Rename to pe_gcr_prompt_confirm_done. + (_gcr_timeout_done): Rename to pe_gcr_timeout_done. + +2016-11-05 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + gnome3: Honor timeout. + + commit f7b99ff5f7f78db45350308bf409ea4a9e94f161 + * gnome3/pinentry-gnome3.c (create_prompt): Use timeout to determine + how long to wait for Gcr to provide a system prompt before giving up. + (_gcr_timeout_done): New. Record that a timeout has elapsed. + (gnome3_cmd_handler): Set up a timeout before launching the prompt, + and tear it down afterward. + (_gcr_prompt_password_done): Report timeout differently from normal + cancellation. + (_gcr_prompt_confirm_done): Report timeout differently from normal + cancellation. + + gnome3: Convert password/confirmation to asynchronous model. + + commit d0fe54d592a8d2be6fc82b26290a644bb3629214 + * gnome3/pinentry-gnome3.c (gnome3_cmd_handler): Convert main part of + password or confirmation fetching into asynchronous code by moving + completion into... + (_gcr_prompt_password_done): ... here and... + (_gcr_prompt_confirm_done): ... here. + + qt: Report timeout. + + commit 102832a2c1f3ffa432e2a169791611bb3ca13a04 + * qt/pinentryconfirm.h (PinentryConfirm): Add _timed_out, timedOut(). + * qt/pinentrydialog.h (PinentryDialog): Add _timed_out, timedOut(). + * qt/pinentryconfirm.cpp (slotTimeout): Record elapsed timeout. + (PinentryConfirm): Initialize _timed_out to false. + (timedOut): New. Returns value of _timed_out. + * qt/pinentryDialog.cpp (slotTimeout): Record elapsed timeout. + (PinentryDialog): Initialize _timed_out to false. + (timedOut): New. Returns value of _timed_out. + * qt/main.cpp (qt_cmd_handler): Report if canceled due to timeout. + + curses: Report timeout. + + commit 784c4e0a3acace39a4a632bf443c794752297d54 + * pinentry/pinentry-curses.c (dialog_run): Report if canceled due to + timeout. + + gtk2: Report timeout. + + commit 93b4454f4fe4d97dd89efccd64dbdd02bd002f77 + * gtk+-2/pinentry-gtk-2.c (create_window): Send pointer to pinentry + into timeout_cb. + (timeout_cb): Report if canceled due to timeout. + + tty: Report timeout. + + commit 3be5b4fabaabf86f085b0b5303a1312abb7d0617 + * tty/pinentry-tty.c (confirm): Report if canceled due to timeout. + (password): Report if canceled due to timeout. + + gnome3: Propagate GError messages to pinentry. + + commit 19c2110557d0504c1b406bde24e86cb5eb552fc7 + * gnome3/pinentry-gnome3.c (_propagate_g_error_to_pinentry): New. Send + GError messages back out to pinentry error reporting. + (create_prompt): Use _propagate_g_error_to_pinentry on error. + (gnome3_cmd_handler): Use _propagate_g_error_to_pinentry on error. + + gnome3: Set parent window. + + commit 96e3c5fcf210e971fe1ba66b9127ad51144fcc49 + * gnome3/pinentry-gnome3.c (create_prompt): Tell Gcr about the caller + window, if we know it. + +2016-11-05 Werner Koch <wk@gnupg.org> + + core: Add command getinfo/flavor. + + commit 553af04cf9c103c2e2cd5085b0d5fb647a608d51 + * pinentry/pinentry.c: Inlcude pinentry-curses.h. + (cmd_getinfo): Add sub-command "flavor" + +2016-11-03 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + Convert to UTF-8. + + commit 7b0a822460eb6f4bf28f85f38c64a86bb8f80d3d + + +2016-10-11 Daiki Ueno <ueno@gnu.org> + + core: Don't report error on setting option 'allow-emacs-pinentry'. + + commit a383ddeb76463ddcf5aca2fb38847ea3158c42a7 + Previously "OPTION allow-emacs-pinentry" returned an error if the Emacs + pinentry is not compiled in. Since it is merely an option, it would + make more sense to just return OK. + +2016-10-04 Werner Koch <wk@gnupg.org> + + gnome3: Drop unnecessary use of gtk. + + commit 65d8e0ec19795d9ec60d7f37f1511f65135cfd84 + * configure.ac: pinentry-gnome3 only needs gcr-base, not gcr. + * gnome3/pinentry-gnome3.c (main): Instead of testing whether GTK can + be loaded, check for DBUS_SESSION_BUS_ADDRESS. + (create_prompt): Use fprintf (stderr, ...) instead of g_warning (...), + to align with the rest of pinentry.c. + + core: Add a way to print ERROR status lines. + + commit 777650b9b021342ba887543396c67f9148218caf + * pinentry/pinentry.h (struct pinentry): New fields SPECIFIC_ERR_LOC + and SPECIFIC_ERR_INFO. + * pinentry/pinentry.c (pinentry_reset): Free the new field. + (write_status_error): New. + (cmd_getpin): Use new fields. + (cmd_confirm): Ditto. + * gnome3/pinentry-gnome3.c (create_prompt): Set error for failed + GCR_PROMPT. + +2016-10-03 Ineiev <ineiev@gnu.org> + + tty: Provide default text for "notok". + + commit db3b2bf0c7ae4d3d0fbeecfe6a9a77ea4ed0f84e + * tty/pinentry-tty.c (confirm): Provide default text for "notok". + + tty: Fix underscore processing in accelerators. + + commit f0ae2986708614bce9070eec77309e838c403db7 + * tty/pinentry-tty.c (button): Fix underscore processing in + accelerators. + + tty: Refactor usage of tolower. + + commit aa969a09a1225f8fb683ba8d0c3ccc099dd8d1d3 + * tty/pinentry-tty.c (button): Apply tolower to the result. + * tty/pinentry-tty.c (confirm): Compare lowercased character instead of + converting them every time. + +2016-09-01 Werner Koch <wk@gnupg.org> + + curses: Return better error codes for bad ttynames. + + commit 4c5ae72d481ffd24ff93accee0b42e9b264285f2 + * pinentry/pinentry-curses.c (dialog_create): Return better error + codes. + +2016-08-18 Andre Heinecke <aheinecke@intevation.de> + + Qt: Add SetWindowPos based foreground hack for Win. + + commit c032ea2dcb4ac3ce970e62eae88fd24bec822f9c + * qt/pinentrydialog.cpp(raiseWindow): Add another fallback for + our foreground window hacks. + +2016-08-12 Andre Heinecke <aheinecke@intevation.de> + + Qt: Disable automatic wrap for desc and errors. + + commit 300755c1a10eec1f8bccd4182ed15c569473982c + * qt/pinentrydialog.cpp (PinEntryDialog): Disable WordWrap. + +2016-08-12 Kristian Fiskerstrand <kf@sumptuouscapital.com> + + Qt: Append -std=c++11 if building against Qt 5.7. + + commit fa97de673bd36758ae4ce151923435318f7c8877 + * m4/qt.m4: Append -std=c++11 to CFLAGS if building against Qt 5.7 + +2016-08-04 Ben Kibbey <bjk@luxsci.net> + + Fix ncurses build. + + commit 2227f67af53f38d3d7f97760f2553d2c9ed05969 + * pinentry/Makefile.am: Add NCURSES_CFLAGS. + +2016-08-02 Justus Winter <justus@g10code.com> + + gtk2: Also grab the pointer. + + commit 2f1f1f06c1885d2f5a30ea734359613609be0743 + * gtk+-2/pinentry-gtk-2.c (grab_pointer): New function. + (ungrab_keyboard): Rename to 'ungrab_inputs' and also release the + pointer grab. + (create_window): Also grab the pointer. + +2016-08-01 Justus Winter <justus@g10code.com> + + gtk2: Be more persistent trying to grab the keyboard. + + commit ad390f29df34ef73f2393a8ad97cbe2d60af31e7 + We seem to get the 'visibility-notify' event before X is willing to + let us grab the keyboard, insisting that the target window is not + viewable (sic). + + * gtk+-2/pinentry-gtk-2.c (grab_keyboard): Retry grabbing the + keyboard. + + gtk2: Print keyboard grabbing errors. + + commit fe5bb475da08cb46242825d5abe5b4d27e6086e3 + * gtk+-2/pinentry-gtk-2.c (grab_strerror): New function. + (grab_keyboard): Use the new function to print the error. + + gtk2: Avoid possible format string troubles. + + commit abf4f9924412c7afb6ce6c08eeda81b4c5365ab5 + * gtk+-2/pinentry-gtk-2.c (confirm_unhiding): Do not use message as + format string. + +2016-04-25 Andre Heinecke <aheinecke@intevation.de> + + Qt: Only use one line action for visibility. + + commit ed066c261594de69c3c2aeaac98aeaf74bbb5f9e + * qt/pinentrydialog.cpp (PinEntryDialog::toggleVisibility): Toggle + both lines in repeat mode. + (PinEntryDialog::PinEntryDialog): Remove repeat line action. + + Qt: Move qualitybar below repeat. + + commit d580304566b5b1c4e7c97c060d7a7b8c0b810ae3 + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Move + quality bar below repeat. + + Qt: Do not take icon from theme. + + commit 1532b60dcc5a45a74195cfbc20225006d027e7fa + * qt/main.cpp (main): Revert changes to take icon from theme. + +2016-04-15 Andre Heinecke <aheinecke@intevation.de> + + Qt: Change qualitybar position back to below. + + commit e925e8955b0a82f1a0e3c697704007c503a5f8b7 + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Change + position back to below the entry. Fix label alignment. + + gtk2: Add a button to show/hide the passphrase. + + commit f4b5049c68a79d5e4faba06447db5440936cefeb + * gtk+-2/pinentry-gtk-2.c (HIG_TINY): New. + (confirm_unhiding): New. + (show_hide_button_toggled): New. + (create_show_hide_button): New. + (create_window): Add a show/hide button. + +2016-04-14 Andre Heinecke <aheinecke@intevation.de> + + Revert "GTK: Add visibility toggle button" + + commit 3a10a0beddc059ce4b0d75bacf6d7f4e3148fcff + This reverts commit 71b51e02cf20174ba7144765e985f7e889eaa429. + + GTK: Add visibility toggle button. + + commit 71b51e02cf20174ba7144765e985f7e889eaa429 + * gtk+-2/pinentry-gtk-2.c (create_window): Create checkbox. + (show_passphrase_toggled): New. Do the toggling. + + Qt: Restrict list of icon themes to try. + + commit 287d40e879f767dbcb3d19b3629b872c08d39cf4 + * qt/main.cpp (main): Only search in select icon themes. + + Qt: Add actions to make passphrase visible. + + commit 49a7ac5209aa54f3b91209acc899463e8097f808 + * qt/main.cpp (qt_cmd_handler): Support visibility tooltips. + * qt/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): + Add a checkbox or line actions. + (PinEntryDialog::checkRepeat): Renabed to textChanged. + (PinEntryDialog::toggleVisibility): New. Toggle echo mode. + * qt/pinentrydialog.h: Update accordingly. + + Add support for visibility string options. + + commit 15685a9c1471eb01066e0bbdb7d6b929a8fcc314 + * doc/pinentry.texi: Note new values. + * pinentry/pinentry.c (pinentry): Add default_cf_visi, + default_tt_visi and default_tt_hide. + (option_handler): Parse new values. + * pinentry/pinentry.h (pinentry_t): Add new values. + + Qt: Implement repeat and improve grabbing. + + commit 04115b3289dcc9b02044f88c08580618c055a571 + The keyboard is now only grabbed if an edit has input focus. + + * qt/main.cpp (qt_cmd_handler): Parse repeat values. Set repeat_okay. + * qt/pinentrydialog.cpp (PinentryDialog::PinentryDialog): Update + layout. Add repeat label and edit. Connect focusChanged. + (PinEntryDialog::hideEvent): Remove grabbing hack. + (PinEntryDialog::focusChanged): New. Properly handle grabbing. + (PinEntryDialog::checkRepeat): New. Enable Ok if repeat matches. + (PinEntryDialog::repeatedPin): New. Getter for repeated pin. + (PinEntryDialog::setRepeatErrorText): Setter for error. + * qt/pinentrydialog.h: Update accordingly. + + Qt: Respect icon themes and only fallback to own. + + commit c6b43bd147186deee84dcccbc14f5763db67a0f3 + * m4/qt.m4: Raise version requirement. + * qt/main.cpp (main): Use QIcon::fromTheme to get the icon. + + Qt: Unify coding style and encoding. + + commit 8d801fe2c74041f2f8c563785ed7cba73f47500e + * qt/main.cpp, qt/pinentryconfirm.cpp, qt/pinentryconfirm.h, + qt/pinentrydialog.cpp, qt/pinentrydialog.h: Use KDE coding style. + Encode as UTF-8. + +2016-03-04 Andre Heinecke <aheinecke@intevation.de> + + Qt: Fix Windows foreground window hacks for Qt5. + + commit 30aa1046afe9a745c918fc1311c1f598c91bf913 + * qt/pinentrydialog.cpp: Use Q_OS_WIN instead of Q_WS_WIN + (SetForegroundWindowEx): Handle new Wid type with casts. + +2016-02-15 Stef Walter <stefw@redhat.com> + + pinentry: Use stderr to print failures in password-cache.c. + + commit 2f5bfa071ab5eaf86f64404bff448ca29cd0bdb6 + Otherwise this interferes with the assuan protocol expected + on stdout. + +2016-01-05 Andre Heinecke <aheinecke@intevation.de> + + Qt: Fix use after free in quality calculation. + + commit 954da56c2325c3a5ca628cfc2e3086c1e146a390 + * qt/pinentrydialog.cpp (PinEntryDialog::updateQuality): Keep UTF8 + byte array alive after conversion. + +2015-12-07 Werner Koch <wk@gnupg.org> + + Release 0.9.7. + + commit 97b6ea59de0ca33323aa204eb47d45fd412a8ff2 + + +2015-12-01 Werner Koch <wk@gnupg.org> + + Remove unused code. + + commit bd3781f92bb0989bfbc33a89fe1f6db3c89cdf31 + * secmem/util.c (lower_privs, raise_privs): Remove commented + functions. + +2015-11-27 Neal H. Walfield <neal@gnu.org> + + tty: Fix formatting. + + commit 999162e7c38d4b8c76270e7b6790417fd6439ef3 + * tty/pinentry-tty.c (password): Remove trailing space. + +2015-11-18 Neal H. Walfield <neal@gnu.org> + + tty: Flush output. Show an error if an invalid option is selected. + + commit f238a58772b7d51362ca7d819e1648a64ff50d57 + * tty/pinentry-tty.c (confirm): Flush the output after printing the + prompt. Echo what the user typed. If the user's selection is + invalid, indicate as much. + +2015-10-22 Dirk Mueller <dirk@dmllr.de> + + Qt: Do not use temporary reference to utf8 pin. + + commit f143d216eff4eac3f05a85640b9f91431aec5588 + * qt/main.cpp (qt_cmd_handler): Keep utf8 pin byte array. + +2015-10-02 Andre Heinecke <aheinecke@intevation.de> + + Qt: Fix assignment of have_qt5_libs variable. + + commit 48ab8cdccff4eefec4d8fa2e23b933c2277bc30c + * m4/qt.m4 (FIND_QT): Remove spaces in variable assignment. + + Qt: Fix quoting of have_qt5_libs init in FIND_QT. + + commit e9d063e2371540ad9c1d7a727c44f9dcc1e9e400 + * m4/qt.m4 (FIND_QT): Quote initialization of have_qt5_libs var. + +2015-09-25 Andre Heinecke <aheinecke@intevation.de> + + Add option to disable looking for qt5. + + commit 08ec9556c8a384ea7bb5d42d3f6aab6c2f6a8786 + * m4/qt.m4 (FIND_QT): Add --disable-pinentry-qt5 option to + disable qt5 support even if it is available. + +2015-09-16 Werner Koch <wk@gnupg.org> + + Add option "invisible-char". + + commit 9cc13bbd6954928f8a7dae022728c13415816a67 + * pinentry/pinentry.h (struct pinentry): Add field invisible_char. + * pinentry/pinentry.c (pinentry_reset): Restore that. + (option_handler): Add option "invisible-char". + * gtk+-2/pinentry-gtk-2.c (create_window): Set the invisible char if + given. + +2015-09-10 Werner Koch <wk@gnupg.org> + + Release 0.9.6. + + commit 192ee8ad5bd9c4950d749cf9bb1efd9369836257 + + +2015-08-24 Neal H. Walfield <neal@gnu.org> + + tty: When reading the password, print any supplied error message. + + commit bfd4cf3bee8c9e4a3af825c95694b8af098b1cb2 + * tty/pinentry-tty.c (password): Print any supplied error message. + + tty: Refactor the code for printing error messages. + + commit 7e91e5f71c86c3899c7f256d7ae9d872e692dd28 + * tty/pinentry-tty.c (dump_error_text): New function to display error + messages. + (confirm): Use it. + (password): Likewise. + +2015-08-18 Andre Heinecke <aheinecke@intevation.de> + + Clarify comment about fds in pinentry_loop2. + + commit 13e09800a997845906bfb10ac3379bad00e6e63d + * pinentry/pinentry.h (pinetry_loop2): Clarify comment. + + Qt: Make it possible to build qt5 variant static. + + commit 11886c530de3b0a7c4dcd932c5c23762f3ccc4b0 + * qt/main.cpp: Import static platform plugins when necessary. + + Respect SYSROOT variable when looking for assuan. + + commit 8d73d2a55a0043202c08beaed9972343b1021327 + * m4/libassuan.m4: Respect SYSROOT Variable. + + Fix pinentry for Windows. + + commit 78afb80e5742f8542f21537307c6f39c05c1a7f3 + * pinentry/pinentry.c (pinentry_loop2): Use assuan_fdopen for pipe fds. + * pinentry/pinentry.h (pinentry_loop2): Mention this in the comment. + +2015-08-11 Neal H. Walfield <neal@gnu.org> + + tty: Correctly implement the repeat passphrase functionality. + + commit 1532bf3fa57f624c80ea1e9f958d88fedc377e68 + * tty/pinentry-tty.c (password): If the user repeated the passphrase + and they matched, then set PINENTRY->REPEAT_OKAY. + + tty: Fix buffer resizing bug. + + commit ffd37b673b3cbe05fac037ac02c1424a76772b3f + * tty/pinentry-tty.c (read_password): Fix buffer resizing bug. + +2015-07-28 Andre Heinecke <aheinecke@intevation.de> + + Qt4: Rename to pinentry-qt and add Qt5 Support. + + commit abb59f50abf698ff1e56490fb39bcc98c26ab44b + * qt4: Moved to qt. + * Makefile.am: Change qt4 suffix to qt. + * m4/qt.m4: Remove old qt lookup functions. + (FIND_QT): New. Use pkg-config to find either Qt5 or Qt4 + * configure.ac: Change qt4 suffix to qt. Use new FIND_QT function. + * qt/Makefile.am: Change qt4 suffix to qt. Use new FLAGS / LIBS. + * qt/pinentrydialog.cpp, qt/qrc_pinentry.cpp: Fix whitespace. + * .gitignore: Change qt4 paths to qt. + * README: Update accordingly. + * autogen.rc: Change qt4 to qt. + * qt/main.cpp (qt_cmd_handler, main): Change qt4 to qt. + +2015-07-28 Neal H. Walfield <neal@gnu.org> + + doc: Describe the frontends and their security implications. + + commit 43f975bf0348663dc8b01737dee5b15244ef7ee8 + * doc/pinentry.texi: Describe the frontends and their security + implications. + +2015-07-28 Andre Heinecke <aheinecke@intevation.de> + + qt4: Replace the custom, secure entry widget with the standard widget. + + commit a4694dcda0fe27852be20db3017f9313adf361a3 + * configure.ac: Remove enable-pinentry-qt4-clipboard option. + * qt4/qsecurelineedit.cpp, qt4/qsecurelineedit.h, + qt4/qsecurelineedit_p.h, qt4/secstring.cpp, + qt4/secstring.h: Removed. + * qt4/Makefile.am: Update accordingly. + * qt4/main.cpp (qt_cmd_handler): Use QString instead of secqstring. + * qt4/pinentrydialog.cpp (PinentryDialog::PinentryDialog), + (PinEntryDialog::error, PinEntryDialog::pin), + (PinEntryDialog::updateQuality): Use QLineEdit and QString + instead of secmem variants. + * qt4/pinentrydialog.cpp (PinentryDialog::PinentryDialog): + Set echo mode to password. + * qt4/pinentrydialog.h: Update accordingly. + +2015-07-26 Neal H. Walfield <neal@gnu.org> + + gtk2: Use gtk_widget_get_window instead of accessing the struct. + + commit d70a106d71dbcaf90e2246ed8e72c14d9c2cf266 + * gtk+-2/pinentry-gtk-2.c (make_transient): Don't directly access the + window field of WIN. Use gtk_widget_get_window instead. + (grab_keyboard): Likewise. + (ungrab_keyboard): Likewise. + + gtk2: Use newer tooltips functions, if available. + + commit c9c3576b5e2e3139fd9f6af3426b5f5e727deadd + * gtk+-2/pinentry-gtk-2.c (tooltips): Don't declare for Gtk+ >=2.12.0. + (create_window): Gtk+ >=2.12.0, use gtk_widget_set_tooltip_text + instead of gtk_tooltips_set_tip. + + Don't build the emacs pinentry program by default. + + commit 676b1ac38d0c1db754492b6817bbc6195dcef300 + + + gtk2: Replace the custom, secure entry widget with the standard widget. + + commit f9db93786cbdbc0f5f6edf0ae996ec405931decf + * gtk+-2/Makefile.am (pinentry_gtk_2_SOURCES): Remove gtksecentry.c, + gtksecentry.h and gseal-gtk-compat.h. + * gtk+-2/gseal-gtk-compat.h: Remove file. + * gtk+-2/gtksecentry.c: Remove file. + * gtk+-2/gtksecentry.h: Remove file. + * gtk+-2/pinentry-gtk-2.c: Don't include "gtksecentry.h". + (button_clicked): Use gtk_entry_get_text instead of + gtk_secure_entry_get_text. + (changed_text_handler): Use gtk_entry_get_text instead of + gtk_secure_entry_get_text and use gtk_entry_set_text instead of + gtk_secure_entry_set_text. + (create_window): Use gtk_entry_new instead of gtk_secure_entry_new. + Disable text visibility on ENTRY and REPEAT_ENTRY. + (main): Don't override the memory allocation functions. + + gtk2: Simplify focus / default entry management. + + commit ae74440c8a3469e1e69882cd26a742d41f28e37b + * gtk+-2/pinentry-gtk-2.c (create_window): Don't have ENTRY or + REPEAT_ENTRY explicitly grab the focus. The default is fine. Don't + add the GDK_ENTER_NOTIFY_MASK and GDK_LEAVE_NOTIFY_MASK events to + QUALITYBAR. Only set GTK_CAN_DEFAULT on the ok button. In pin entry + mode, make the ok button the default. + + gtk2: Have enter in the text entry, send the focus to the repeat entry. + + commit af3de269bc0f56058eefcd46bce1b03d9466d1b4 + * gtk+-2/pinentry-gtk-2.c (enter_callback): Rename anentry to + next_widget. If NEXT_WIDGET is not NULL, send the focus to it. + Otherwise, call button_clicked. + (create_window): Initialize repeat_entry to NULL. When connecting the + enter_callback entry to REPEAT_ENTRY, set the user data paramter to + NULL. Connect the entry_callback entry to ENTRY after initializing + REPEAT_ENTRY (if applicable) and set the user data parameter to + REPEAT_ENTRY. + + gtk2: Simplify: combine confirm_button_clicked and button_clicked. + + commit 5dfb7f5662917c9d2f8a4772045074544bd4d472 + * gtk+-2/pinentry-gtk-2.c (confirm_mode): New global static. + (confirm_button_clicked): Fold this function... + (button_clicked): ... into this one. Update all callers. + (create_window): Remove argument confirm_mode. + (gtk_cmd_handler): Set confirm_mode. + +2015-07-01 Werner Koch <wk@gnupg.org> + + Release 0.9.5. + + commit 404943e465beeb34d71039f64f2b7e214d2d9368 + + + w32: Adjust for use of standard libassuan. + + commit 380757782373c2069c182550d9093f995bea2f13 + * autogen.rc: Add gpg-error and libassuan prefix options. + * w32/Makefile.am (AM_CPPFLAGS): Use COMMON_FLAGS. + (pinentry_w32_LDADD): Use COMMON_LIBS. + + Distribute files in m4/ + + commit 11cd8aff6e1720d4a37c92fb6d4cf2613eb17a10 + + +2015-06-24 Gergely Imreh <imrehg@gmail.com> + + curses: remove hard-wired ncursesw include path. + + commit f0db3192463cccf4541820de36d985629c4df6ee + * pinentry/pinentry-curses.c: pkg-config finds the correct include + paths so should not hard-wire the path for the ncursesw header file. + +2015-06-23 Neal H. Walfield <neal@gnu.org> + + emacs: Don't link against ../assuan/libassuan.a. + + commit 266f1c9e3542627b1cbd191141af4e6f76f706fe + * emacs/Makefile.am (LDADD): Don't link against ../assuan/libassuan.a. + We now use the system libassuan. + + curses: Recognize ASCII DEL as backspace. + + commit 6ce1d0c0d4106c359eee65d7cf27d522d3f8b72a + * pinentry/pinentry-curses.c (dialog_input): Recognize ASCII DEL as + backspace. + +2015-06-17 Daiki Ueno <ueno@gnu.org> + + Add inside-Emacs mode to GUI pinentry programs. + + commit 3ef5d07873ab917e66c299521e85cff12fbbf40c + * configure.ac: Add --enable-pinentry-emacs and + --enable-inside-emacs option. + (BUILD_LIBPINENTRY_EMACS): New conditional. + (BUILD_PINENTRY_EMACS): New conditional. + (INSIDE_EMACS): New conditional. + * Makefile.am (pinentry_emacs): New. + (SUBDIRS): Add "emacs" subdir if PINENTRY_EMACS is set. + + * pinentry/pinentry-emacs.h: New file. + * pinentry/pinentry-emacs.c: New file. + * pinentry/Makefile.am: New file. + * pinentry/pinentry.c (option_handler): Handle the allow-emacs-prompt + Assuan option. + + * emacs/pinentry-emacs.c: New file. + * emacs/Makefile.am: New file. + +2015-06-16 Neal H. Walfield <neal@gnu.org> + + If we fail to initialize gtk, fallback to the curses frontend. + + commit 34f3cdbf5aa0b7b8647a3bcedef7e1a51746b5ed + * gnome3/pinentry-gnome3.c (main): Use gtk_init_check instead of + gtk_init. If it fails, fallback to the curses frontend. + + Fix comment for pinentry_cmd_handler_t. + + commit 34539f97a6ddc552295b5cb64676eee9dab5bd30 + * pinentry/pinentry.h (pinentry_cmd_handler_t): Fix comment. + + Describe default-prompt in the implementation section of the manual. + + commit 56fe7ef451ee473407b7dc604e3d73a6a5771c5d + * doc/pinentry.texi (Implementation Details): Describe default-prompt. + + Remove internal mini-libassuan implementation and link to libassuan. + + commit 302903f76b8d62b1e07219a203f7219cb3aff7d8 + * assuan/ChangeLog-old: Remove file. + * assuan/Makefile.am: Remove file. + * assuan/README.1st: Remove file. + * assuan/assuan-buffer.c: Remove file. + * assuan/assuan-defs.h: Remove file. + * assuan/assuan-handler.c: Remove file. + * assuan/assuan-listen.c: Remove file. + * assuan/assuan-pipe-server.c: Remove file. + * assuan/assuan-util.c: Remove file. + * assuan/assuan.h: Remove file. + * assuan/mkerrors: Remove file. + + * configure.ac: Check for libgpg-error and libassuan. + (COMMON_CFLAGS): Add $GPG_ERROR_CFLAGS and $LIBASSUAN_CFLAGS. + (COMMAND_LIBS): Add $GPG_ERROR_LIBS and $LIBASSUAN_LIBS. + (GPG_ERR_ENABLE_GETTEXT_MACROS): Define this macro. + (GPG_ERR_ENABLE_ERRNO_MACROS): Likewise. + (GNUPG_LIBASSUAN_VERSION): Likewise. + (AC_CONFIG_FILES): Don't generate assuan/Makefile. + (config.h): Define GPG_ERR_SOURCE_DEFAULT. + * Makefile.am (SUBDIRS): Remove assuan. + * curses/Makefile.am (LDADD): Remove ../assuan/libassuan.a. + * gnome3/Makefile.am (AM_CPPFLAGS): Remove -I$(top_srcdir)/assuan. + (LDADD): Remove ../assuan/libassuan.a. + * gtk+-2/Makefile.am (LDADD): Remove ../assuan/libassuan.a. + * pinentry/Makefile.am: Remove -I$(top_srcdir)/assuan. + * qt4/Makefile.am (AM_CPPFLAGS): Remove -I$(top_srcdir)/assuan. + (pinentry_qt4_LDADD): Remove $(top_builddir)/assuan/libassuan.a. + * tty/Makefile.am (LDADD): Remove ../assuan/libassuan.a. + + * gnome3/pinentry-gnome3.c: Include <assuan.h>, not "assuan.h". + Replace ASSUAN_General_Error, etc. with gpg_error or + gpg_error_from_syserror. + * pinentry/pinentry-curses.c: Likewise. + * pinentry/pinentry.c: Likewise. + (pinentry_assuan_reset_handler): Change return type to gpg_error_t. + Change type of argument CTX from ASSUAN_CONTEXT to assuan_context_t. + Return 0. + (pinentry_inq_quality): Change variable CTX's type from ASSUAN_CONTEXT + to assuan_context_t. + (assuan_malloc_hooks): New variable. + (pinentry_init): Call gpgrt_check_version. Change use of + assuan_set_malloc_hooks to match libassuan's semantics. + (option_handler): Return a gpg_error_t, not an int. Replace use of + ASSUAN_Out_Of_Core, etc. with gpg_error or gpg_error_from_syserror. + (cmd_setdesc): Return a gpg_error_t, not an int. Change argument + CTX's type from ASSUAN_CONTEXT to assuan_context_t. Replace use of + ASSUAN_Out_Of_Core, etc. with gpg_error or gpg_error_from_syserror. + GPG_ERR_ENOMEM), etc. + (cmd_setprompt): Likewise. + (cmd_setkeyinfo): Likewise. + (cmd_setrepeat): Likewise. + (cmd_setrepeaterror): Likewise. + (cmd_seterror): Likewise. + (cmd_setok): Likewise. + (cmd_setnotok): Likewise. + (cmd_setcancel): Likewise. + (cmd_settimeout): Likewise. + (cmd_settitle): Likewise. + (cmd_setqualitybar): Likewise. + (cmd_setqualitybar_tt): Likewise. + (cmd_getpin): Likewise. + (cmd_confirm): Likewise. + (cmd_message): Likewise. + (cmd_getinfo): Likewise. + (cmd_clear_passphrase): Likewise. + (register_commands): Likewise. Change use of assuan_register_command + to match libassuan's semantics. + (pinentry_loop2): Change variable RC's type from int to gpg_error_t. + Change variable CTX's type from ASSUAN_CONTEXT to assuan_context_t. + Use assuan_new to initialize CTX. Change use of + assuan_init_pipe_server to match libassuan's semantics. Replace use + of assuan_strerror with gpg_strerror. Call assuan_release instead of + assuan_deinit_server. + +2015-06-16 Andre Heinecke <aheinecke@intevation.de> + + Qt4: Fix GCC compile warnings. + + commit 5026d0b9ac08d8366c82beec6c4425fb7f7b11e5 + * qt4/qsecurelineedit.cpp (QSecureLineEdit::sizeHint), + (QSecureLineEdit::minimumSizeHint): Remove unused Q_D macros. + (QSecureLineEdit::setCursorPosition, QSecureLineEditPrivate::setText), + (QSecureLineEditPrivate::hasAcceptableInput): Explicitly cast length to int. + (QSecureLineEditPrivate::maskString): Use unsigned type for strIndex. + (QSecureLineEditPrivate::maskString): Remove uneccesary casts. + * qt4/secstring.cpp (toUtf8): Remove unused variable. + +2015-06-07 Neal H. Walfield <neal@gnu.org> + + gnome3: Actually respect the user's choice of using a password manager. + + commit 444598586d0abf70d5a27d2aafcd6c14989621db + * gnome3/pinentry-gnome3.c (create_prompt) [HAVE_LIBSECRET]: Only show + the libsecret prompt in this case. + (gnome3_cmd_handler) [HAVE_LIBSECRET]: Set PE->MAY_CACHE_PASSWORD + according to the user's choice. + +2015-06-05 Werner Koch <wk@gnupg.org> + + Release 0.9.4. + + commit 29d7c5ffda648e61431b42964e773c13f77bf501 + + +2015-06-05 Neal H. Walfield <neal@gnu.org> + + secmem: When clearing memory, don't clear beyond the end of the buffer. + + commit 554250b56ae00d590d05b1c5af7892314f0e72d8 + * secmem/secmem.c (secmem_malloc): Only clear the user memory; don't + clear beyond the end of the buffer. + +2015-06-04 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + Make pinentry_setbufferlen always return the pin buffer. + + commit c29c5657fd77e212799715c23806a0cb6e1cfd47 + * pinentry/pinentry.c (pinentry_setbufferlen): When the pin buffer is + already large enough, return the buffer instead of NULL. + +2015-06-02 Werner Koch <wk@gnupg.org> + + Fixed compiler warnings - mostly unused parameter. + + commit ee23924390a45700b35ab37a75278cfeb965b8c8 + + + Add more GCC warnings flags. + + commit f74e40465f979749af6df5b9ea325324a428a669 + * configure.ac: Add GCC specific -W flags. + +2015-06-02 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + use g_debug(format, ...) safely. + + commit 87e6811f2d1e72c501d14670ad911245a41c0828 + * pinentry/password-cache.c (password_cache_clear): use g_debug safely + in case error->message is malformed. + +2015-06-01 Werner Koch <wk@gnupg.org> + + Release 0.9.3. + + commit 9f98bbfa7f05f1c7e02443bc8d0bd74a61eb39bc + + +2015-05-31 Stanislav Ochotnicky <sochotnicky@redhat.com> + + Fix qt4 pinentry window created in the background. + + commit eab03a469d82018e53380f26390594f47bb4c5c8 + This is probably just a workaround. Proper fix is being investigated. + See: + https://bugzilla.redhat.com/show_bug.cgi?id=589532 + http://stackoverflow.com/questions/2788518/calling-activatewindow-on-qdia + +2015-05-20 Werner Koch <wk@gnupg.org> + + Improve configure log messages for ncurses/ncursesw. + + commit 55ea554b2020b1e7b0996bd9f7bb38c8af2b03f3 + * m4/pkg.m4: Print the moule name not the variable name. + + Allow building without ncursesw and other minor fixes. + + commit 0c1af8e9af59d01936924c91c5d2d45133923d6d + * pinentry/password-cache.c (password_cache_clear): s/debug/g_debug/. + * pinentry/pinentry-curses.c (dialog_input): Actually bail out. + (dialog_run) [!HAVE_NCURSESW]: Define alt. + +2015-05-19 Neal H. Walfield <neal@gnu.org> + + gtk+-2: Make sure the save-passphrase-externally checkbox is not checked. + + commit 54dd881a9a733074bafee4062f8591f4fe69cad5 + * gtk+-2/pinentry-gtk-2.c (create_window): Make sure the check button + to save the passphrase externally is not checked by default. + + Provide an Assuan command to clear a cached password. + + commit 72b653d8088ce508ab688c68d88c363832d50eb7 + * pinentry/password-cache.c (password_cache_clear): New function. + * pinentry/password-cache.h (password_cache_clear): New declaration. + * pinentry/pinentry.c (cmd_getinfo): New function. + (register_commands): Have the Assuan command "CLEARPASSPHRASE" call + it. + + If there is an error message, show it and don't read from the cache. + + commit 516e01049e9829020b40ddbcf387d4c5c05b1c3f + * pinentry/pinentry.c (cmd_getpin): If PINENTRY.ERROR is not NULL, + don't read the password from the cache. + +2015-05-18 Neal H. Walfield <neal@gnu.org> + + curses: When creating the button text, respect underscores. + + commit 6fdcad6a1f91bc769b03d2cb32f0b8001ed3ae19 + * pinentry/pinentry-curses.c (MAKE_BUTTON): When creating the button + text, respect underscores. + + curses: Make control-l repaint the screen. + + commit cade1ae102d5f4972f68b5bef0003f1ad1b3bde3 + * pinentry/pinentry-curses.c (dialog_input): Make control-l repaint + the screen. + + curses: Make control-h an alias for backspace. + + commit 85646e9c08875214f6888df507c6f9ceb463a000 + * pinentry/pinentry-curses.c (dialog_input): Add control-h an alias + for backspace. + + When checking for ncurses, first try using PKG_CHECK_MODULES. + + commit 25e77c0fd10e9a1d26c31c0a8ec1917b51da5cd2 + * m4/curses.m4: When checking for ncurses, first try using + PKG_CHECK_MODULES. + + Purge dead code enabled by ENABLE_ENHANCED. + + commit e89c36a6546515c2a19645356d8f80dd459f2075 + + +2015-05-16 Neal H. Walfield <neal@gnu.org> + + gtk+-2: If gtk fails to initialize, fallback to the curses backend. + + commit edd9a884604ff76e63d238504ede9b118655c55b + * gtk+-2/pinentry-gtk-2.c (main): Use gtk_init_check instead of + gtk_init. If gtk_init_check fails, fallback to the curses backend. + + curses: Handle control-u, control-w and alt-backspace. + + commit d3c52a144b5b23d0d841a99a310090dcafe2074b + * pinentry/pinentry-curses.c (dialog_input): Take additional argument, + alt. Update callers. If passed control-u, erase the whole line. If + passed alt-backspace or control-w, erase any white space the the + previous word. + (dialog_run): Detect when alt is pressed. + + secmem: Clear the buffer before returning it from secmem_malloc. + + commit 1d3583a2562e83496ac515276e9bd63a7f1abbc7 + * secmem/secmem.c (secmem_malloc): In case wipememory2 gets optimized + away in secmem_free, clear the buffer before returning it. + + curses: NUL terminate the pin entry buffer. + + commit 97a47ee99e14e0c8c6a2c3c5eec0434e6eac77e0 + * pinentry/pinentry-curses.c (dialog_run): NUL terminate the pin entry + buffer. + + curses: Make sure the pin entry buffer is larger enough. + + commit c33073eb40ee4bb6e079605dbf2f343de50390d7 + * pinentry/pinentry-curses.c (dialog_input): Make sure the pin entry + buffer is large enough. + + curses: Avoid aliasing the pin buffer. + + commit c7736745f5683b820ebbd11e30ddb425748c16ab + * pinentry/pinentry-curses.c (struct dialog): Remove field pin. Add + field pinentry. + (dialog_create): Don't set DIALOG->PIN to PINENTRY->PIN. Set + DIALOG->PINENTRY to PINENTRY and access PIN via + DIALOG->PINENTRY->PIN. Update other users. + + gtk+-2: When the dialog is destroyed, remove any pending timers. + + commit 88772ddaac96303a63c97a45c26144d93a942798 + * gtk+-2/pinentry-gtk-2.c (timeout_source): New variable. + (timeout_cb): Set it to 0. + (create_window): When setting up the timeout, save the source + identifier in TIMEOUT_SOURCE. + (gtk_cmd_handler): If TIMEOUT_SOURCE is not 0, remove the timeout. + + curses: If an error occurs while reading input, cancel the operation. + + commit f3cb78985c3c7f96401a06a73412fb704c5efaab + * pinentry/pinentry-curses.c (dialog_run) [! HAVE_DOSISH_SYSTEM]: If + an error occurs while reading input, cancel the operation. + + tty: ok takes precedence over default-ok. Likewise for cancel. + + commit ae3352566994623d54723283e887bc5f74766e1c + * tty/pinentry-tty.c (confirm): When creating the ok button, + pinentry->ok takes precedence over pinentry->default-ok. Likewise for + pinentry->cancel and pinentry->default_cancel. + + Don't use a static initializer to initialize PINENTRY. + + commit de3241ae0bc9072cfef204ea638171a3a95380a3 + * pinentry/pinentry.c (pinentry): Don't use a static initializer. + (pinentry_reset): Initialize PINENTRY here. + (pinentry_parse_opts): Call pinentry_reset here. + (pinentry_assuan_reset_handler): New function. + (pinentry_loop2): Register it as the assuan reset handler. + + Don't emit the LC_CTYPE-not-set warning more than once. + + commit 9fdb05554b5fc9c6f6621d606ccf21c038c7b6cb + * pinentry/pinentry.c (lc_ctype_unknown_warning): New variable. + (pinentry_utf8_to_local): Only emit the LC_CTYPE warning if + lc_ctype_unknown_warning is not set. After emitted such a warning, + set lc_ctype_unknown_warning. + (pinentry_local_to_utf8): Likewise. + + curses: Use default-ok and default-cancel if set. + + commit 222866894993041ceaca3ca4ef33373ab78bfdff + * pinentry/pinentry-curses.c (default_notok): New macro. + (MAKE_BUTTON): Also check if default variant is set. + + curses: Don't show the notok button in pin entry mode. + + commit 3d97b18ba928677550a8f7eaa938551aad42dacf + * pinentry/pinentry-curses.c (dialog_create): Don't show the notok + button in pin entry mode. + +2015-05-16 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + Avoid implicit declaration of function addnwstr. + + commit 21e83f422667e431c1283b9ae3356fded3523e50 + * pinentry/pinentry-curses.c [HAVE_NCURSESW]: Include <ncursesw/curses.h>. + [! HAVE_NCURSESW]: Only include <curses.h> in this case. + +2015-05-13 Neal H. Walfield <neal@gnu.org> + + tty: Handle the case where the user needs to repeat the passphrase. + + commit 4549998627ee04e74f8d1c94aef55e3ed17f14d9 + * tty/pinentry-tty.c: Include "memory.h". + (read_password): Break into two functions: read_password and password. + (read_password): Just read the password from the terminal and return + it in secure memory (or NULL if the user canceled the entry or there + was an error). + (password): Improve output. Handle the repeat passphrase case (i.e., + when pinentry->repeat_passphrase is set). + * tty/Makefile.am (AM_CPPFLAGS): Add "-I$(top_srcdir)/secmem". + + Add a new helper function, pinentry_setbuffer_use. + + commit c68a6854aadaf8c271648f369f14b4943e684ecf + * pinentry/pinentry.c (pinentry_setbuffer_use): New function. + * pinentry/pinentry.h (pinentry_setbuffer_use): New declaration. + + tty: Always call do_touch_file if we (potentially) touched the screen. + + commit 960317ec86c06bc737e1ff3c1b571dc8f4194763 + * tty/pinentry-tty.c (tty_cmd_handler): Always call do_touch_file. + + tty: Improve confirmation mode functionality. + + commit dd0307be51587a9a7866981ce00eed474bee6e14 + * tty/pinentry-tty.c: Include <ctype.h>. + (UNDERLINE_START): Define. + (ALERT_START): Define. + (NORMAL_RESTORE): Define. + (button): New function. + (confirm): Rewrite to include all confirmation mode functionality. + (tty_cmd_handler): Don't include any confirmation mode functionality. + Just call confirm. + + Fix linking order to work when linked with --as-needed. + + commit 496235af8dfd373b54e5610f86bf1cada175ac23 + * curses/Makefile.am (LDADD): Add $(COMMON_LIBS) after all of the + local objects and object archives. + * gnome3/Makefile.am (LDADD): Likewise. + * gtk+-2/Makefile.am (LDADD): Likewise. + * qt4/Makefile.am (pinentry_qt4_LDADD): Likewise. + * tty/Makefile.am (LDADD): Likewise. + + Don't interpret the handler's return value as the passphrase's length. + + commit 3062742b945f95d72001896f8ba5468b9e63aa9b + * pinentry/pinentry.c (cmd_getpin): Don't interpret the return value + as the passphrase length. Use strlen instead. + + Make the management of pinentry.pin more explicit. + + commit bdd81974633f8e31d582b62999ef9b004bc3b95e + * pinentry/pinentry.c: Include <assert.h>. + (pinentry): Set pin_len to 0. + (pinentry_setbufferlen): If len is less than 2048, set it to 2048. + Add an assertion. + (pinentry_setbuffer_clear): New function that releases the pin buffer. + (pinentry_setbuffer_init): New function that initializes the pin + buffer. + (cmd_getpin): Use pinentry_setbuffer_init and pinentry_setbuffer_clear + instead of manual memory management. + (cmd_confirm): Use pinentry_setbuffer_clear instead of manual memory + management. + + Better document struct pinentry. + + commit ae7dfae00df81a683adf0292a52b63632491319e + * pinentry/pinentry.h (struct pinentry): Better document the various + fields. + +2015-05-12 Neal H. Walfield <neal@gnu.org> + + Fix some documentation details. + + commit 2582cb9eb23ca287520caa04a12f83f10c268f71 + * doc/pinentry.texi: Fix some details. + + Add a GNOME3 pinentry based on gcr. + + commit be87785005d256b7f3dacc607ba5ea0a14de8593 + * configure.ac (--enable-pinentry-gnome3): Option to enable the GNOME3 + pinentry. + (pinentry_gnome_3): Set to yes if enabled and gcr-3 and gcr-base-3 gcr + is available. + (GNOME3CFLAGS): Define and AC_SUBST. + (GNOME3LIBS): Define and AC_SUBST. + (GCR_API_SUBJECT_TO_CHANGE): Define. + (BUILD_PINENTRY_GNOME_3): Define. + * Makefile.am (pinentry_gnome_3): Define. + (SUBDIRS): Add ${pinentry_gnome_3}. + * gnome3/Makefile.am: New file. + * gnome3/pinentry-gnome3.c: New file. + + Add new chapter to documentation describing implementation details. + + commit 14b95bd6d92ba699c3d263ac1f9140973d8c9156 + * doc/pinentry.texi: Add new chapter describing some implementation + details. + + Simplify code. + + commit 831782b3b625ca81624fae0ee184da0d2fc46d96 + * pinentry/pinentry.c (cmd_confirm): Don't use nested ternary + expressions. + + Implement cmd_confirm in terms of cmd_message. + + commit 29236f84aca64be72c97a9b5513457a4e45afbc6 + * pinentry/pinentry.c (cmd_confirm): Implement cmd_confirm in terms of + cmd_message. + + Fix memory allocation in pinentry_setbufferlen. + + commit aa04dac66f2ee949e8789a3c91090b01646f2e57 + * pinentry/pinentry.c (pinentry_setbufferlen): Set PIN->PIN to a + buffer that is LEN bytes large, not 2 * PIN->PIN_LENGTH. + +2015-05-11 Werner Koch <wk@gnupg.org> + + Release 0.9.2. + + commit 8e52ddc874838ad512ed76cdc1c34057da328fba + + + Return better error codes. + + commit 726c00514be4a0c2831dd775e306f7d5243bab8b + * assuan/assuan.h (ASSUAN_Too_Short): New + (ASSUAN_ENOENT, ASSUAN_ENOTTY): New. + * pinentry/pinentry-curses.c: Include assuan.h. + (dialog_create, dialog_run): Set specific error codes. + * pinentry/pinentry.h (struct pinentry): Add field specific_err. + * pinentry/pinentry.c (cmd_getpin): Return specific_err. + (cmd_confirm, cmd_message): Ditto. + + curses: Reset tty state on failed dialog creation. + + commit d7f2081fdd605b0d0789bcb6984decfea3777f23 + * pinentry/pinentry-curses.c (dialog_run): Cleanup on dialog_create + error. + + gtk: Use a description string from gpg-agent for libsecret. + + commit 319e1a32e3ab67cb0624c0586d7519c16c76d43b + * pinentry/pinentry.h (struct pinentry): Add field default_pwmngr. + * pinentry/pinentry.c (option_handler): Set it. + * gtk+-2/pinentry-gtk-2.c (create_window) [HAVE_LIBSECRET]: Use new + string. + + gtk: Silence compiler warning. + + commit 3d02645d757e573e4628a1caf2e36bb92d523e77 + + +2015-05-07 Neal H. Walfield <neal@gnu.org> + + Don't use asprintf. + + commit 1a8af55b76d8235ce891f44808064e7f846e193c + * pinentry/password-cache.c (keygrip_to_label): Don't use asprintf. + + Improve documentation. + + commit 09203147bef487c9a85f55f8cc96d265197b0bf5 + * doc/pinentry.texi: Improve description of SETKEYINFO's format. + + Minor documentation cleanups. + + commit 3a8daef81c49dc3c04b6703a0384381cb43eb91b + + + Add support for saving the passphrase with libsecret. + + commit c6eaa7bf8300f524de41956a339ca0ed3af4656e + * configure.ac (COMMON_CFLAGS): New variable. AC_SUBST it. + (COMMON_LIBS): Likewise. AC_SUBST it. + (LIBSECRET_CFLAGS): Likewise. + (LIBSECRET_LIBS): Likewise. + (--enable-libsecret): Add option to enable support for libsecret. If + enabled, check for its presense. + * pinentry/password-cache.h: New field. + * pinentry/password-cache.c: New field. + * pinentry/pinentry.h (struct pinentry): Add fields pin_from_cache, + allow_external_password_cache, tried_password_cache, keyinfo, and + may_cache_password. + * pinentry/pinentry.c: Include "password-cache.h". + (pinentry): Initialize new fields. + (option_handler): Handle the "allow-external-password-cache" option. + (cmd_setkeyinfo): Implement it. + (cmd_getpin): Read the password from the cache, if appropriate. Save + it to the cache, if appropriate. + * pinentry/Makefile.am (AM_CPPFLAGS): Add $(COMMON_CFLAGS). + (LDADD): Add $(COMMON_LIBS). + (libpinentry_a_SOURCES): Add password-cache.h + password-cache.c. + * gtk+-2/pinentry-gtk-2.c (may_save_passphrase_toggled): New function. + (create_window): Take additional parameter, the pinentry's context. + Update callers. + [HAVE_LIBSECRET]: Show a checkbox asking whether the passphrase should + be saved. + * gtk+-2/Makefile.am (AM_CPPFLAGS): Add $(COMMON_CFLAGS). + (LDADD): Add $(COMMON_LIBS). + * curses/Makefile.am (AM_CPPFLAGS): Add $(COMMON_CFLAGS). + (LDADD): Add $(COMMON_LIBS). + * tty/Makefile.am (AM_CPPFLAGS): Add $(COMMON_CFLAGS). + (LDADD): Add $(COMMON_LIBS). + * doc/pinentry.texi (Protocol): Update documentation. Describe the + protocol and provide some justification. + +2015-05-07 Werner Koch <wk@gnupg.org> + + w32: Do not build gtk pinentry by default. + + commit aa98f25ddcc3c36035f18249443cec15d16e8fa5 + * autogen.rc: Remove obsolete options. + +2015-05-07 Neal H. Walfield <neal@gnu.org> + + Align secmem_realloc behavior with realloc's. + + commit aaec7c7c50adfb51510962a14c0fa2179a34a01e + * secmem/secmem.c (secmem_realloc): If passed a NULL pointer, then + call secmem_malloc instead of crashing. + +2015-05-05 Werner Koch <wk@gnupg.org> + + w32: Minor changes to the dialog. + + commit cbecc6d38a86f8fa7c052efab7649be07b5df334 + * w32/main.c (set_bitmap): New. + (dlg_proc): Show error prompt in red. + * w32/pinentry-w32.rc: Add icons and chnage dialog. + * w32/logo-128.bmp: New. + * w32/logo-32.bmp: New. + * w32/logo-48.bmp: New. + * w32/logo-64.bmp: New. + * w32/logo-96.bmp: New. + + pinentry-tty: Fix problem with zero length prompt. + + commit a616bd9dec00e068185b6b37a35ced4ec12ac5a7 + * tty/pinentry-tty.c (read_password): Use default prompt also for an + empty prompt argument. + +2015-05-01 Neal H. Walfield <neal@gnu.org> + + Improve documentation. + + commit 8b802cf928d199d9c09080f71a7dd1eb397f414a + Improve documentation: clean up wording and add some minor + improvements to the content. + + Improve comment. + + commit b9d529557b368548d6a55ae6c2df66ece7023e5f + * tty/pinentry-tty.c (tty_cmd_handler): Add comment. + + When reading the pin, correctly handle backspace. + + commit 189ab07e94dc2d4103c1edf00e15e0156df89297 + * tty/pinentry-tty.c (read_password): Handle backspace. + + Improve prompt for pin. + + commit c7099565524010b86891fc14b723fc722509d4bb + * tty/pinentry-tty.c (read_password): Improve prompt for pin. + +2015-05-01 Daniel Kahn Gillmor <dkg@fifthhorseman.net> + + fix small memory leak in pinentry-curses. + + commit 03e4207f11e228a4c079af991f82507539793bae + * pinentry/pinentry-curses.c: free internally allocated local string. + + pinentry-tty: make confirm actions work. + + commit 21d28d114259da9cb555ee612e053e6e68f37fd3 + * tty/pinentry-tty.c: treat the situation where no PIN is requested + and one_button is not set as a confirmation prompt. + + pinentry-tty: fix segfault on MESSAGE or CONFIRM. + + commit 93bd60a3ca91581a1cf8e754c4fb51e54c9e7ce9 + * tty/pinentry-tty.c: avoid prompting for a PIN when one was not asked + for. + + pinentry-tty: handle designated tty outside of read_password. + + commit b4bf75f24f1126a8ba8f8c1c025103c2dcee0710 + * tty/pinentry-tty.c: reorganize, wrapping read_password in tty + open/close. + +2015-04-16 Yuri D'Elia <wavexx@users.sourceforge.net> + + gtk: Make Escape key work. + + commit 9d2d8b6bfaf2d5b07e7fb5be7188516e4158ed98 + * gtk+-2/pinentry-gtk-2.c: Include gdk/gdkkeysyms.h. + (enter_callback): Pass confirm_value_t to button_clicked. + (confirm_button_clicked): Use confirm_value_t cast. + (cancel_callback): New. + (create_window): Add accelerator for the Escape key. + +2015-04-14 Werner Koch <wk@gnupg.org> + + Add stub command SETKEYINFO. + + commit 2bffbbff09177afb75ad667d949eed2a8cb846ea + * pinentry/pinentry.c (cmd_setkeyinfo): New. + (register_commands): Addd command. + +2015-03-18 Werner Koch <wk@gnupg.org> + + Release 0.9.1. + + commit 0b2d5e435445e3b9f8dffcf2240a95313c3ce335 + + + Fix build problems on AIX. + + commit 1cfcf9dadb73bccc52b7ece47616d621d9cbe044 + * pinentry/pinentry.c: Do not include getopt.h. + * pinentry/pinentry-curses.c (dialog_run): Call use_default_colors + only with ncurses. + + Update to automake 1.14. + + commit 2c56b16a18713786a7e66e408967f91388a008cb + + +2015-03-17 Werner Koch <wk@gnupg.org> + + Get rid of getopt_long and improve --help output. + + commit 2f7b275b2b5d31df48f02ab2913ba3ff2e74b7a4 + * pinentry/argparse.c, pinentry/argparse.h: New. Taken from GnuPG + master. + * pinentry/Makefile.am (libpinentry_a_SOURCES): Add them. + * pinentry/pinentry.c: Include argparse.h. + (usage): Remove. + (my_strusage): New. + (pinentry_parse_opts): Rewrite. Do not return a value. Change call + callers. + + Use CH type instead of wchar_t for curses. + + commit 8fa3ca90bfbaa84314443fab9865742b78eb85a9 + * pinentry/pinentry-curses.c (collect_line): Change second arg to CH. + * pinentry/pinentry.c (pinentry_utf8_to_local): Make args const. + +2014-12-15 Andre Heinecke <aheinecke@intevation.de> + + qt4: Improve moc handling. + + commit bb423620fca82159e60ab25de3c608a0243088b0 + * configure.ac: Disable pinentry-qt4 or exit if moc not found. + * m4/qt.m4: Look for and prefer moc-qt4. + * qt4/Makefile.am: Add moc files to nodist and clean them. + + doc: Update gpl.texi to match version from gcrypt. + + commit c911657710893643558f91ec497fac2831d91040 + * doc/gpl.texi: Use version from gcrypt. + +2014-12-09 Vicente Olivert Riera <Vincent.Riera@imgtec.com> + + pinentry-qt4: make the accessibility part optional. + + commit 484465338ea6f5f12eb1341ca0ef84aa79224ed4 + Check if the Qt libraries have support for QT Accessibility before using + it. Otherwise it will raise error like these one: + + main.cpp: In function 'int qt_cmd_handler(pinentry_t)': + main.cpp:220:51: error: 'class QAbstractButton' has no member named + 'setAccessibleDescription' + +2014-10-26 Werner Koch <wk@gnupg.org> + + Release 0.9.0. + + commit 8943bc86d6cf8295d0ec4382480d886b1f2ec062 + + + gtk: Aboid segv for opaste keys. + + commit 821dc21a241a27cc381c7d65be690e3858e2ddc6 + * gtk+-2/gtksecentry.c (gtk_secure_entry_class_init): Disable paste + key bindings. + + Remove support form QT3 and GTK+-1. + + commit f2ed42297528f2a126d189c6181d3105ceecca22 + * configure.ac: Remove old qt and gtk+-1 support. + * Makefile.am: Ditto. + +2014-10-26 Stanislav Ochotnicky <sochotnicky@redhat.com> + + Check if we are on tty before initializing curses. + + commit 3803fd15942f2f25108e400be6cd6faef791c8f7 + * pinentry/pinentry-curses.c (dialog_run): Check stant stdin and stout + are connected to ttys. + +2014-10-26 Werner Koch <wk@gnupg.org> + + gtk: Allow pasting using the mouse. + + commit 4f4af9056d1c100aa53363f019253160cd8d9ff0 + * gtk+-2/gtksecentry.h (_GtkSecureEntry): Add fields insert_pos, + real_changed, cand change_count. + (_GtkSecureEntryClass): Add field paste_clipboard. + * gtk+-2/gtksecentry.c (PASTE_CLIPBOARD): New. + (gtk_secure_entry_class_init): Set paste_clipboard and create + paste-clipboard signal. + (gtk_secure_entry_button_press): Call gtk_secure_entry_pase. + (begin_change, end_change, emit_changed): New. + (gtk_secure_entry_real_insert_text): Use emit_changed. + (gtk_secure_entry_real_delete_text): Ditto. + (paste_received, gtk_secure_entry_paste) + (gtk_secure_entry_paste_clipboard): New. + +2014-10-24 Werner Koch <wk@gnupg.org> + + gtk+-2: Make current focus visible again. + + commit 2ef788fb5dce2e49fa925264802388f4c002cd31 + * gtk+-2/pinentry-gtk-2.c (grab_keyboard): Return false + (ungrab_keyboard): Ditto. + + gtk+-2: Implement the SETREPEAT command. + + commit e483abb883f65719ce8008a211f49b8d207ee4af + * gtk+-2/pinentry-gtk-2.c (repeat_entry, error_label): New. + (button_clicked): Implement repeat check. + (changed_text_handler): Clear repeat field. + (create_window): Add repeat entry. + + Add commands to allow implementing a "repeat passphrase" field. + + commit 9f78f0709d9ba60677129c179f7f0ef835c51c1d + * pinentry/pinentry.c (cmd_setrepeat): New. + (cmd_setrepeaterror): New. + (register_commands): Add new commands. + (cmd_getpin): Print "PIN_REPEATED" status. + +2014-09-18 Werner Koch <wk@gnupg.org> + + Release 0.8.4. + + commit f610ea6248b5a77739d2e16052b8ddd78f95394e + + + Add missing build support files and move them to build-aux. + + commit f21dcb8083905efef8e82e1bf91dd01457af81d1 + + + Use generic autogen.sh script. + + commit 549479d69363ca1ef5e7c676517e2327b8baadea + * autogen.rc: New. + * autogen.sh: New. Take from GnuPG. + * Makefile.am (EXTRA_DIST): Add autogen.rc. + (DISTCHECK_CONFIGURE_FLAGS): Disable qt4. + +2014-08-12 Werner Koch <wk@gnupg.org> + + common: Fix compiler warning. + + commit 888591602fc359e2c1baaa49d92825e050426956 + * pinentry/pinentry.c (pinentry_utf8_to_local): Use cast for iconv arg. + (pinentry_local_to_utf8): Ditto. + + New pinentry-tty version for dumb terminals. + + commit 12369b15c65fa64eef9dbc5e475b407e338641c7 + * Makefile.am: Add pinentry-tty. + * NEWS: Add news about pinentry-tty. + * README: Update. + * configure.ac: Add support for this pinentry. + * tty/Makefile.am: New. + * tty/pinentry-tty.c: New. + +2014-08-06 Andre Heinecke <aheinecke@intevation.de> + + Check for MOC also if pinentry-qt is disabled. + + commit 52cf95c4fd97dc38856e72aa3e42a135d010df06 + * configure.ac: Call QT_PATH_MOC if pinentry_qt4 is not no. + + Add fallbacks for SetForegroundWindow. + + commit f4d14ffcf2e04b1938c00a0ef1504e0e932631fd + If that foreground window fails pinentry-qt now tries to + attach to the current foreground process and then tries + to set the foreground window again. If that fails it also + calls ShowWindow as a last resort. + + * qt4/pinentrydialog.cpp (raiseWindow): Add fallbacks in + case SetForegroundWindow fails. + + Use raiseWindow also for confirm dialogs. + + commit 47476d2f288a22c29567ae2c179ce0472db4257e + This should fix the case that the dialog opened + in the foreground but a warning / confirm dialog + opened in the background. + + * qt4/pinentryconfirm.cpp, qt4/pinentryconfirm.h (showEvent): + New overwrite base class method to call raiseWindow. + * NEWS: Mention this. + +2014-07-30 Andre Heinecke <aheinecke@intevation.de> + + Set some accessibility information. + + commit 41d046022e912c76cb424c906064745e732f01f3 + * qt4/main.cpp (qt_cmd_handler): Build buttons with accessibile + Description. + * qt4/pinentrydialog.cpp (setDescription, setError, setOkText) + (setCancelText, setQualityBar): Set an accessible description. + * qt4/pinentryconfirm.cpp (PinentryConfirm): Set message + box contents also as accessible values. + * NEWS: Mention it and the copy/paste change from last year. + +2013-07-15 Andre Heinecke <aheinecke@intevation.de> + + Lower paste length limit to 300. + + commit 556d305b970ed60ef1dc2718fcafbf3bea6b7fea + This should be more then enough and avoids possible problems + with libassuan cmd line lenght or percent escaping etc. + + * qt4/qsecurelineedit.cpp (insert): Lower paste limit + + Limit paste length to 1023 characters. + + commit 9b154c9f87abd3ea5df4b763c958e538b19d0904 + * qt4/qsecurelineedit.cpp (insert): Check for a maximum + length before allocation the secmem string. + + Fix contextmenu support for pasting. + + commit 4d56651dd4ab2568f8adc7e4448bb1239dbdbfb0 + MOC ignores preprocessor definitions so we can not conditionally + declare SLOTS. So we now move the ifdefs in the definition and + always declare the SLOTS. + + * qt4/qsecurelinedit.cpp (cut, copy, paste): Do nothing if + QT_NO_CLIPBOARD is defined. + * qt4/qsecurelinedit.h: Always declare cut, copy and paste slots + + Remove check for RTL extensions. + + commit d4feabe153b096db896dfe25bd1bf763d23123d7 + Our code does nothing RTL specific there anyway. And the + qt_use_rtl_extensions symbol has been removed. + + * qt4/qsecurelinedit.cpp: Remove check for RTL extensions. + +2013-07-12 Werner Koch <wk@gnupg.org> + + Fix for commit fb38be9 to allow for "make distcheck". + + commit 54b9b92c13a496a33868501dec893bc8d82b1a8d + * qt4/Makefile.am: Make correct use of BUILT_SOURCES. + +2013-05-29 Andre Heinecke <aheinecke@intevation.de> + + Add pinentry-qt4-clipboard option. + + commit 0b3a8568e14b994a8d1f4c1cb42aed4959dfc811 + Enabling this option will make it possible to paste a + passphrase into pinentry-qt4. This defeats the secmem + mechanism but drastically increases usability for some + users. + + * configure.ac: New option pinentry-qt4-clipboard. + * qt4/qsecurelineedit.cpp, qt4/qsecurelineedit.h: Activate + clipboard and context menu if PINENTRY_QT4_CLIPBOARD is defined. + + Remove qt4 moc files and add moc to buildsystem. + + commit fb38be960e837bb5854aa65bf8cbf9cbf535631e + This is neccessary to conditionally enable signals/slots + at build time. + + * qt4/Makefile.am: Moc files automatically. + * qt4/pinentryconfirm.moc, qt4/pinentrydialog.moc, + qsecurelineedit.moc: Removed. + +2013-04-26 Werner Koch <wk@gnupg.org> + + Release 0.8.3. + + commit ce7f2e69fa78d9afac96efc3009513b203668b4b + + +2013-04-26 Andre Heinecke <aheinecke@intevation.de> + + Switch to i686-w64-mingw32 as default Windows toolchain. + + commit a421efcb91b80a37f58ae35687dc33db08a04b3d + * autogen.sh <build-w32>: Insert i686-w64-mingw32. + * configure.ac: Pretty print final info. + + Fix declaration of lock_set_foreground_window for pinnetry-w32. + + commit 369e774ab835ecf23da267cf55f9ecf8ae8c5585 + * w32/main.c (lock_set_foreground_window): Remove WINUSERAPI + qualifier. + + Fix ressource compilation of pinentry-w32. + + commit 18b0d8849e51b6203b3f1dbc1cc1cc71e52f78b6 + * w32/pinentry-w32.rc: Include windows.h + +2013-02-16 Ben Kibbey <bjk@luxsci.net> + + Curses build fix for DOS'ish systems. + + commit 462f00dfc6636fbfe2e453c1b820d919ec1d0c99 + + +2013-02-14 Ben Kibbey <bjk@luxsci.net> + + Document the --timeout and SETTIMEOUT feature. + + commit 31467f7c2cd748d6f822ccf627a2ce8870fb09c6 + + + Add timeout support to the Gtk+2 pinentry. + + commit 8ce6e0c9cecd91d7b1dfe8bcc9942803c13c7afb + * gtk+-2/pinentry-gtk-2.c (create_window): Add timer. + (timeout_cb): New. + + Add timeout support to the curses pinentry. + + commit e3bed4f087304ac126e247053fc82a593bec31b6 + * pinentry/pinentry-curses.c (dialog_run): Set the window input to + non-blocking. + (catchsig): New. + (main): Catch SIGALRM and set the timeout. + +2013-01-06 Ben Kibbey <bjk@luxsci.net> + + Fix initializing the timeout timer. + + commit d33537aef0358313cbcf1d010b227d93f3430900 + When timeout == 0 a segfault would occur. + +2012-08-08 Werner Koch <wk@gnupg.org> + + Release 0.8.2. + + commit ffc59acd0188006b9c90d03b59fe93dc7e12fe51 + + + Distribute only bzip2 tarballs. + + commit 94f356b2615a8cd2c5ce608b9f08a5fde3d02b26 + * Makefile.am (AUTOMAKE_OPTIONS): New. + + qt4: Update all moc files to Qt version 4.8.2. + + commit 7cbe87800fa8f84d7868da507010999cbc314beb + + + Update config.guess and config.sub. + + commit b3016d72478a57dd1132721a324b1a09ca23fed2 + * config.guess, config.sub: Update to version 2012-07-31 from gnulib. + + Change build system to auto-generate the ChangeLog. + + commit 826ca44db0d29bae54de8b5d4c0d67a3f22430ee + * build-aux/gitlog-to-changelog: New script. Taken from GnuPG. + * build-aux/git-log-fix: New file. + * build-aux/git-log-footer: New file. + * doc/HACKING: Describe the ChangeLog policy + * ChangeLog: New file. + * Makefile.am (EXTRA_DIST): Add new files. + (gen-ChangeLog): New. + (dist-hook): Run gen-ChangeLog. + + Rename existing ChangeLog files to ChangeLog-old. + + Switch to an automagic beta numbering scheme. + + commit 19fae1e8652410712d52f1d926fb9bb40a506787 + * configure.ac: Add all the required m4 magic. + +2012-08-08 Werner Koch <wk@gnupg.org> + + NB: Changes done before August 8, 2012 are described in per + directory files named ChangeLog-old. See doc/HACKING for + details. + + ----- + Copyright (C) 2002, 2003, 2010, 2012 g10 Code GmbH + + Copying and distribution of this file and/or the original GIT + commit log messages, with or without modification, are + permitted provided the copyright notice and this notice are + preserved. |