12012-08-08 Werner Koch <wk@gnupg.org> 2 3 NB: ChangeLog files are no longer manually maintained. Starting 4 on August 8, 2012 we put change information only in the GIT commit 5 log, and generate a top-level ChangeLog file from logs at "make 6 dist". See doc/HACKING for details. 7 82011-08-10 Werner Koch <wk@g10code.com> 9 10 * configure.ac: Change bug report address to the BTS. Fix 11 autoconf warnings. 12 132011-06-28 Werner Koch <wk@g10code.com> 14 15 * gtk+-2/gtksecentry.c (PROP_EDITING_CANCELED): New. 16 (gtk_secure_entry_class_init, gtk_secure_entry_set_property) 17 (gtk_secure_entry_get_property): Implement as dummy it to get rid 18 of a runtime warning. 19 202010-12-16 Werner Koch <wk@g10code.com> 21 22 Release 0.8.1. 23 24 * doc/pinentry.texi: Remove the custom font setting for underscores. 25 26 Update to automake 1.10. 27 28 * missing, config.guess, config.sub: Update from GnuPG. 29 30 * w32/main.c (debugfp): Define to stderr. 31 (raise_sip) [!W32CE]: Make it a dummy function. 32 33 * qt4/pinentrydialog.cpp (raiseWindow): Use SetForegroundWindow 34 API directly. 35 (SetForegroundWindowEx): Comment out. 36 372010-10-19 Werner Koch <wk@g10code.com> 38 39 * pinentry/pinentry.c (pinentry_have_display): Also detect 40 --display=DISPID. 41 422010-10-12 Werner Koch <wk@g10code.com> 43 44 * qt/main.cpp (escape_accel): New. Adapt from from qt4/. 45 (qt_cmd_handler): Implement default-ok and default-cancel. Escape 46 accelerators. 47 482010-09-30 Werner Koch <wk@g10code.com> 49 50 * pinentry/pinentry.h (struct pinentry): Add CLOSE_BUTTON. 51 * pinentry/pinentry.c (cmd_getpin, cmd_confirm, cmd_message): Send 52 BUTTON_INFO. 53 * gtk+-2/pinentry-gtk-2.c (delete_event): Set close_button. 54 552010-09-22 Werner Koch <wk@g10code.com> 56 57 * gtk+-2/pinentry-gtk-2.c (create_window): Make use of 58 default_cancel and default_ok. 59 602010-08-19 Werner Koch <wk@g10code.com> 61 62 * gtk+-2/Makefile.am (pinentry_gtk_2_SOURCES): Add gseal-gtk-compat.h. 63 64 * configure.ac (AH_TOP, AH_BOTTOM): New. Define 65 GPG_ERR_ENABLE_ERRNO_MACROS. 66 672010-06-08 Marc Mutz <marc.mutz@kdab.com> (wk) 68 69 * qt4/pinentrydialog.cpp (PinEntryDialog): Add WindowStaysOnTopHint. 70 71 * qt/pinentrydialog.cpp (PinEntryDialog): Add WStyle_StaysOnTop. 72 732010-05-12 Guido Günther <agx@sigxcpu.org> (wk) 74 75 * gtk+-2/gtksecentry.c: Make -DSEAL safe. 76 * gtk+-2/gseal-gtk-compat.h: New. 77 * gtk+-2/gtksecentry.h: Include new header. 78 792010-05-07 Werner Koch <wk@g10code.com> 80 81 * gtk+-2/pinentry-gtk-2.c (create_window): Keep the window above 82 and make sure it has the focus. Fixes bug#1162. 83 842010-05-03 Werner Koch <wk@g10code.com> 85 86 * gtk+-2/pinentry-gtk-2.c (create_window): Use 87 visibility-notify-event instead of map-event. Suggested by Ed 88 Marten. 89 902010-04-26 Werner Koch <wk@g10code.com> 91 92 * gtk+-2/pinentry-gtk-2.c (grab_failed): New. 93 (grab_keyboard): s/g_error/g_critical/. Set GRAB_FAILED. 94 (gtk_cmd_handler): Return Cancel if a grab failed. 95 962010-04-20 Marcus Brinkmann <marcus@g10code.de> 97 98 * pinentry/pinentry.c: Move include config.h to top! 99 1002010-04-19 Werner Koch <wk@g10code.com> 101 102 * gtk+-2/gtksecentry.c (gtk_secure_entry_delete_cb) 103 (gtk_secure_entry_toggle_overwrite, activate_cb) 104 (unichar_chosen_func): Comment out these unused functions. 105 (secentry_malloc): Fix format string error. 106 1072010-04-19 Stanislav Ochotnicky <sochotnicky@redhat.com> (wk) 108 109 * gtk+-2/pinentry-gtk-2.c (ungrab_keyboard): Fix segv when using 110 option -g. 111 1122010-04-16 Marcus Brinkmann <marcus@g10code.de> 113 114 * secmem/util.c: Fix inverted test. 115 1162010-04-12 Werner Koch <wk@g10code.com> 117 118 * w32/main.c (dlg_proc): Act on VK_RETURN. 119 120 * w32/pinentry-w32.rc: Include config.h. Add basic support for 121 small screens as used with WindowsCE. 122 123 * w32/Makefile.am (pinentry-w32.o): Add -I.. to the command. 124 1252010-04-08 Werner Koch <wk@g10code.com> 126 127 * pinentry/pinentry.c [W32CE]: Do not include errno.h and 128 locale.h. 129 (pinentry_have_display) [W32CE]: Do not use getenv. 130 (pinentry_parse_opts) [W32CE]: No error diagnostics due to missing 131 errno. 132 (sleep) [W32CE]: New. 133 (option_handler) [W32CE]: Ignore option --debug-wait. 134 (getpid) [W32CE]: New. 135 (pinentry_loop): Use STDIN_FILENO and STDOUT_FILENO. 136 (pinentry_loop): Factor code out to ... 137 (pinentry_loop2): New. 138 * w32/main.c (w32_strerror) [W32CE]: Do not use FormatMessage. 139 (main) [W32CE]: Do not use LockSetForegroundWindow. 140 (set_dlg_item_text): Use wchar_t for static string. 141 * secmem/util.c [W32CE]: Do not include errno.h. 142 (xwrite) [W32CE]: Shortcut EINTR loop. 143 1442010-04-07 Werner Koch <wk@g10code.com> 145 146 * autogen.sh: Modernized. 147 1482010-03-03 Werner Koch <wk@g10code.com> 149 150 Release 0.8.0. 151 1522010-03-02 Werner Koch <wk@g10code.com> 153 154 * qt4/main.cpp (from_utf8): Add extra braces for clarity. 155 (main): Copy the fixed --display string. 156 1572010-02-25 Marc Mutz <marc@kdab.com> (wk) 158 159 * qt4/main.cpp (from_utf8): don't throw InvalidUtf8(); for now, 160 fall back to QString::fromLocal8Bit() 161 1622010-02-22 Marc Mutz <marc@kdab.com> (wk) 163 164 * qt4/main.cpp (InvalidUtf8): New exception class. 165 (from_utf8): wrapper around QString::fromUtf8 throwing 166 InvalidUtf8. 167 (qt_cmd_handler): Use from_utf8 instead of QString::fromUtf8. 168 (qt_cmd_handler_ex): New wrapper around qt_cmd_handler. 169 (pinentry_cmd_handler): Use qt_cmd_handler_ex. 170 171 * qt4/main.cpp (qt_cmd_handler): Also handle accels in 172 SET{OK,NOTOK,CANCEL} string. 173 1742010-02-19 Marc Mutz <marc@kdab.com> (wk) 175 176 * qt4/main.cpp (qt_cmd_handler), qt4/pinentrydialog.cpp 177 (PinentryDialog::PinEntryDialog): Use the button icons that come 178 with Qt. 179 180 * qt4/pinentry_qrc, qt4/qrc_pinentry.cpp: New. 181 * qt4/gtk-cancel.png, qt4/gtk-ok.png: Removed. 182 * qt4/Makefile.am (EXTRA_DIST): Remove the GTK icons, add 183 pinentry.qrc. 184 (pinentry_qt4_SOURCES): add qrc_pinentry.cpp. 185 186 * qt4/main.cpp (qt_cmd_handler): Remove i18n support again. 187 188 * qt4/pinentrydialog.cpp (PinentryDialog::PinentryDialog): 189 set PIN entry field as buddy of its prompt 190 191 * qt4/main.cpp (escape_accel): New. 192 (qt_cmd_handler): use it on default_cancel, default_ok, prompt. 193 194 * qt4/pinentrydialog.h, qt4/pinentrydialog.cpp 195 (PinEntryDialog::PinEntryDialog): don't use a nested vbox layout. 196 197 * qt4/pinentrydialog.h: replace include file with forward decl. 198 * qt4/pinentrydialog.cpp: add include file here. 199 200 * qt4/pinentrydialog.h, qt4/pinentrydialog.cpp 201 (PinentryDialog::keyPressEvent()): Removed. 202 203 * qt/4pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): use 204 QLayout::SetFixedSize instead of rolling our own solution. 205 * qt4/pinentrydialog.h: (PinentryDialog::setFixedSize): Removed. 206 * qt4/pinentrydialog.moc: Re-created. 207 208 * qt4/main.cpp: (qt_cmd_handler) make Cancel the default button 209 for CONFIRM 210 211 * qt4/main.cpp: (qt_cmd_handler) implement the confirm/message 212 logic correctly 213 214 * qt4/pinentrydialog.h (accepted, rejected): Removed; already 215 provided by base class. 216 * qt4/pinentrydialog.cpp (PinEntryDialog::PinEntryDialog): Use 217 QDialog::{accepted,rejected}. 218 * qt4/pinentrydialog.moc: Re-created. 219 220 * qt4/pinentrydialog.moc, qt4/qsecurelineedit.moc: Make compatible 221 with newer Qt version. 222 2232010-02-19 Werner Koch <wk@g10code.com> 224 225 * gtk+-2/pinentry-gtk-2.c (create_window): Allow mnemonics in 226 button labels. 227 228 * pinentry/pinentry.h (struct pinentry): Add default_prompt. 229 * pinentry/pinentry.c (option_handler): Support "default-prompt". 230 (cmd_getpin): Use it. 231 (noprefix_strdup): Remove; should be done by caller. 232 2332010-02-17 Werner Koch <wk@g10code.com> 234 235 * pinentry/pinentry.h (struct pinentry): Add default_ok and 236 default_cancel. 237 * pinentry/pinentry.c (noprefix_strdup): New. 238 (option_handler): Support "default-ok" and "default-cancel". 239 (strcpy_escaped): Change second arg from unsigend char to char. 240 2412010-02-16 Werner Koch <wk@g10code.com> 242 243 * qt4/document-encrypt.png, qt4/gtk-cancel.png, qt4/gtk-ok.png: New. 244 * qt4/Makefile.am (EXTRA_DIST): Add them. 245 2462010-02-15 Christoph Schleifenbaum <christoph@kdab.com> (wk) 247 248 Also attributed to Marc Mutz <marc@kdab.com>. 249 250 * qt4/main.cpp, qt/pinentrydialog.cpp: If the style says so, 251 set (GTK) icons on OK and Cancel buttons. 252 2532010-02-15 Christoph Schleifenbaum <christoph@kdab.com> (wk) 254 255 * qt4/main.cpp: Use an explicit QMessageBox instead of the 256 'information' convenience method. We do this for two reasons: 257 1. So we can set our own icon (icon()). 2. So we can call our 258 raiseWindow() function on it. 259 2602010-02-15 Christoph Schleifenbaum <christoph@kdab.com> 261 262 * qt4/main.cpp: Use title. Use Qt translation of "OK" and "Cancel" 263 264 * qt4/pinentrydialog.cpp: Don't show the question-mark icon in the 265 window title. 266 2672010-02-15 Christoph Schleifenbaum <christoph@kdab.com> (wk) 268 269 * qt4/pinentrydialog.h, qt4/pinentrydialog.cpp: Use the 270 document-encrypt icon instead of the 271 QMessageBox::{Information,Critical} ones. 272 2732010-02-15 Christoph Schleifenbaum <christoph@kdab.com> (wk) 274 275 Also attributed to Marc Mutz <marc@kdab.com>. 276 277 * qt4/pinentrydialog.cpp: Properly show/hide optional widgets. 278 2792010-02-15 Christoph Schleifenbaum <christoph@kdab.com> 280 281 * qt4/pinentrydialog.cpp: Set text color or error label to red. 282 2832010-02-15 Christoph Schleifenbaum <christoph@kdab.com> (wk) 284 285 Also attributed to Marc Mutz <marc@kdab.com>. 286 287 * qt4/pinentrydialog.cpp: Gather scattered layouting code, use a 288 single gridlayout for all, and use QDialogButtonBox. 289 2902010-02-15 Christoph Schleifenbaum <christoph@kdab.com> (wk) 291 292 * qt4/pinentrydialog.cpp: Call SetForegroundWindow on showEvent() 293 and set a fixed size on the dialog. 294 295 * qt4/main.cpp: Set document-encrypt as the window icon. 296 2972010-02-15 Marc Mutz <marc@kdab.com> (wk) 298 299 * qt4/main.cpp: Load the correct Qt translation file based on 300 either lc_messages or the current locale. 301 302 * qt4/main.cpp: Use pinentry_t->parent_wid also for message-box 303 case. 304 305 * qt4/main.cpp: Properly delete the QApplication. 306 3072010-02-15 Christoph Schleifenbaum <christoph@kdab.com> (wk) 308 309 * qt4/main.cpp: Remove guard clause with impossible condition. 310 311 * qt4/main.cpp: Respect pinentry_t->title. 312 313 * qt4/main.cpp: Include config.h. 314 3152009-12-16 Marcus Brinkmann <marcus@g10code.de> 316 317 * gtk+-2/gtksecentry.c: Don't translate properties. 318 Patch by Guido Guenther <agx@sigxcpu.org>. 319 3202009-12-02 Werner Koch <wk@g10code.com> 321 322 * secmem/util.c: Re-indent function names. 323 (TEMP_FAILURE_RETRY): Remove because it is non-portable. 324 (xwrite): Open code the EINTR retry. 325 * pinentry/pinentry-curses.c (dialog_run): Replace '\e' by a 326 standard escape. Reported by Wyllys Ingersoll. 327 3282009-08-10 Marcus Brinkmann <marcus@g10code.de> 329 330 * pinentry/pinentry.c [!ENABLE_ENHANCED]: Remove option enhanced. 331 * pinentry/pinentry.h (struct pinentry) [!ENABLE_ENHANCED]: Remove 332 member enhanced. 333 * gtk+-2/pinentry-gtk-2.c: New macro. 334 (button_clicked, create_window) [!ENABLE_ENHANCED]: Disable code. 335 * gtk/pinentry-gtk.c (button_clicked, create_window): Likewise. 336 * doc/pinentry.texi (Using pinentry): Comment out enhanced option. 337 3382009-07-10 Till Adam <till@kdab.com> 339 340 * qt4/pinentrydialog.cpp (PinEntryDialog): Redesign the dialog to 341 be prettier. 342 3432009-06-19 Marcus Brinkmann <marcus@g10code.de> 344 345 * configure.ac: Post-release changes. 346 347 Release version 0.7.6. 348 349 * configure.ac: Bump version. 350 3512009-01-29 Bernhard Reiter <bernhard@intevation.de> 352 353 * doc/pinentry.texi (Using pinentry): Fix typo. 354 3552009-04-24 Guido Guenther <agx@sigxcpu.org> 356 357 * gtk+-2/gtksecentry.c (gtk_secure_entry_class_init): Don't 358 install "gtk-entry-select-on-focus" settings property since it 359 clashes with the one from GtkEntry. 360 (gtk_secure_entry_grab_focus): Create a temporary GtkEntry widget 361 to read that value instead. Allows to have GtkEntry and 362 GtkSecureEntry in the same process. 363 3642009-06-19 Marcus Brinkmann <marcus@g10code.de> 365 366 Suggested by Simon McVittie: 367 * gtk+-2/gtksecentry.c (g_malloc, g_realloc, g_free): Renamed to 368 secentry_malloc, secentry_realloc. 369 (g_malloc0): Removed. 370 (GMALLOC_SIZE): Move to ... 371 * gtk+-2/gtksecentry.h (GMALLOC_SIZE): ... here. 372 (secentry_malloc, secentry_realloc, secentry_free): New prototypes. 373 * gtk+-2/pinentry-gtk-2.c (main): Set memory allocation vtable. 374 3752009-05-04 Till Adam <till@kdab.net> 376 377 * qt4/main.cpp (qt_cmd_handler): Use WId instead of HWND. 378 3792009-04-14 Marcus Brinkmann <marcus@g10code.de> 380 381 * pinentry/pinentry.h (struct pinentry): New member NOTOK. 382 Rename member USER_CLOSED to CANCELED. 383 * pinentry/pinentry.c: Add initializer for NOTOK. 384 (register_commands): Add SETNOTOK. 385 * pinentry/pinentry-curses.c (STRING_NOTOK): New macro. 386 (dialog_pos_t): New value DIALOG_POS_NOTOK. 387 (struct dialog): New members notok, notok_x, notok_y. 388 (dialog_create): Implement NOTOK. 389 (dialog_switch_pos): Likewise. 390 (dialog_run): Likewise. 391 * gtk+-2/pinentry-gtk-2.c: Rename confirm_yes to confirm_value. 392 (confirm_value_t): New type. Use it for confirm_value. 393 (window_closed): Remove. 394 (confirm_button_clicked): Set confirm_value. 395 (create_window): Implement NOTOK. 396 (gtk_cmd_handler): Implement cancel behaviour a bit differently. 397 3982009-04-09 Marcus Brinkmann <marcus@g10code.de> 399 400 * qt4/qsecurelineedit.h (QSecureLineEdit): Don't export. 401 4022009-04-06 Marcus Brinkmann <marcus@g10code.de> 403 404 * configure.ac: Portability fixes. 405 4062009-04-03 Marcus Brinkmann <marcus@g10code.de> 407 408 * qt4/Makefile.am (pinentry_qt4_SOURCES): Add qsecurelineedit_p.h. 409 410 * secmem/Makefile.am (libsecmem_a_SOURCES): Add secmem++.h. 411 * qt4/Makefile.am (pinentry_qt4_SOURCES): Add pinentrydialog.moc 412 and qsecurelineedit. 413 414 * configure.ac: Incorporate revision number in version string. 415 4162009-04-02 Till Adam <till@kdab.net> 417 418 * qt4/qsecurelineedit.moc, qt4/main.cpp, qt4/pinentrydialog.moc, 419 qt4/qsecurelineedit.cpp, qt4/pinentrydialog.cpp, 420 qt4/pinentrydialog.h: Implement quality bar and grabbing. 421 422 * qt4/pinentrydialog.cpp (PinEntryDialog): Enable word wrapping. 423 4242009-04-03 Marcus Brinkmann <marcus@g10code.de> 425 426 * qt4/main.cpp (qt_cmd_handler): Cast window handle ID. 427 4282009-03-19 Werner Koch <wk@g10code.com> 429 430 * pinentry/pinentry.h (struct pinentry): Add field user_closed. 431 * pinentry/pinentry.c (cmd_getpin, cmd_confirm, cmd_message): 432 Reset this field. 433 (cmd_confirm): Return cancel if the user closed the window. 434 * gtk+-2/pinentry-gtk-2.c (window_closed): New. 435 (gtk_cmd_handler, delete_event): Set it. 436 4372009-02-19 Marcus Brinkmann <marcus@g10code.de> 438 439 * secmem/secmem++.h: New file. 440 * qt4/Makefile.am, qt4/main.cpp, qt4/pinentrydialog.cpp, 441 qt4/pinentrydialog.h: Changes to use secure memory. 442 * qt4/pinentrydialog.moc, qt4/qsecurelineedit.moc: New files. 443 * qt4/qsecurelineedit.cpp, qt4/qsecurelineedit.h, 444 qt4/qsecurelineedit_p.h, qt4/secstring.h, qt4/secstring.cpp: New 445 files. 446 Submitted by Marc Mutz <marc@kdab.net>. 447 4482008-12-08 Werner Koch <wk@g10code.com> 449 450 * qt/main.cpp (qt_cmd_handler) <!want_pass>: Translate from utf8. 451 * qt4/main.cpp (qt_cmd_handler) <!want_pass>: Translate from utf8. 452 4532008-11-12 Ludovic Rousseau <ludovic.rousseau@gmail.com> (wk) 454 455 * pinentry/pinentry.h (struct pinentry): Add field TITLE. 456 * pinentry/pinentry.c (cmd_settitle): New. 457 (register_commands): Add command SETTITLE. 458 * gtk+-2/pinentry-gtk-2.c (create_window): Set the title. 459 4602008-10-17 Werner Koch <wk@g10code.com> 461 462 * secmem/memory.h: Add C++ extern declaration. 463 464 * secmem/secmem.c (secmem_get_max_size): New. 465 4662008-07-25 Marcus Brinkmann <marcus@ulysses.g10code.com> 467 468 * qt4/Makefile.am (DISTCLEANFILES): Rename to CLEANFILES. 469 (BUILD_SOURCES): New. 470 4712008-07-25 Marcus Brinkmann <marcus@g10code.de> 472 473 * configure.ac: Prefer pinentry gtk2 over gtk. Now also choose 474 qt4 (after qt and before w32 native). 475 * README: Document Qt. 476 4772008-07-24 Marcus Brinkmann <marcus@g10code.de> 478 479 * qt4/pinentrydialog.h, qt4/pinentrydialog.cpp, qt4/main.cpp, 480 qt4/Makefile.am: New files. 481 * configure.ac: Add check for Qt4. 482 (AC_CONFIG_FILES): Add qt4/Makefile.am. 483 * Makefile.am (pinentry_qt4): New variable. 484 (SUBDIRS): Add ${pinentry_qt4}. 485 4862008-07-23 Werner Koch <wk@g10code.com> 487 488 * secmem/secmem.c (secmem_init): Fix apostrophe in error 489 message. Reported by Petr Uzel. 490 4912008-05-05 Marcus Brinkmann <marcus@ulysses.g10code.com> 492 493 * gtk+-2/gtksecentry.c (GMALLOC_SIZE): New symbol. 494 (g_malloc, g_malloc0, g_realloc): Use GMALLOC_SIZE instead of 495 gulong for size attribute. 496 4972008-03-03 Marcus Brinkmann <marcus@g10code.de> 498 499 * gtk+-2/pinentry-gtk-2.c (create_window): Install realize callback. 500 (ungrab_keyboard): Unmake dialog transient. 501 (make_transient): New function. 502 Submitted by Joachim Breitner. 503 5042008-02-15 Werner Koch <wk@g10code.com> 505 506 Release 0.7.4. 507 5082008-02-14 Werner Koch <wk@g10code.com> 509 510 * configure.ac: Check for -Wno-pointer-sign. 511 512 * pinentry/pinentry.c (cmd_getinfo): New. 513 (register_commands): Register it. 514 5152008-01-02 Marcus Brinkmann <marcus@g10code.de> 516 517 * configure.ac: Use PKG_CONFIG instead of PKGCONFIG and 518 pkg-config. Use AC_PATH_PROG instead of AC_CHECK_PROG. 519 520 * Makefile.am (install-exec-local): Add exe extension to link. 521 5222007-11-29 Marcus Brinkmann <marcus@g10code.de> 523 524 Released 0.7.4. 525 5262007-11-19 Werner Koch <wk@g10code.com> 527 528 * doc/pinentry.texi (Protocol): Typo fixes by Bernhard Herzog. 529 Describe SETQUALITYBAR_TT. 530 5312007-11-19 Bernhard Herzog <bernhard.herzog@intevation.de> (wk) 532 533 * qt/pinentrydialog.cpp (PinEntryDialog): Fixed crash 534 5352007-11-19 Werner Koch <wk@g10code.com> 536 537 * gtk+-2/pinentry-gtk-2.c (create_window): Use again map-event and 538 unmap-event as this works on my setup far more reliable than 539 expose-event/no-expose-event. 540 541 * gtk+-2/gtksecentry.c (get_cursor_time): s/time/blinktime/ t 542 avoid shadowing warning. 543 544 * pinentry/pinentry.h (struct pinentry): Change QUALITY_BAR to a 545 char ptr. 546 (struct pinentry): Add QUALITY_BAR_TT. 547 * pinentry/pinentry.c (cmd_setqualitybar): Allow to set a label text. 548 (cmd_setqualitybar_tt): New. 549 * gtk+-2/pinentry-gtk-2.c (create_window): Take label and tooltip 550 from global. 551 * qt/pinentrydialog.h (setQualityBar, setQualityBarTT) 552 (_quality_bar_label): New. 553 * qt/pinentrydialog.cpp (setQualityBar, setQualityBarTT): New. 554 (PinEntryDialog): Remove setting of tooltip. 555 556 * qt/main.cpp (qt_cmd_handler): Propagate quality bar label and tootip. 557 5582007-11-19 Bernhard Herzog <bernhard.herzog@intevation.de> (wk) 559 560 * qt/pinentrydialog.cpp (PinEntryDialog): Move the quality bar 561 below the text entry and align them properly. Show a tooltip. 562 * gtk+-2/pinentry-gtk-2.c (create_window): Ditto. Don't let it 563 change its height. 564 (QUALITYBAR_EMPTY_TEXT): New. 565 5662007-09-18 Werner Koch <wk@g10code.com> 567 568 * qt/secqlineedit.h (SecQLineEdit): New signal textModified. 569 * qt/secqlineedit.cpp (finishChange): Emit it. 570 * qt/pinentrydialog.cpp (setPinentryInfo): New. 571 (PinEntryDialog): Add arg ENABLE_QUALITY_BAR. 572 * qt/pinentrydialog.h (setPinentryInfo): New. 573 (PinEntryDialog): Add arg ENABLE_QUALITY_BAR. 574 575 * pinentry/pinentry.h (struct pinentry): Add member QUALITY_BAR 576 and CTX_ASSUAN. 577 * pinentry/pinentry.c (cmd_setqualitybar): New. 578 (copy_and_escape): New. 579 (pinentry_inq_quality): New. 580 5812007-07-09 Werner Koch <wk@g10code.com> 582 583 * doc/pinentry.texi: Fixed direntry syntax. 584 585 * configure.ac: Add --without-libcap. From the Gentoo patch archive. 586 587 * gtk+-2/pinentry-gtk-2.c (create_window): Use expose-event 588 instead of map-event. From Alon Bar-Lev. 589 5902007-07-06 Werner Koch <wk@g10code.com> 591 592 Released 0.7.3. 593 594 * config.sub, config.guess: Updated from current Savannah CVS. 595 5962007-06-27 Werner Koch <wk@g10code.com> 597 598 * w32/main.c: Revamped the SetFocus stuff. It is all not that easy. 599 6002007-06-26 Werner Koch <wk@g10code.com> 601 602 * w32/Makefile.am (pinentry_w32_LDFLAGS): Add -mconsole again. 603 604 * w32/main.c (dlg_proc): Set focus. 605 (resize_button): New. No code yet. 606 (dlg_proc): Call it for the buttons. 607 (w32_cmd_handler): Restore old foreground window. 608 6092007-06-20 Werner Koch <wk@g10code.com> 610 611 * w32/Makefile.am (pinentry_w32_LDFLAGS): Remove -mconsole. 612 613 * w32/main.c (wchar_to_utf8): New. 614 (ok_button_clicked): Use it. 615 (utf8_to_wchar): New. 616 (set_dlg_item_text): New. 617 (dlg_proc): Use new function so that we are able to correctly 618 display all prompts. 619 (main): Load LockSetForegroundWindow. 620 (dlg_proc): Call LockSetForegroundWindow via its fnc ptr. 621 (center_window): New. Taken from GPGol. 622 (dlg_proc): Call it. 623 (w32_cmd_handler): Revamped the confirm mode. 624 6252007-06-18 Werner Koch <wk@g10code.com> 626 627 * w32/main.c (dlg_proc): Call LockSetForegroundWindow. 628 629 * Makefile.am (signed-dist, %.sig): Remove. 630 631 * autogen.sh: Modernized. 632 6332007-05-10 Marcus Brinkmann <marcus@g10code.de> 634 635 * pinentry/pinentry.h (pinentry_color_t): New type. 636 (struct pinentry): New members COLOR_FG, COLOR_FG_BRIGHT, 637 COLOR_BG, COLOR_SO. 638 * pinentry/pinentry.c (pinentry_parse_opts): Support new option --colors. 639 (parse_color): New function. 640 * pinentry/pinentry-curses.c (USE_COLORS): New macro. 641 (pinentry_color): New static variable. 642 (dialog_create): Redo color management. 643 644 * pinentry/pinentry-curses.c (dialog_create): Re-add calculation 645 of cancel button position. Adjust calculation of OK button 646 position if it is the only one used. 647 6482007-04-13 Marcus Brinkmann <marcus@g10code.de> 649 650 * qt/secqlineedit.h (SecQLineEdit::contextMenuEvent, 651 SecQLineEdit::createPopupMenu): Remove prototype. 652 * qt/secqlineedit.cpp (SecQLineEdit::contextMenuEvent, 653 SecQLineEdit::createPopupMenu): Remove implementation. 654 Submitted by Tobias Koenig <tokoe@kde.org>. 655 6562007-02-14 Werner Koch <wk@g10code.com> 657 658 * pinentry/pinentry.h (struct pinentry): Add TOUCH_FILE. 659 * pinentry/pinentry.c (option_handler): New option "touch-file". 660 (pinentry_have_display): Ignore an empty DISPLAY. 661 * pinentry/pinentry-curses.c (do_touch_file): New. 662 (curses_cmd_handler): Call it. 663 * configure.ac: Check for utime.h. 664 6652007-01-24 Werner Koch <wk@g10code.com> 666 667 * pinentry/pinentry.c (cmd_message): New. 668 (cmd_confirm): New command option --one-button. 669 (cmd_getpin): Zeroise ONE_BUTTON. 670 * pinentry/pinentry.h (struct pinentry): Add field ONE_BUTTON. 671 * gtk/pinentry-gtk.c (create_window): Take care of new option. 672 * gtk+-2/pinentry-gtk-2.c (create_window): Ditto. 673 * pinentry/pinentry-curses.c (dialog_create): Ditto. 674 (dialog_create, dialog_switch_pos): Allow CANCEL to be optional. 675 6762006-07-29 Marcus Brinkmann <marcus@g10code.de> 677 678 * secmem/secmem.c (init_pool): Close FD after establishing the 679 mapping. 680 6812005-09-28 Marcus Brinkmann <marcus@g10code.de> 682 683 * configure.ac (PINENTRY_GTK): Error out if iconv is not found but 684 needed. 685 686 * config.rpath: New file from gettext. Needed by iconv.m4. 687 6882005-07-11 Marcus Brinkmann <marcus@g10code.de> 689 690 * pinentry/pinentry-curses.c (dialog_switch_pos): Set the cursor 691 state to invisible before moving around. Move the cursor to the 692 beginning of the dialog buttons for accessibility. 693 6942005-06-16 Marcus Brinkmann <marcus@g10code.de> 695 696 * pinentry/pinentry-curses.c (dialog_run): Only convert pin if a 697 pin actually exists. 698 6992005-01-27 Werner Koch <wk@g10code.com> 700 701 Released 0.7.2. 702 703 * gtk+-2/Makefile.am: Removed padlock-keyhole.xpm. 704 705 * configure.ac: Use AC_GNU_SOURCE instead of the custom define. 706 Prefer gtk2 pinentry over qt. 707 7082005-01-21 Marcus Brinkmann <marcus@g10code.de> 709 710 * doc/pinentry.texi: Fix spelling errors. 711 Submitted by Ville Skyttä. 712 7132004-12-23 Werner Koch <wk@g10code.com> 714 715 * w32/pinentry-w32.rc: Remove the default texts for description, 716 prompt and error. Make it system modal. Enlarge the description 717 field. 718 7192004-12-22 Timo Schulz <twoaday@g10code.com> 720 721 * w32/main.c: Remove all helper functions and use a callback 722 to set the dialog items directly. 723 (dlg_proc): Set 'result' to -1 to indicate cancel. 724 (ok_button_clicked): Adjusted. Set 'result' to the len of 725 the PIN to indicate success. 726 7272004-12-22 Werner Koch <wk@g10code.com> 728 729 * w32/main.c: Simplified. 730 * w32/dialog.h, w32/dialog.c, w32/controller.h, w32/controller.c: 731 Removed 732 733 * w32/resource.h, w32/pinentry-w32.rc, w32/main.c, w32/dialog.h 734 * w32/dialog.c, w32/controller.h, w32/controller.c 735 * w32/Makefile.am: New. Based on Timo's work. 736 737 Update to automake 1.9. 738 739 * autogen.sh (configure_ac): Add --build-w32 option. 740 * Makefile.am: Support for the W32 pinentry. 741 * configure.ac: Ditto. Reformatted some error messages. 742 Define the usual conditionals for W32. 743 Check for a couple of more usually required headers. 744 745 * pinentry/pinentry.h (sleep) [W32]: New. 746 747 * pinentry/pinentry.c: Include langinfo.h only if available. 748 (pinentry_loop) [DOSISH]: Don't do uid check. 749 750 * secmem/util.c [DOSISH]: Disable UID stuff. 751 7522004-09-27 Marcus Brinkmann <marcus@g10code.de> 753 754 * acinclude.m4 (IU_LIB_NCURSES, IU_LIB_CURSES, IU_LIB_TERMCAP): 755 Moved to m4/curses.m4. 756 (AM_ICONV): Moved to m4/iconv.m4. 757 (AM_PATH_GLIB): Moved to m4/glib.m4. 758 (QT_FIND_FILE, QT_PATH_MOC, QT_PATH_X, QT_PRINT_PROGRAM, 759 QT_CHECK_VERSION, QT_PATH_1_3, QT_PATH, QT_CHECK_COMPILER_FLAG, 760 QT_REMOVE_FORBIDDEN, QT_VALIDIFY_CXXFLAGS, QT_CHECK_COMPILERS, 761 QT_CHECK_RPATH, QT_CHECK_LIBPTHREAD, QT_CHECK_PTHREAD_OPTION, 762 QT_CHECK_THREADING): Move to m4/qt.m4. 763 7642004-09-21 Marcus Brinkmann <marcus@g10code.de> 765 766 * qt/Makefile.am (pinentry_qt_LDFLAGS): Add $(QT_RPATH). 767 Requested by Leo Savernik <l.savernik@aon.at>. 768 7692004-09-02 Marcus Brinkmann <marcus@g10code.de> 770 771 * gtk+-2/padlock-keyhole.xpm: File removed. 772 * gtk+-2/pinentry-gtk-2.c (create_window): Use stock icon. 773 * gtk+-2/gtksecentry.h, gtk+-2/gtksecentry.c: Fix copyright notice. 774 775 Submitted by Albrecht Dress albrecht.dress@arcor.de. 776 7772004-08-17 Marcus Brinkmann <marcus@g10code.de> 778 779 * configure.ac: Invoke AC_PROG_LN_S. 780 (PINENTRY_DEFAULT): New variable. Substitute it. Fail if no 781 default can be determined. 782 * Makefile.am (install-exec-local): Install pinentry default link. 783 784 * configure.ac: Check for Gtk+-2. 785 * gtk+-2: New directory with gtk+-2 pinentry. 786 * gtk+-2/Makefile.am, gtk+-2/gtksecentry.h, gtk+-2/gtksecentry.c, 787 gtk+-2/pinentry-gtk-2.c, gtk+-2/padlock-keyhole.xpm: New files. 788 * Makefile.am (pinentry_gtk_2): New variable. 789 (SUBDIRS): Add pinentry_gtk_2. 790 791 Submitted by Albrecht Dress albrecht.dress@arcor.de. 792 7932004-08-04 Werner Koch <wk@g10code.de> 794 795 * pinentry/pinentry.c (usage): Print help to stdout. 796 7972004-07-30 Moritz Schulte <moritz@g10code.com> 798 799 * qt/Makefile.am (ncurses_include): Removed 800 -I$(top_srcdir)/pinentry ... 801 (AM_CPPFLAGS): ... added: -I$(top_srcdir)/pinentry. Thanks to 802 Peter Eisentraut. 803 804 * pinentry/pinentry.c (pinentry_utf8_to_local): Declare INPUT 805 const. 806 (pinentry_local_to_utf8): Likewise. 807 (pinentry_utf8_to_local, pinentry_local_to_utf8): Compile only, if 808 either Curses or GTK+ support is enabled. 809 * configure.ac: Do also check for libiconv when the GTK+ version 810 of pinentry is to be build. Define PINENTRY_CURSES, PINENTRY_GTK, 811 PINENTRY_QT depending on which versions of pinentry should be 812 build. 813 8142004-05-21 Marcus Brinkmann <marcus@g10code.de> 815 816 * acinclude.m4 (QT_CHECK_DIRECT): Removed. 817 (QT_PATH_1_3): Do never invoke QT_CHECK_DIRECT. 818 8192004-04-21 Werner Koch <wk@gnupg.org> 820 821 Released 0.7.1. 822 8232004-04-20 Werner Koch <wk@gnupg.org> 824 825 * secmem/secmem.c [!ORIGINAL_GPG_VERSION]: Include util.h for some 826 typedefs and protos. 827 (secmem_free, secmem_term): Use wipememory2 instead of memset. 828 829 * autogen.sh (configure_ac): Fixed version check (s/==/=/). 830 8312004-04-02 Thomas Schwinge <schwinge@nic-nac-project.de> 832 833 * autogen.sh: Added ACLOCAL_FLAGS. 834 8352004-02-23 Marcus Brinkmann <marcus@g10code.de> 836 837 * qt/main.cpp: Include "pinentry.h", not <pinentry.h>. 838 8392004-01-30 Werner Koch <wk@gnupg.org> 840 841 * configure.ac (fopencookie): Remove that test. 842 8432004-01-28 Moritz Schulte <mo@g10code.com> 844 845 * gtk/gtksecentry.c: 846 (gtk_secure_entry_key_press): Treat GDK_KP_Enter just like 847 GDK_Return. 848 8492004-01-18 Marcus Brinkmann <marcus@g10code.de> 850 851 * qt/secqstring.cpp: Do not include "private/qunicodetables_p.h". 852 (isRightToLeft): De-optimize direction query. 853 854 * qt/secqinternal_p.h, qt/secqinternal.cpp: New files. 855 * qt/Makefile.am (pinentry_qt_SOURCES): Add secqinternal_p.h 856 and secqinternal.cpp. 857 (EXTRA_DIST): Add README.SecQ. 858 * qt/secqlineedit.cpp: Include "secqinternal_p.h". 859 (drawContents): Use SecQSharedDoubleBuffer. 860 8612004-01-02 Werner Koch <wk@gnupg.org> 862 863 * configure.ac: Early check for a c++ compiler. 864 8652003-12-23 Werner Koch <wk@gnupg.org> 866 867 Released 0.7.0. 868 869 Added Manifest files to all directories. 870 8712003-12-22 Werner Koch <wk@gnupg.org> 872 873 * qt/main.cpp: Include errno.h. 874 (main): Translate the --display option to -display, so that the Qt 875 init code can grasp it. 876 877 * doc/ChangeLog: Removed and merged with this file. 878 * doc/pinentry.texi: Cleaned up. 879 * doc/fdl.texi: Removed. 880 881 * pinentry/pinentry.h (struct pinentry): Added LOCALE_ERR. 882 * gtk/pinentry-gtk.c (button_clicked): Set the LOCAE_ERR flag. 883 * pinentry/pinentry-curses.c (dialog_run): Ditto. 884 * pinentry/pinentry.c (cmd_getpin, cmd_confirm): Check this flag. 885 (pinentry_local_to_utf8): Release the correct buffer in the error 886 case. Print diagnostics. 887 (pinentry_utf8_to_local): Print diagnostics. 888 (pinentry_parse_opts): Make short options work. 889 (pinentry_utf8_to_local): Pass nl_langinfo to iconv_open. 890 891 * gtk/pinentry-gtk.c (button_clicked): Use the right value as 892 input for the conversion. 893 894 * pinentry/pinentry.c: New variable THIS_PGMNAME. 895 (pinentry_init): Add arg PGMNAME and store it. Use it at all 896 marked placed instead of the constant "pinentry". 897 (usage): Use it here too. 898 * curses/pinentry-curses.c (main): Call pinentry_init with our name. 899 * qt/main.cpp (main): Ditto. 900 * gtk/pinentry-gtk.c (main): Ditto. 901 902 * configure.ac: Check for mmap. 903 904 * secmem/util.h (wipememory2,wipememory,wipe): New. 905 * secmem/util.c (wipe): Removed. 906 * secmem/util.c (lower_privs, raise_privs): Commented out. 907 908 * pinentry/pinentry.c (pinentry_loop): Add paranoia check for 909 dropped privs. 910 911 * secmem/secmem.c (lock_pool): Cleanup syntax of cpp directives. 912 913 * gtk/pinentry-gtk.c (main): Print package name in the version line. 914 * curses/pinentry-curses.c (main): Ditto. 915 * qt/main.cpp (main): Ditto. Fixed typo. 916 917 * gtk/pinentry-gtk.c: Include memory.h. 918 9192003-12-20 Marcus Brinkmann <marcus@g10code.de> 920 921 * pinentry/pinentry.h (struct pinentry): New member PARENT_WID. 922 * pinentry/pinentry.c (pinentry): Add new member here. 923 (usage): Add --parent-wid. 924 (pinentry_parse_opts): Add case for "parent-wid". 925 (option_handler): Same here. 926 9272003-12-19 Marcus Brinkmann <marcus@g10code.de> 928 929 * pinentry/pinentry.c (cmd_setcancel): Use strcpy_escaped. 930 (cmd_setok): Likewise. 931 (cmd_setprompt): Likewise. 932 (pinentry_utf8_to_local): Don't use 933 nl_langinfo, but just lc_ctype directly. 934 * pinentry/pinentry.c (cmd_getpin): Do not convert passphrase to 935 UTF-8 here. 936 * gtk/pinentry-gtk.c (button_clicked): Convert passphrase to UTF8 937 here. 938 * pinentry/pinentry-curses.c (dialog_run): Likewise. 939 9402003-12-14 Marcus Brinkmann <marcus@g10code.de> 941 942 * pinentry/pinentry.c (pinentry_init): Register secmem_term as 943 atexit function. Set assuan malloc hooks to secmem. 944 (pinentry_parse_opts): Add break statement to silence gcc warning. 945 * pinentry/pinentry.c (cmd_getpin): If canceled, release and clear 946 PINENTRY->pin nevertheless. 947 948 * acinclude.m4 (qt_incdirs): Add /usr/include/qt3. 949 * qt/Makefile.am (pinentry_qt_SOURCES): Remove cppmemory.h, 950 cppmemory.cpp, pinentrycontroller.h, pinentrycontroller.cpp. 951 (nodist_pinentry_qt_SOURCES): Remove pinentrycontroller.moc.cpp. 952 (libcurses): Move ../pinentry/libpinentry.a from here to ... 953 (pinentry_qt_LDADD): ... here. Change order a bit to make it 954 work. 955 * qt/cppmemory.h, qt/cppmemory.cpp, qt/pinentrycontroller.h, 956 qt/pinentrycontroller.cpp: Files removed. 957 * qt/secqstring.h, qt/secqstring.cpp, secqlineedit.h, 958 secqlineedit.cpp: New files. 959 * qt/Makefile.am (pinentry_qt_SOURCES): Add secqstring.h, 960 secqstring.cpp, secqlineedit.h, and secqlineedit.cpp. 961 (nodist_pinentry_qt_SOURCES): Add secqlineedit.moc.cpp. 962 * qt/main.cpp: Do not include "memory.h" or "secmem-util.h", nor 963 <new> or "pinentrycontroller.h". Include <qapplication.h>, 964 <qmessagebox.h>, <qwidget.h> and "secqstring.h". Always include 965 <pinentry.h>. 966 [USE_KDE]: Remove all instances. 967 (curses_main): Function removed. 968 (my_new_handler): Likewise. 969 (qt_main): Likewise. 970 (qt_cmd_handler): New function. 971 (pinentry_cmd_handler): Define always (to qt_cmd_handler). 972 (main): Rewritten. 973 * qt/pinentrydialog.cpp: Do not include <qlineedit.h>, but 974 "secqlineedit.h". 975 (PinEntryDialog::PinEntryDialog): Make _edit a SecQLineEdit 976 object. Connect accepted SIGNAL to accept SLOT, and rejected 977 SIGNAL to reject SLOT. 978 (PinEntryDialog::setText): Make argument SecQString rather than 979 QString. 980 (PinEntryDialog::text): Likewise for return value. 981 * qt/pinentrydialog.h: Declare SecQString and SecQLineEdit classes. 982 (class PinEntryDialog): Disable property text (for now). Adjust 983 argument of setText and return value of text, as well as type of 984 _edit. 985 9862003-12-09 Werner Koch <wk@gnupg.org> 987 988 * README.CVS: New. 989 * Makefile.am (EXTRA_DIST): Add README.CVS 990 (ACLOCAL_AMFLAGS): New. 991 * configure.ac: Added min_automake_versions. 992 * autogen.sh: Revamped. 993 9942003-04-23 Steffen Hansen <steffen@klaralvdalens-datakonsult.se> 995 996 * configure.ac: Version 0.6.10-cvs 997 9982003-04-23 Steffen Hansen <steffen@klaralvdalens-datakonsult.se> 999 1000 * configure.ac: Version 0.6.9 1001 * qt/Makefile.am: Added moc files to DISTCLEANFILES 1002 * qt/pinentrycontroller.cpp: Don't spew assuan debug stuff out on stderr. 1003 10042003-03-26 Steffen Hansen <steffen@klaralvdalens-datakonsult.se> 1005 1006 * qt/cppmemory.cpp, qt/main.cpp: Only override array allocation 1007 operators. This should take care of the reported memory-problems 1008 and even make pinentry-qt use a bit less memory. 1009 10102003-02-15 Steffen Hansen <steffen@klaralvdalens-datakonsult.se> 1011 1012 * qt/pinentrydialog.h, qt/pinentrydialog.cpp: Added icons 1013 for error/non-error messages. 1014 10152003-02-07 Marcus Brinkmann <marcus@g10code.de> 1016 1017 Released 0.6.8. 1018 10192003-02-04 Steffen Hansen <steffen@klaralvdalens-datakonsult.se> 1020 1021 * qt/main.cpp: Work around '--display' option. This fixes 1022 the pinentry-qt problem reported by several people lately. 1023 10242003-01-24 Werner Koch <wk@gnupg.org> 1025 1026 * autogen.sh: Print a hint to use maintainer mode. 1027 10282002-12-24 Marcus Brinkmann <marcus@g10code.de> 1029 1030 * pinentry/pinentry-curses.c (collect_line): New function. 1031 (COPY_OUT, MAKE_BUTTON): New macros. 1032 (dialog_create): Rewrite the initializing code and the description 1033 calculation routine with word wrapping. 1034 10352002-11-20 Werner Koch <wk@gnupg.org> 1036 1037 Released 0.6.7. 1038 1039 * pinentry/pinentry-curses.c (dialog_create): Better truncate 1040 lines than to go into an infinite loop. We need to implement word 1041 wrap. 1042 (dialog_run): Add DIALOG_POS_NONE to switch so prevent a warning. 1043 10442002-11-12 Werner Koch <wk@gnupg.org> 1045 1046 * config.sub, config.guess: Updated from ftp.gnu.org/gnu/config 1047 to version 2002-11-08. 1048 10492002-11-09 Werner Koch <wk@gnupg.org> 1050 1051 Released 0.6.6. 1052 10532002-11-08 Werner Koch <wk@gnupg.org> 1054 1055 * pinentry/pinentry-curses.c (convert_utf8_string): Renamed to 1056 * pinentry/pinentry.c (pinentry_utf8_to_local): this. Changed 1057 callers. 1058 (pinentry_local_to_utf8): New. 1059 (cmd_getpin): Convert result back to UTF-8. 1060 * gtk/pinentry-gtk.c (create_utf8_label): New. 1061 (create_window): Use it here to set the prompts. 1062 10632002-11-06 Werner Koch <wk@gnupg.org> 1064 1065 * pinentry/pinentry-curses.c (dialog_run): Fixed retrun value tests 1066 for fopen. 1067 10682002-11-05 Werner Koch <wk@gnupg.org> 1069 1070 * secmem/util.c (init_uids): Make it a prototype. 1071 1072 * gtk/pinentry-gtk.c (enter_callback): Changed argument name to 1073 avoid shadowing warning. 1074 (create_window): Removed unused variable I. 1075 (ok): Not used, commented. 1076 1077 * pinentry/pinentry.c: Include headers for getpid and sleep 1078 prototypes. 1079 1080 * secmem/util.h: Correctly declare functions taking no args. 1081 1082 * gtk/pinentry-gtk.c: Move gtk headers to the top to avoid 1083 compiler warnings about shadowing index etc. 1084 1085 * curses/pinentry-curses.c: Include stdio.h for the printf prototype. 1086 1087 * pinentry/pinentry-curses.c (dialog_switch_pos): Return a value. 1088 1089 * pinentry/pinentry.c (pinentry_have_display): New. 1090 (pinentry_setbufferlen): Must return a value. Fixed documentation. 1091 (usage): Print a question mark as a substitue for the program name. 1092 1093 * gtk/pinentry-gtk.c (main): use it here instead of getenv(). 1094 * qt/main.cpp (main): Ditto. 1095 10962002-10-11 Werner Koch <wk@gnupg.org> 1097 1098 * configure.ac, Makefile.am: Added doc/ and tests for makeinfo 1099 1100 * doc/pinentry.texi, doc/Makefile.am: New. 1101 * doc/gpl.texi, doc/fdl.texi: Added these standard files. 1102 11032002-09-30 Werner Koch <wk@gnupg.org> 1104 1105 Released 0.6.5. 1106 1107 * qt/pinentrycontroller.cpp (optionHandler): Make sure that a 1108 value is returned. 1109 * configure.ac: Use -Wall also for C++. 1110 11112002-08-19 Steffen Hansen <steffen@hrhansen.dk> 1112 1113 * Relased 0.6.4. 1114 11152002-08-11 Steffen Hansen <steffen@hrhansen.dk> 1116 1117 * Adapted pinentry-qt to new CONFIRM spec. 1118 11192002-06-26 Werner Koch <wk@gnupg.org> 1120 1121 Release 0.6.3. 1122 11232002-05-24 Werner Koch <wk@gnupg.org> 1124 1125 * AUTHORS: Added Marcus 1126 * README: Fixed spelling of Quintuple-Agent. 1127 11282002-05-13 Marcus Brinkmann <marcus@g10code.de> 1129 1130 Released 0.6.2. 1131 1132 * configure.ac: Set version number to 0.6.2. 1133 * NEWS: Add information for 0.6.2. 1134 * README: Update for release. 1135 11362002-05-09 Marcus Brinkmann <marcus@g10code.de> 1137 1138 * configure.ac: Add option --enable-fallback-curses and bind it to 1139 the ncurses check. Add automake conditional 1140 BUILD_LIBPINENTRY_CURSES and FALLBACK_CURSES. Add preprocessor 1141 symbol FALLBACK_CURSES. 1142 1143 * curses/Makefile.am (AM_CPPFLAGS): Add $(NCURSES_INCLUDE). 1144 (LDADD): Add ../pinentry/libpinentry-curses.a. 1145 * curses/pinentry-curses.c: Include "pinentry-curses.h". 1146 Moved most of the meat to ... 1147 * pinentry/pinentry-curses.c: ... here. New file. Make all 1148 functions and global variables static. 1149 (dialog_cmd_handler): Rename to ... 1150 (curses_cmd_handler): ... this. 1151 * pinentry/pinentry-curses.h: New file. 1152 * pinentry/Makefile.am (noinst_LIBRARIES) 1153 [BUILD_LIBPINENTRY_CURSES]: Add libpinentry-curses.a. 1154 (libpinentry_curses_a_SOURCES): New target. 1155 1156 * gtk/Makefile.am (INCLUDES): Moved all to ... 1157 (AM_CPPFLAGS): ... here. 1158 [CURSES_FALLBACK]: Define ncurses_include and libcurses. 1159 (AM_CPPFLAGS): Add $(ncurses_include). 1160 (LDADD): Add $(libcurses). 1161 * gtk/pinentry-gtk.c: Rename TIMEOUT to TIME_OUT to avoid conflict 1162 with curses.h. 1163 [CURSES_FALLBACK]: Include "pinentry-curses.h". 1164 (button_clicked): Likewise. 1165 (create_window): Likewise. 1166 (cmd_handler): Renamed to ... 1167 (gtk_cmd_handler): ... this. 1168 (pinentry_cmd_handler): Set to gtk_cmd_handler. 1169 (main) [CURSES_FALLBACK]: Initialize GTK+ only if environment 1170 variable DISPLAY is set, otherwise fall back to curses dialog. 1171 1172 * pinentry/pinentry.h: Protect against multiple inclusion. 1173 11742002-05-09 Marcus Brinkmann <marcus@g10code.de> 1175 1176 * curses/pinentry-curses.c (dialog_create): Allow multi-line error 1177 texts. 1178 1179 * pinentry/pinentry.c (cmd_seterror): Call strcpy_escaped, rather 1180 than strcpy, to allow percent-escaping the error text. 1181 11822002-04-25 Steffen Hansen <steffen@hrhansen.dk> 1183 1184 * pinentry-qt: Use ok and cancel value if 1185 provided. 1186 11872002-04-25 Marcus Brinkmann <marcus@g10code.de> 1188 1189 * gtk/pinentry-gtk.c (create_window): Use ok and cancel value if 1190 provided. 1191 11922002-04-25 Marcus Brinkmann <marcus@g10code.de> 1193 1194 * qt/pinentrycontroller.h: New members _ok and _cancel. 1195 * qt/pinentrycontroller.cpp (registerCommands): Add SETOK and SETCANCEL. 1196 (assuanOk): New method. 1197 (assuanCancel): Likewise. 1198 11992002-04-25 Marcus Brinkmann <marcus@g10code.de> 1200 1201 * curses/pinentry-curses.c (dialog_create): Grok the new ok and 1202 cancel members to set the pbutton texts, rather than parsing the 1203 prompt in the confirm case. 1204 1205 * pinentry/pinentry.h (struct pinentry): Add new members ok and cancel. 1206 * pinentry/pinentry.c (register_commands): Add new commands SETOK 1207 and SETCANCEL to set button texts. 1208 (struct pinentry pinentry): Add initializers for new members. 1209 (cmd_setok): New function. 1210 (cmd_setcancel): Likewise. 1211 12122002-04-24 Marcus Brinkmann <marcus@g10code.de> 1213 1214 * curses/pinentry-curses.c (dialog_create): Add '<' and '>' around 1215 the user provided button texts. Replace sizeof by strlen to fix 1216 size calculation of ok and cancel button. 1217 12182002-04-23 Marcus Brinkmann <marcus@g10code.de> 1219 1220 * pinentry/pinentry.h (struct pinentry): New variables lc_ctype 1221 and lc_messages. 1222 * pinentry/pinentry.c (usage): New options --lc-ctype and 1223 --lc-messages. 1224 (pinentry_parse_opts): Likewise. 1225 (option_handler): Likewise. 1226 (struct pinentry pinentry): New initializers for new members. 1227 1228 * curses/pinentry-curses.c (convert_utf8_string): New function. 1229 (struct dialog): New members ok and cancel. 1230 (dialog_create): New variables ERR, DESCRIPTION, ERROR, PROMPT, 1231 OK, and CANCEL. Initialize them with the localised versions of 1232 the pinentry strings. If in confirm mode, split up the prompt at 1233 '|' and use the values as button texts. Use localised strings. 1234 (dialog_switch_pos): Use localised strings. 1235 (dialog_run): Free dialog strings. 1236 1237 * acinclude.m4 (AM_ICONV): New check from gettext. 1238 * configure.ac: Run AM_ICONV if curses pinentry is build. 1239 Don't check for inttypes.h, don't check size of unsigned int or 1240 unsigned long. 1241 (LIBCAP): Move check to interface independent part. 1242 12432002-04-21 Steffen Hansen <steffen@hrhansen.dk> 1244 1245 * Removed X11 dependency and use Qt for grabbing the keyboard. 1246 * Clear the lineedit before asking the user for the PIN. 1247 12482002-04-12 Steffen Hansen <steffen@hrhansen.dk> 1249 1250 * Enable pinentry-qt if Qt is found 1251 12522002-04-06 Marcus Brinkmann <marcus@g10code.de> 1253 1254 * qt: New directory. 1255 * qt/Makefile.am, qt/cppmemory.cpp, qt/main.cpp, 1256 pinentrycontroller.cpp, qt/pinentrycontroller.h, 1257 qt/pinentrydialog.cpp, qt/pinentrydialog.h: New file, copied from 1258 kde/. 1259 * kde: Directory removed. 1260 * kde/Makefile.am, kde/cppmemory.cpp, kde/main.cpp, 1261 kde/pinentry.desktop, kde/pinentrycontroller.cpp, 1262 kde/pinentrycontroller.h, kde/pinentrydialog.cpp, 1263 kde/pinentrydialog.h: Files removed. 1264 * acinclude.m4: Removed the KE checks and completely overhauled 1265 the Qt checks, putting all Qt checks in their own namespace QT_, 1266 and make it declare QT_-prefixed variables for linking and 1267 compilation. 1268 * configure.ac: Use the new Qt checks instead the KDE checks. 1269 Replace "kde" with "qt" everywhere. 1270 * Makefile.am: Replace "kde" with "qt" everywhere. 1271 12722002-04-06 Marcus Brinkmann <marcus@g10code.de> 1273 1274 * acinclude.m4: Reworked the Qt and KDE checks, cutting out a lot 1275 of dead and not-so-dead wood. Gave all KDE checks proper names. 1276 * configure.ac: Use the new names for the KDE checks. 1277 12782002-04-06 Marcus Brinkmann <marcus@g10code.de> 1279 1280 * kde/Makefile.am (EXTRA_DIST): Remove variable. 1281 (install-data-local): Remove target. 1282 (uninstall-local): Likewise. 1283 12842002-04-05 Marcus Brinkmann <marcus@g10code.de> 1285 1286 Released 0.6.0. 1287 1288 * configure.ac: Set version number to 0.6. 1289 * NEWS: Add information for 0.6.0. 1290 * secmem/Makefile.am (libsecmem_a_SOURCES): Replace secmem.h with memory. 1291 * kde/Makefile.am (pinentry_kde_SOURCES): Move 1292 pinentrydialog.moc.cpp and pinentrycontroller.moc.cpp to ... 1293 (nodist_pinentry_kde_SOURCES): ... this new target. 1294 12952002-04-05 Marcus Brinkmann <marcus@g10code.de> 1296 1297 * acinclude.m4: A lot of new checks more or less straight from KDE's 1298 admin/acinclude.m4.in. 1299 * configure.ac (AC_CANONICAL_HOST): Call that macro. 1300 (AC_CHECK_COMPILERS, AC_PATH_KDE): Call those macros if KDE 1301 pinentry is enabled. 1302 * kde/Makefile.am (CXXFLAGS, XXX_PREFIX, XXX_KDE_DEFINES, LIB_QT, 1303 LIB_KDECORE, LIB_KDEUI, KDE_RPATH, MOC, kde_appsdir): Variables removed. 1304 (AM_CPPFLAGS): Replace XXX_KDE_DEFINES by all_includes. 1305 (pinentry_kde_LDFLAGS): Add all_libraries. 1306 * README: Document that automatic check is not possible for KDE. 1307 13082002-04-05 Marcus Brinkmann <marcus@g10code.de> 1309 1310 * curses/pinentry-curses.c (dialog_run): Add handling for TAB key. 1311 (dialog_create): New variable description_x. Calculate dimension 1312 of multi-line description correctly. 1313 13142002-04-04 Marcus Brinkmann <marcus@g10code.de> 1315 1316 * pinentry/pinentry.h (struct pinentry): New members DISPLAY, 1317 TTYNAME and TTYTYPE. 1318 * pinentry/pinentry.c (pinentry): Likewise. 1319 * pinentry/pinentry.c: Include <string.h>. 1320 (usage): Add new options --display, 1321 --ttyname and --ttytype. 1322 (option_handler): Likewise. 1323 (pinentry_parse_opts): Likewise. 1324 1325 * curses/pinentry-curses.c (dialog_cmd_handler): Use 1326 PINENTRY->ttyname and PINENTRY->ttytype. 1327 13282002-03-30 Marcus Brinkmann <marcus@g10code.de> 1329 1330 * acinclude.m4: Add AM_PATH_GLIB and AM_PATH_GTK. 1331 13322002-03-29 Marcus Brinkmann <marcus@g10code.de> 1333 1334 * configure.ac: Choose a more appropriate AC_CONFIG_SRCDIR. 1335 13362002-03-29 Marcus Brinkmann <marcus@g10code.de> 1337 1338 * kde/Makefile.am (pinentry_kde_LDADD): Link with $(LIBCAP). 1339 * gtk/Makefile.am (install-exec-local): Moved to ... 1340 * Makefile.am (install-exec-local): ... here. 1341 13422002-03-29 Marcus Brinkmann <marcus@g10code.de> 1343 1344 * kde/Makefile.am (kde_appsdir): New variable. 1345 * kde/Makefile.am (install-data-local): Use DESTDIR. 1346 (uninstall-local): Likewise. 1347 13482002-03-29 Marcus Brinkmann <marcus@g10code.de> 1349 1350 Merge of the gpinentry and curses pinentry program into the 1351 pinentry distribution. For this, the structure of the repository 1352 has been thoroughly overhauled. Some of the changes: 1353 * secmem: New directory with secure memory allocation code. 1354 * pinentry: New directory with pinentry support library. 1355 * curses: New directory with curses frontend. 1356 * gtk: New directory with GTK+ frontend. 1357 * kde: New directory with only the core of the old kpinentry program. 1358 * admin: Directory removed. 1359 * po: Directory removed. 1360 * kpinentry: Directory removed. 1361 * doc: Directory removed. 1362 * jnlib: Directory removed.x 1363 1364 The changes in more detail: 1365 * AUTHORS: Add authors of other pinentry frontends. 1366 * ChangeLog: Add the one from gpinentry. 1367 * Makefile.am: Completely rewritten. 1368 * README: Add content. 1369 * TODO: Add content. 1370 * NEWS: New file from gpinentry. 1371 * THANKS: New file from gpinentry. 1372 * acinclude.m4: New file. 1373 * configure.ac: New file which configures for all frontends. 1374 * curses/Makefile.am, curses/pinentry-curses.c: New files for 1375 curses frontend. 1376 * gtk/Makefile.am, gtk/gtksecentry.c, gtk/gtksecentry.h, 1377 gtk/pinentry-gtk.c: New files, modified from gpinentry, for GTK+ 1378 frontend. 1379 * kde/Makefile.am, kde/cppmemory.cpp, kde/main.cpp, 1380 kde/pinentry.desktop, kde/pinentrycontroller.cpp, 1381 kde/pinentrycontroller.h, kde/pinentrydialog.cpp, 1382 kde/pinentrydialog.h: New files, modified from kpinentry, for KDE 1383 frontend. 1384 * pinentry/Makefile.am, pinentry/pinentry.c, pinentry/pinentry.h: 1385 New files containing pinentry support library, partly factored out 1386 from gpinentry. 1387 * secmem/Makefile.am, secmem/memory.h, secmem/secmem-util.h, 1388 secmem/secmem.c, secmem/util.c, secmem/util.h: New files 1389 containing secure memory allocation code common to all pinentry 1390 frontends. 1391 * Makefile.dist, acconfig.h, configure.files, configure.in.in: 1392 Files removed in favor of new configure.ac. 1393 * pinentry.lsm: Removed file never used. 1394 * stamp-h.in: Removed generated file. 1395 * admin/ChangeLog, admin/Makefile.common, admin/acinclude.m4.in, 1396 admin/am_edit, admin/am_edit.py, admin/conf.change.pl, 1397 admin/config.guess, admin/config.pl, admin/config.sub, 1398 admin/configure.in.min, admin/debianrules, admin/depcomp, 1399 admin/install-sh, admin/libtool.m4.in, admin/ltcf-c.sh, 1400 admin/ltcf-cxx.sh, admin/ltcf-gcj.sh, admin/ltconfig, 1401 admin/ltmain.sh, admin/missing, admin/mkinstalldirs, admin/ylwrap: 1402 Removed KDE build suite in favor of configure.ac. 1403 * doc/Makefile.am, doc/en/Makefile.am, doc/en/index.docbook: 1404 Removed files never used. 1405 * jnlib/ChangeLog, jnlib/Makefile.am, jnlib/argparse.c, 1406 jnlib/argparse.h jnlib/dotlock.c, jnlib/dotlock.h, 1407 jnlib/libjnlib-config.h, jnlib/logging.c, jnlib/logging.h, 1408 jnlib/mischelp.h, jnlib/stringhelp.c, jnlib/stringhelp.h, 1409 jnlib/strlist.c, jnlib/strlist.h, jnlib/types.h, jnlib/xmalloc.c, 1410 jnlib/xmalloc.h: Removed files no longer used. 1411 * kpinentry/Makefile.am, kpinentry/cppmemory.cpp, 1412 kpinentry/cppmemory.h, kpinentry/i18n.h, kpinentry/main.cpp, 1413 kpinentry/memory.h, kpinentry/pinentry.desktop, 1414 kpinentry/pinentrycontroller.cpp, kpinentry/pinentrycontroller.h, 1415 kpinentry/pinentrydialog.cpp, kpinentry/pinentrydialog.h, 1416 kpinentry/secmem.cpp, kpinentry/util.cpp, kpinentry/util.h: 1417 Removed files in favor of new files in kde/. 1418 * po/Makefile.am, po/pinentry.pot: Removed files never used. 1419 1420 * autogen.sh: New file. 1421 14222002-03-04 Werner Koch <wk@gnupg.org> 1423 1424 * gpinentry.c (enter_callback): New 1425 (create_window): Connect it to the entry field. 1426 14272002-02-18 Werner Koch <wk@gnupg.org> 1428 1429 Released 0.5.1. 1430 1431 * gpinentry.c (create_window): Add CONFIRM_MODE. 1432 (cmd_confirm): Implemented. 1433 1434 * assuan/: Updated from NewPG. 1435 14362002-01-20 Werner Koch <wk@gnupg.org> 1437 1438 * gpinentry.c (option_handler): New to allow changing of the grab 1439 status. 1440 (grab_keyboard): Shortcut this when global grab is not set. 1441 14422002-01-04 Werner Koch <wk@gnupg.org> 1443 1444 Released 0.5.0. 1445 1446 * configure.ac: Bumbed version 1447 1448 * util.h (xtoi_1, xtoi_2): New. 1449 * gpinentry.c (strcpy_escaped): New 1450 (cmd_setdesc, cmd_seterror): Use it here to allo multiline texts. 1451 1452 * gpinentry: Removed debugging outbut 1453 (create_window): Tweaked layout. 1454 14552001-12-07 Werner Koch <wk@gnupg.org> 1456 1457 New package gpinentry based on quintuple-agent. 1458 1459 Removed all stuff except for the basic configuration stuff and 1460 what is needed to build gpinentry. Also removed i18n support. 1461 * gpinentry.c: Renamed from secret-query.c 1462 14632001-02-12 Robert Bihlmeyer <robbe@orcus.priv.at> 1464 1465 * 1.0.0 released. Woo-hoo! 1466 1467 * configure.in, NEWS: Bumped version. 1468 14692001-02-04 Robert Bihlmeyer <robbe@orcus.priv.at> 1470 1471 * agent.c (make_tmpdir): Honor $TMPDIR. 1472 1473 (agent): Would exit on every minor problem. Now, we just close the 1474 offending connection. 1475 Ignore SIGPIPE, so that EPIPE will close connection. 1476 14772001-01-11 Robert Bihlmeyer <robbe@orcus.priv.at> 1478 1479 * secmem.c: Move one include statement so that the thing compiles. 1480 1481 * secret-query.c (main): Minor source cosmetics. 1482 14832000-11-16 Robert Bihlmeyer <robbe@orcus.priv.at> 1484 1485 * gtksecentry.c (gtk_secure_entry_insert_text): Secured a couple 1486 of memory (de)allocations that were missed. Thanks to John Steele 1487 <jhs28@eng.cam.ac.uk> for spotting these. 1488 14892000-11-10 Robert Bihlmeyer <robbe@orcus.priv.at> 1490 1491 * Thoughts: Removed in favor of new TODO. 1492 1493 * README: Remove content and refer to doc/manual.info instead. 1494 1495 * agent.c (do_get): Would burn badly on a premature exit of the 1496 query program (which would occur routinely if you selected /cancel/). 1497 14982000-10-25 Robert Bihlmeyer <robbe@orcus.priv.at> 1499 1500 * memory.h: Include sys/types.h for size_t. 1501 15022000-10-08 Robert Bihlmeyer <robbe@orcus.priv.at> 1503 1504 * README: Removed apology about missing documentation. 1505 Updated paragraph about Linux capability patch. 1506 Typo & Refill. 1507 15082000-10-03 Robert Bihlmeyer <robbe@orcus.priv.at> 1509 1510 * 0.9 released. 1511 1512 * Makefile.am (EXTRA_DIST): Distribute BUGS (the file, that is). 1513 1514 * configure.in, NEWS: Bumped version. 1515 1516 * Makefile.am, configure.in: Add debian subdir. 1517 1518 * README: Recommend GTK+. 1519 Update list of checked platforms. 1520 15212000-10-02 Robert Bihlmeyer <robbe@orcus.priv.at> 1522 1523 * secret-query.c (ok): Simplify. 1524 Put empty line between headers and secret. 1525 (usage): Document '--help' and '--version'. 1526 1527 * agent.c (do_get): Use enhanced secret-query output to fill in 1528 options. 1529 15302000-10-01 Robert Bihlmeyer <robbe@orcus.priv.at> 1531 1532 * secret-query.c (main): Clarify error. 1533 1534 * client.c (query_options): New global variable. 1535 (main): New option '--query-options' to pass options to the query 1536 program. 1537 (xgetpass): Use it. 1538 1539 * agent.c (main): New option '--query-options' to pass options to 1540 the query program. 1541 (do_get): Use 'query_options'. 1542 1543 * acconfig.h, configure.in: Add QUERY_PROGRAM definition. 1544 * client.c: Remove here. 1545 * agent.c (do_get): Use it here, too. 1546 1547 * secret-query.c (main): New option '--no-global-grab' introduced, 1548 that prevents keyboard grabbing unless the window has focus. 1549 15502000-09-11 Robert Bihlmeyer <robbe@orcus.priv.at> 1551 1552 * secret-query.c (usage): Add two missing pieces of "\n\". 1553 1554 * agent.c (main): --nofork is now the default, and the option is 1555 deprecated. New option --fork added to turn forking on again. 1556 Close stdout (and stderr unless debugging) even when not forking, 1557 so that normal usage inside eval is still possible. 1558 (agent): Exit gracefully on HUP, so that logging out now kills the 1559 agent. 1560 1561 * README (Contact Information): Old URL - duh! 1562 (Using Secret Agent): We no longer fork per default. 1563 1564 * Makefile.am (lib/libutil.a): New target, allows targets that not 1565 automatically recurse (but still depend on libutil.a) to succeed. 1566 15672000-07-20 Robert Bihlmeyer <robbe@orcus.priv.at> 1568 1569 * secret-query.c (usage): New function. 1570 (main): Parse options: debug, enhanced, help, version. 1571 Turn on locale support. 1572 If enhanced, insert widgets to ask for timeout and insurance. 1573 (ok): If enhanced, print more information on exit. 1574 (grab_keyboard): Die if grab was unsuccessful. 1575 15762000-05-31 Robert Bihlmeyer <robbe@orcus.priv.at> 1577 1578 * 0.8 released. 1579 1580 * configure.in, NEWS: Bumped version. 1581 1582 * Makefile.am (SUBDIRS): Include doc. 1583 1584 * configure.in, acconfig.h: Check for ssize_t. 1585 Check for vsnprintf(), strdup(). 1586 Generate doc/Makefile. 1587 1588 * apgp.c, agpg.c, agentlib.c, util.c: Include more stuff. 1589 1590 * agent.c (do_get): Use asprintf() instead of snprintf() so we 1591 don't need to roll our own for yet another function. 1592 Fix some includes. 1593 1594 * acinclude.m4: gettext macros copied from automake and fixed. 1595 15962000-05-30 Robert Bihlmeyer <robbe@orcus.priv.at> 1597 1598 * configure.in, Makefile.am: Properly include doc subdir. 1599 16002000-05-29 Robert Bihlmeyer <robbe@orcus.priv.at> 1601 1602 * configure.in, acconfig.h: Add test for XMESSAGE path. 1603 1604 * client.c (main): Decode command from string to integer code 1605 first, then evaluate that in ifs. 1606 1607 * secret-ask.c: New file, external ask-for-confirmation utility. 1608 1609 * configure.in, Makefile.am: Add secret-ask to programs being 1610 built when GTK is available. Rename QUERY to more descriptive 1611 GTK_PROGRAMS. 1612 1613 * agent.c (do_get): If GTK is available, try executing secret-ask 1614 first. 1615 Only put the comment into the insure-question if there is a 1616 comment. 1617 (main): --csh was missing from usage message. 1618 16192000-04-23 Robert Bihlmeyer <robbe@orcus.priv.at> 1620 1621 * secret-query.c (constrain_size): Lower window max_width to 1622 accommodate bugs in GTK and Scwm. 1623 1624 * agent.c (main): Set x_enabled if X appears to be available. 1625 Use it to selectively make FLAGS_INSURE supported. 1626 (do_get): Use it instead of testing at every call. 1627 (do_put): Requests containing unsupported flags fail. 1628 (forget_old_stuff): Would not set next_deadline correctly. 1629 (do_get): Implement FLAGS_INSURE. 1630 1631 * client.c (main): "list" format changed so that comment is to the 1632 far right. Display the deadline as proper date/time, too. 1633 16341999-11-11 Robert Bihlmeyer <robbe@orcus.priv.at> 1635 1636 * agent.c (next_deadline): New global variable, holds time when 1637 next secret has to be killed. 1638 (store): Keep it up-to-date. 1639 (forget_old_stuff): New function, reaps secrets ready to kill, 1640 keeps next_deadline updated. 1641 (agent): Use it on all secrets, whenever a deadline is active. 1642 16431999-11-08 Robert Bihlmeyer <robbe@orcus.priv.at> 1644 1645 * agent.h (request_put): Add flags, deadline. Increase REQUEST_MAGIC. 1646 (reply_get): Ditto, and increase REPLY_MAGIC. 1647 * agent.c (store): Store flags, deadline in reply. 1648 (do_put): Hand flags, deadline from request on to store(). 1649 (do_get): Store on-demand queried secrets without deadline or 1650 special flags, for now. 1651 (agent): Do not ignore obsolete clients, return an error reply. 1652 * agentlib.c (agent_put): Add flags, deadline arguments, and copy 1653 them into the request. 1654 * agentlib.h (agent_put): Update prototype. 1655* * client.c (main): Added --time-to-live (-t) and --insure (-i) 1656 options, influencing PUT's deadline and flags, respectively. 1657 (main): Change list format to include new attributes. 1658 16591999-11-05 Robert Bihlmeyer <robbe@orcus.priv.at> 1660 1661 * configure.in: <getopt.h> check had redundant definition. 1662 * acconfig.h: Remove here, too. 1663 1664 * configure.in: Check for <inttypes.h>. If not found, check for 1665 unsigned {int, long} sizes. 1666 * agent.h: Either include <inttypes.h>, or try to define uint32_t 1667 yourself. 1668 Need to include "config.h". 1669 16701999-11-04 Robert Bihlmeyer <robbe@orcus.priv.at> 1671 1672 * Makefile.am (signed-dist): New rule, generates sig for dist. 1673 (%.sig): New rule, for detached signatures in general. 1674 1675 * configure.in: Check for ulong. 1676 * acconfig.h: Document it. 1677 * secmem.c: Unconditionally defining it is no longer necessary 1678 here. But do include <sys/types.h> in all cases. 1679 1680 * 0.7 released. 1681 1682 * secmem.c: ulong is not defined on all systems. 1683 1684 * agent.h: <inttypes.h> should define `uint32_t' as per Unix98, so 1685 we use that. 1686 16871999-11-02 Robert Bihlmeyer <robbe@orcus.priv.at> 1688 1689 * agent.h: Augmented requests and replies with magic numbers. 1690 Data structures heavily commented. 1691 All structures and enums typedef'd. 1692 * agent.c: Adapted. 1693 (store): Set magic number in stored reply. 1694 (do_put): Set magic number in reply. 1695 (do_delete): Ditto. 1696 (do_list): Ditto. 1697 (agent): Check magic number in request. 1698 * agentlib.c: Adapted. 1699 (send_request): Set magic number in request. Check it in reply. 1700 * agentlib.h: Adapted. 1701 * agpg.c: Adapted. 1702 * apgp.c: Adapted. 1703 * client.c: Adapted. 1704 17051999-10-31 Robert Bihlmeyer <robbe@orcus.priv.at> 1706 1707 * secmem.c: Instead of defining ulong directly, include 1708 <sys/types.h> 1709 1710 * secret-query.c (constrain_size): New function, puts constrains 1711 on size of toplevel window. 1712 (grab_keyboard): Removed protection against multiple calls. 1713 (ungrab_keyboard): New function, cancelling a keyboard grab. 1714 (main): Hang `grab_keyboard' onto map-event which makes it 1715 actually work, hang `ungrab_keyboard' onto unmap-event. 1716 Hang `constrain_size' onto size-request. 1717 1718 * secmem.c: ulong was undefined on some systems. 1719 17201999-10-19 Robert Bihlmeyer <robbe@orcus.priv.at> 1721 1722 * Makefile.am (install-exec-local): Ignore setcap errors. 1723 1724 * apgp.c: New program, based on agpg.c, but for pgp2.6. 1725 * Makefile.am (bin_PROGRAMS, apgp_SOURCES): Added it. 1726 1727 * agpg.c (GPG): New constant. 1728 (find_id, main): Use it throughout. 1729 (find_id): Forgot to pclose on success. 1730 1731 * secret-query.c (main): Don't expand anything. 1732 Use a button box for the buttons. 1733 Prompt label can be overridden from the commandline. 1734 * agent.c (do_get): Make spawned secret-query show the id. 1735 * client.c (xgetpass): Pass prompt to secret-query. 1736 (main): Include id in xgetpass prompt. 1737 17381999-10-14 Robert Bihlmeyer <robbe@orcus.priv.at> 1739 1740 * configure.in: setcap must be searched outside the usual user 1741 PATH, too. 1742 * Makefile.am (install-exec-local): Set cap_ipc_lock permitted on 1743 installed binaries, if possible. 1744 1745 * agent.c (xdup2): New function, dup2 with error handling. 1746 (move_fd): New function, moves fds. 1747 (store): New function, abstracted out from do_put. 1748 (do_put): Use it. 1749 (do_get): If secret was not found, and DISPLAY is set, try to 1750 query the user about it. If successful, store it. 1751 (main): Route standard file descriptors to /dev/null rather than 1752 just closing them. The latter would confuse children. 1753 17541999-10-13 Robert Bihlmeyer <robbe@orcus.priv.at> 1755 1756 * gtksecentry.c, gtksecentry.h: New files, being slightly modified 1757 versions of GTK+'s gtkentry.[ch], spiffed up to use secure memory. 1758 * secret-query.c (ok, unselect, main): Replace GtkEntry with 1759 GtkSecureEntry. 1760 (main): Initialize secure memory. 1761 * Makefile.am (secret_query_SOURCES): Added gtksecentry.[ch]. 1762 1763 * README (Security): New chapter. 1764 1765 * configure.in, acconfig.h: Check for POSIX capabilities, and the 1766 setcap program. 1767 * Makefile.am: Link LIBCAP to those binaries using secmem.c. 1768 1769 * util.h: Include <sys/types.h> for size_t. 1770 17711999-09-21 Robert Bihlmeyer <robbe@orcus.priv.at> 1772 1773 * secmem.c: Synced with gnupg-1.0 (top new feature: capabilities). 1774 (log_fatal): New function, logs to stderr, and dies. 1775 17761999-09-08 Robert Bihlmeyer <robbe@orcus.priv.at> 1777 1778 * secmem.c (log_info): New function, logs to stderr. 1779 1780 * agent.c (agent): select() expects the number of fds, not the 1781 highest fd. So remember that number. 1782 1783 * agent.c (agent): Don't use FD_SETSIZE, which is not defined on 1784 all systems. Remember the number of the highest descriptor 1785 instead. 1786 1787 * configure.in: Replace getline() instead of getdelim() because 1788 this is the function we really need. Still check for getdelim(), 1789 though - there are systems out there where this is provided, but 1790 getline() is not. 1791 17921999-09-01 Robert Bihlmeyer <robbe@orcus.priv.at> 1793 1794 * 0.6 released. 1795 1796 * configure.in: Bump version. 1797 1798 * NEWS: Updated. 1799 18001999-08-31 Robert Bihlmeyer <robbe@orcus.priv.at> 1801 1802 * util.c (init_uids, lower_privs, raise_privs, drop_privs): New 1803 functions, for setuid binaries, extracted from agent.c. 1804 * util.h: Add prototypes for them. 1805 * agpg.c (main): Use them. 1806 * client.c (main): Ditto. 1807 * agent.c (main): Ditto. Removed code that did the same. 1808 Unconditionally include "asprintf.h" (it protects itself now). 1809 18101999-08-25 Robert Bihlmeyer <robbe@orcus.priv.at> 1811 1812 * Makefile.am (SUBDIRS): Process . before test so that "make 1813 check" always builds all in . first. 1814 18151999-08-21 Robert Bihlmeyer <robbe@orcus.priv.at> 1816 1817 * secret-query.c: Include "config.h". 1818 1819 * agent.h (reply_list_entry, reply_list): New reply structures. 1820 * agent.c (send_list_entry): New function. 1821 (do_list): First send number of entries, then each entry via 1822 send_list_entry(). 1823 * agentlib.c (agent_list): Read entries returned by LIST request. 1824 * client.c (main): Output all entries returned by agent_list(). 1825 1826 * agentlib.c (agent_put): Don't construct PUT request in insecure 1827 stack space. 1828 18291999-08-20 Robert Bihlmeyer <robbe@orcus.priv.at> 1830 1831 * NEWS: Bump patchlevel. 1832 1833 * configure.in: Bump patchlevel. 1834 Check for missing setenv(). 1835 18361999-08-09 Robert Bihlmeyer <robbe@orcus.priv.at> 1837 1838 * configure.in: Check for strsignal(). 1839 1840 * client-test: Obsoleted by test/client. 1841 1842 * Makefile.am (SUBDIRS): New subdirectory. 1843 * configure.in (AC_OUTPUT): Add here, too. 1844 1845 * 0.5 released. 1846 1847 * README: Explain why secret-client will not output secrets to a 1848 tty, and mention the cat-trick. 1849 1850 * agent.c (main): If seteuid is not available, don't use it and 1851 issue a warning if running setuid. 1852 1853 * configure.in: Run together two REPLACE_FUNCS. 1854 Check for seteuid. 1855 1856 * client-test: Mask out insecure memory warnings. 1857 1858 * agentlib.c (send_request): Let the calling functions reserve 1859 space for the reply, but offer a simple way for simple requests. 1860 (agent_get): Allocate secure memory. 1861 1862 * agent.c (main): Moved secmem_init() after the fork, since that 1863 seemingly munlock's all pages. 1864 Drop privileges just in case somebody wants to install this 1865 suid-root. 1866 Flush stdout. 1867 1868 * agpg.c (find_id): Would reorder arguments. 1869 Initialize opt_version. 1870 (main): Initialize secure memory. 1871 1872 * Makefile.am (agpg_SOURCES): Link with secure memory module. 1873 1874 * client.c (usage): Fixed another program name reference. 1875 18761999-08-06 Robert Bihlmeyer <robbe@orcus.priv.at> 1877 1878 * configure.in: Conditionally define HAVE_GTK. 1879 * acconfig.h: Add here too. 1880 1881 * client.c (xgetpass): Use "secret-query" only if it was built. 1882 (main): Don't output secret (GET command) to ttys. 1883 1884 * agpg.c (find_id): Also print own version if "--version" is given. 1885 (main): Check agent_init() errors. 1886 Print error if exec fails. 1887 1888 * agent.c (main): Added an option to produce csh-compatible 1889 output. 1890 1891 * agent.c, client.c: Forgot the terminating NULL in long options. 1892 Fixed the program names in usage and version output. 1893 1894 * agent.c (create_socket): AF_UNIX and PF_UNIX are Unix98, so 1895 that's what we use. AF_LOCAL, PF_LOCAL removed. 1896 * agentlib.c (agent_init): Ditto. 1897 18981999-08-05 Robert Bihlmeyer <robbe@orcus.priv.at> 1899 1900 * 0.4 released. 1901 1902 * configure.in: Bumped version. 1903 Check for missing getdelim. 1904 1905 * cgpg: Removed, obsoleted by agpg. 1906 * Makefile.am: Here, too. 1907 1908 * agpg.c (find_id): New function. 1909 (main): Use it. 1910 1911 * Makefile.am (INCLUDES): Put GTK_FLAGS and GLIB_FLAGS here. It 1912 is the easiest way for sources needing it, and it won't hurt those 1913 that don't. 1914 (agent.o): Explicit command removed accordingly. 1915 19161999-08-04 Robert Bihlmeyer <robbe@orcus.priv.at> 1917 1918 * configure.in: Need double quoting in nested AC_MSG_WARN. 1919 1920 * client.c (xgetpass): If no tty is available, but a DISPLAY is, 1921 fork off "secure-query" to read the secret. 1922 Put the fgets into a loop that keeps reading until all of the 1923 secret is read. 1924 1925 * client-test: Unset DISPLAY, so that "secret-query" is never used. 1926 19271999-08-03 Robert Bihlmeyer <robbe@orcus.priv.at> 1928 1929 * agpg.c: New file, first cut at a C version of the gpg wrapper, 1930 written in a hurry (20 keys waiting to be signed, and a growling 1931 stomach). 1932 * Makefile.am: Add it to built programs. 1933 (LDADD): New default. 1934 (secret_client_LDADD): Removed, since it was identical to default. 1935 19361999-08-01 Robert Bihlmeyer <robbe@orcus.priv.at> 1937 1938 * secret-query.c: New program, queries the user for a password. 1939 * Makefile.am (bin_PROGRAMS): Added it. 1940 * configure.in: Check for GTK+, build "secret-query" only when 1941 that is available. 1942 1943 * cgpg: Extra argument for ID is no longer necessary. cgpg will 1944 scan the gpg args for switches that affect user-id, and determine 1945 the right key itself. Per convention, the key-id is used by "GET". 1946 1947 * configure.in: The project name is now "secret-agent". 1948 1949 * Makefile.am: "agent" & "client" renamed to "secret-agent" & 1950 "secret-client", respectively. 1951 * client-test: Adapt to new names. 1952 1953 * Thoughts: Removed discussion of other names. 1954 Added indication of which things already work. 1955 1956 * agent.c (make_tmpdir): Removed occurrence of "gpg-agent." 1957 1958 * README: First proper version. 1959 1960 * client-test: Context diffs are more portable then unified diffs. 1961 1962 * agent.c, agent.h, agentlib.c, agentlib.h, client.c, memory.h, 1963 util.c, util.h: Banner updated to new name. 1964 19651999-07-29 Robert Bihlmeyer <robbe@orcus.priv.at> 1966 1967 * configure.in: Check for missing asprintf. 1968 Check if -lsocket is needed. 1969 1970 * secmem.c (secmem_dump_stats): Replace usage of ulong. 1971 1972 * Makefile.am (INCLUDES): Add the lib subdirectory to include search. 1973 1974 * agent.c: Forgot to include <string.h>. 1975 Include RYO asprintf header if this function is missing. 1976 For the sake of compatibility, provide a definition for AF_LOCAL, 1977 PF_LOCAL, if missing. 1978 * agentlib.c: Ditto. 1979 19801999-07-28 Robert Bihlmeyer <robbe@orcus.priv.at> 1981 1982 * Makefile.am (client_SOURCES): Add "secmem.c", "memory.h". 1983 1984 * client.c (xgetpass): Use secmem_malloc() instead of RYO. 1985 (main): Init and shutdown secmem. 1986 19871999-07-27 Robert Bihlmeyer <robbe@orcus.priv.at> 1988 1989 * Makefile.am (agent_SOURCES): Add "secmem.c", "i18n.h", "memory.h". 1990 (client_SOURCES): Add "i18n.h". 1991 1992 * client.c (main): Exit on agent_init() failure. 1993 1994 * agent.c (main): Init secmem. 1995 Make --debug switch cumulative. 1996 (cleanup): Shutdown secmem. 1997 (do_put): Use secmem for storage of secrets. 1998 (do_delete): Use secmem_free(). Since this wipes the memory on its 1999 own, wipe() is superflous now. 2000 (agent): Use secmem for inbound requests. 2001 (delete_secret): New function, takes part of do_delete's 2002 functionality. 2003 (do_put): Use it to remove old versions stored under the same id. 2004 (do_delete): Use it to delete secrets. 2005 2006 * memory.h: New file. 2007 2008 * secmem.c: New file, snarfed from GnuPG and modified slightly. 2009 2010 * acinclude.m4: New file. 2011 * configure.in: (ALL_LINGUAS): Expanded list of available 2012 languages. Most of them only have a few translations from gpg, 2013 tough ... 2014 getopt_long test was commented out for debugging, 2015 and left such. Fixed. 2016 Check for mlock. 2017 * acconfig.h: Comment HAVE_BROKEN_MLOCK. 2018 2019 * cgpg: A space was missing. 2020 2021 * i18n.h: New file, centralizing the gettext macro defs. 2022 2023 * agent.c (BLIND): New macro, that blinds out a secret if debug 2024 level is too low. 2025 (do_put): Use it. 2026 (do_get): Use it. 2027 Include i18n.h. 2028 2029 * agentlib.c: Include i18n.h 2030 2031 * client.c (usage): New function. 2032 Usage-message made gettext-friendly. 2033 (xgetpass): Use perror() instead of fprintf(). 2034 (main): Use it. 2035 Make comment an optional argument of PUT. 2036 Include i18n.h. 2037 20381999-07-26 Robert Bihlmeyer <robbe@orcus.priv.at> 2039 2040 * Makefile.am (client_LDADD): Add lib/libutil.a for portability. 2041 (agent_LDADD): Ditto. 2042 (SUBDIRS): Add lib directory. 2043 (bin_SCRIPTS): New with cgpg, so it gets installed, too. 2044 2045 * configure.in: Add lib/Makefile to output. 2046 20471999-07-24 Robert Bihlmeyer <robbe@orcus.priv.at> 2048 2049 * cgpg: New file. 2050 * Makefile.am (EXTRA_DIST): Added it. 2051 2052 * agent.c: Moved inclusion of config.h before inclusion of 2053 libintl.h since the latter needs HAVE_LC_MESSAGE. 2054 * client.c: Ditto. 2055 * clientlib.c: Ditto. 2056 2057 * client-test: Update for new client semantics. 2058 2059 * client.c (check_status): Use debugmsg(). Do nothing if not 2060 debugging. 2061 (xgetpass): New function, getpass replacement that uses mlock'ed 2062 memory. 2063 (main): PUT now asks for the secret rather then getting it from 2064 the commandline. 2065 GET prints only the secret to stdout. 2066 2067 * configure.in: Rearranged. 2068 Check for socklen_t. 2069 * acconfig.h: Added a definition for it. 2070 2071 * client.c: Include packaged getopt.h if the system doesn't provide 2072 one. 2073 * agent.c: Ditto. 2074 (create_socket): Replace AF_FILE, PF_FILE with AF_LOCAL, PF_LOCAL 2075 for portability. 2076 * agentlib.c (agent_init): Ditto. 2077 Explicitly cast addr to a sockaddr pointer. 2078 2079 * Makefile.am (client_LDADD): Added @INTLLIBS@. 2080 (agent_LDADD): Ditto. 2081 20821999-07-19 Robert Bihlmeyer <robbe@orcus.priv.at> 2083 2084 * configure.in: Check for getopt.h and getopt_long. 2085 * acconfig.h (HAVE_GETOPT_H): New define. 2086 * lib/getopt.c, lib/getopt1.c, lib/getopt.h: Added. 2087 20881999-07-18 Robert Bihlmeyer <robbe@orcus.priv.at> 2089 2090 * 0.2 released. 2091 2092 * NEWS: Updated. 2093 2094 * Makefile.am (agent.o): Mentioning the source explicitly does not 2095 work for srcdir!=builddir. 2096 2097 * client.c (main): Function arguments are not always evaluated in 2098 order, so drop the neat ++optind in favor of optind+1, optind+2, 2099 etc. 2100 2101 * configure.in: Upped version. 2102 21031999-06-28 Robert Bihlmeyer <robbe@orcus.priv.at> 2104 2105 * util.h: Added multi-inclusion guard. 2106 2107 * agent.c Include "util.h". 2108 (main): Forgot to exit at end. 2109 (do_delete): Assume that value is a string and wipe it accordingly. 2110 2111 * configure.in (--enable-debug): New switch. 2112 2113 * agent.h (status_t): Added STATUS_COMM_ERR code. 2114 Added multi-inclusion guard. 2115 2116 * client.c (main): Abstracted out most functionality into a 2117 function library, namely: 2118 * agentlib.c: New file. 2119 * agentlib.h: New file. 2120 * Makefile.am (client_SOURCES): Added agentlib.c, agentlib.h. 2121 2122 * Makefile.am (INCLUDES): GLIB_CFLAGS moved again, this time to 2123 the agent.o target. 2124 21251999-06-15 Robert Bihlmeyer <robbe@orcus.priv.at> 2126 2127 * 0.1 released. 2128 2129 * Makefile.am (agent_CFLAGS): Removed - did not work. 2130 (INCLUDES): Moved the GLIB stuff here. 2131 21321999-06-14 Robert Bihlmeyer <robbe@orcus.priv.at> 2133 2134 * configure.in (ALL_LINGUAS): Added `de'. 2135 2136 * agent.c (do_get): Added more debugmsgs. 2137 (do_put): Wouldn't allocate enough for `value'. 2138 (main): New option "--nofork" prevents forking. 2139 Use macros for the std filedescriptor numbers. 2140 Only close stderr if not debugging. 2141 (main): Make Usage string gettext-friendly. 2142 2143 * client-test (cleanup): New function. 2144 Call it on shell exit. 2145 (client): New function. 2146 Use it instead of calling client binary directly. 2147 diff client output with expected one in GET testcases. 2148 21491999-06-13 Robert Bihlmeyer <robbe@orcus.priv.at> 2150 2151 * agent.c (failed_reply): New constant. 2152 (do_list): Use it. 2153 (do_put): The hash key was overwritten - strdup it. 2154 Construct a GET reply and save that in the hash. 2155 (do_get): Just send the preconstructed reply if the id is present, 2156 and failed_reply otherwise. 2157 (do_delete): Actually free the hashed stuff. 2158 2159 * client.c: Exit with error if agent returned STATUS_FAIL. 2160 2161 * Makefile.am (EXTRA_DIST): Added autogen.sh, Thoughts, 2162 client-test. 2163 (TESTS): Added client-test. 2164 (AUTOMAKE_OPTIONS): Added gnits. 2165 2166 2167 Copyright 2002, 2003, 2010 g10 Code GmbH 2168 2169 This file is free software; as a special exception the author gives 2170 unlimited permission to copy and/or distribute it, with or without 2171 modifications, as long as this notice is preserved. 2172 2173 This file is distributed in the hope that it will be useful, but 2174 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the 2175 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2176