Applied patch from Bernhard Herzog to fix the Crash in Qt.
[pinentry.git] / ChangeLog
1 2007-11-19  Werner Koch  <wk@g10code.com>
2
3         * doc/pinentry.texi (Protocol): Typo fixes by Bernhard Herzog.
4         Describe SETQUALITYBAR_TT.
5
6 2007-11-19  Bernhard Herzog  <bernhard.herzog@intevation.de>  (wk)
7
8         * qt/pinentrydialog.cpp (PinEntryDialog): Fixed crash
9         
10 2007-11-19  Werner Koch  <wk@g10code.com>
11
12         * gtk+-2/pinentry-gtk-2.c (create_window): Use again map-event and
13         unmap-event as this works on my setup far more reliable than
14         expose-event/no-expose-event.
15
16         * gtk+-2/gtksecentry.c (get_cursor_time): s/time/blinktime/ t
17         avoid shadowing warning.
18
19         * pinentry/pinentry.h (struct pinentry): Change QUALITY_BAR to a
20         char ptr.
21         (struct pinentry): Add QUALITY_BAR_TT.
22         * pinentry/pinentry.c (cmd_setqualitybar): Allow to set a label text.
23         (cmd_setqualitybar_tt): New.
24         * gtk+-2/pinentry-gtk-2.c (create_window): Take label and tooltip
25         from global.
26         * qt/pinentrydialog.h (setQualityBar, setQualityBarTT)
27         (_quality_bar_label): New.
28         * qt/pinentrydialog.cpp (setQualityBar, setQualityBarTT): New.
29         (PinEntryDialog): Remove setting of tooltip.
30
31         * qt/main.cpp (qt_cmd_handler): Propagate quality bar label and tootip.
32
33 2007-11-19  Bernhard Herzog  <bernhard.herzog@intevation.de>  (wk)
34
35         * qt/pinentrydialog.cpp (PinEntryDialog): Move the quality bar
36         below the text entry and align them properly.  Show a tooltip.
37         * gtk+-2/pinentry-gtk-2.c (create_window): Ditto.  Don't let it
38         change its height.
39         (QUALITYBAR_EMPTY_TEXT): New.
40
41 2007-09-18  Werner Koch  <wk@g10code.com>
42
43         * qt/secqlineedit.h (SecQLineEdit): New signal textModified.
44         * qt/secqlineedit.cpp (finishChange): Emit it.
45         * qt/pinentrydialog.cpp (setPinentryInfo): New.
46         (PinEntryDialog): Add arg ENABLE_QUALITY_BAR.
47         * qt/pinentrydialog.h (setPinentryInfo): New.
48         (PinEntryDialog): Add arg ENABLE_QUALITY_BAR.
49
50         * pinentry/pinentry.h (struct pinentry): Add member QUALITY_BAR
51         and CTX_ASSUAN.
52         * pinentry/pinentry.c (cmd_setqualitybar): New.
53         (copy_and_escape): New.
54         (pinentry_inq_quality): New.
55
56 2007-07-09  Werner Koch  <wk@g10code.com>
57
58         * doc/pinentry.texi: Fixed direntry syntax.
59
60         * configure.ac: Add --without-libcap.  From the Gentoo patch archive.
61
62         * gtk+-2/pinentry-gtk-2.c (create_window): Use expose-event
63         instead of map-event.  From Alon Bar-Lev.
64
65 2007-07-06  Werner Koch  <wk@g10code.com>
66
67         Released 0.7.3.
68
69         * config.sub, config.guess: Updated from current Savannah CVS.
70
71 2007-06-27  Werner Koch  <wk@g10code.com>
72
73         * w32/main.c: Revamped the SetFocus stuff.  It is all not that easy.
74
75 2007-06-26  Werner Koch  <wk@g10code.com>
76
77         * w32/Makefile.am (pinentry_w32_LDFLAGS): Add -mconsole again.
78
79         * w32/main.c (dlg_proc): Set focus.
80         (resize_button): New.  No code yet.
81         (dlg_proc): Call it for the buttons.
82         (w32_cmd_handler): Restore old foreground window.
83
84 2007-06-20  Werner Koch  <wk@g10code.com>
85
86         * w32/Makefile.am (pinentry_w32_LDFLAGS): Remove -mconsole.
87
88         * w32/main.c (wchar_to_utf8): New.
89         (ok_button_clicked): Use it.
90         (utf8_to_wchar): New.
91         (set_dlg_item_text): New.
92         (dlg_proc): Use new function so that we are able to correctly
93         display all prompts.
94         (main): Load LockSetForegroundWindow.
95         (dlg_proc): Call LockSetForegroundWindow via its fnc ptr.
96         (center_window): New.  Taken from GPGol.
97         (dlg_proc): Call it.
98         (w32_cmd_handler): Revamped the confirm mode.
99
100 2007-06-18  Werner Koch  <wk@g10code.com>
101
102         * w32/main.c (dlg_proc): Call LockSetForegroundWindow.
103
104         * Makefile.am (signed-dist, %.sig): Remove.
105
106         * autogen.sh: Modernized.
107
108 2007-05-10  Marcus Brinkmann  <marcus@g10code.de>
109
110         * pinentry/pinentry.h (pinentry_color_t): New type.
111         (struct pinentry): New members COLOR_FG, COLOR_FG_BRIGHT,
112         COLOR_BG, COLOR_SO.
113         * pinentry/pinentry.c (pinentry_parse_opts): Support new option --colors.
114         (parse_color): New function.
115         * pinentry/pinentry-curses.c (USE_COLORS): New macro.
116         (pinentry_color): New static variable.
117         (dialog_create): Redo color management.
118
119         * pinentry/pinentry-curses.c (dialog_create): Re-add calculation
120         of cancel button position.  Adjust calculation of OK button
121         position if it is the only one used.
122
123 2007-04-13  Marcus Brinkmann  <marcus@g10code.de>
124
125         * qt/secqlineedit.h (SecQLineEdit::contextMenuEvent,
126         SecQLineEdit::createPopupMenu): Remove prototype.
127         * qt/secqlineedit.cpp (SecQLineEdit::contextMenuEvent,
128         SecQLineEdit::createPopupMenu): Remove implementation.
129         Submitted by Tobias Koenig <tokoe@kde.org>.
130
131 2007-02-14  Werner Koch  <wk@g10code.com>
132
133         * pinentry/pinentry.h (struct pinentry): Add TOUCH_FILE.
134         * pinentry/pinentry.c (option_handler): New option "touch-file".
135         (pinentry_have_display): Ignore an empty DISPLAY.
136         * pinentry/pinentry-curses.c (do_touch_file): New.
137         (curses_cmd_handler): Call it.
138         * configure.ac: Check for utime.h.
139
140 2007-01-24  Werner Koch  <wk@g10code.com>
141
142         * pinentry/pinentry.c (cmd_message): New.
143         (cmd_confirm): New command option --one-button.
144         (cmd_getpin): Zeroise ONE_BUTTON.
145         * pinentry/pinentry.h (struct pinentry): Add field ONE_BUTTON.
146         * gtk/pinentry-gtk.c (create_window): Take care of new option.
147         * gtk+-2/pinentry-gtk-2.c (create_window): Ditto.
148         * pinentry/pinentry-curses.c (dialog_create): Ditto.
149         (dialog_create, dialog_switch_pos): Allow CANCEL to be optional.
150
151 2006-07-29  Marcus Brinkmann  <marcus@g10code.de>
152
153         * secmem/secmem.c (init_pool): Close FD after establishing the
154         mapping.
155
156 2005-09-28  Marcus Brinkmann  <marcus@g10code.de>
157
158         * configure.ac (PINENTRY_GTK): Error out if iconv is not found but
159         needed.
160
161         * config.rpath: New file from gettext.  Needed by iconv.m4.
162
163 2005-07-11  Marcus Brinkmann  <marcus@g10code.de>
164
165         * pinentry/pinentry-curses.c (dialog_switch_pos): Set the cursor
166         state to invisible before moving around.  Move the cursor to the
167         beginning of the dialog buttons for accessibility.
168
169 2005-06-16  Marcus Brinkmann  <marcus@g10code.de>
170
171         * pinentry/pinentry-curses.c (dialog_run): Only convert pin if a
172         pin actually exists.
173
174 2005-01-27  Werner Koch  <wk@g10code.com>
175
176         Released 0.7.2.
177         
178         * gtk+-2/Makefile.am: Removed padlock-keyhole.xpm.
179
180         * configure.ac: Use AC_GNU_SOURCE instead of the custom define.
181         Prefer gtk2 pinentry over qt.
182
183 2005-01-21  Marcus Brinkmann  <marcus@g10code.de>
184
185         * doc/pinentry.texi: Fix spelling errors.
186         Submitted by Ville Skytt√§.
187
188 2004-12-23  Werner Koch  <wk@g10code.com>
189
190         * w32/pinentry-w32.rc: Remove the default texts for description,
191         prompt and error.  Make it system modal.  Enlarge the description
192         field.
193
194 2004-12-22  Timo Schulz  <twoaday@g10code.com>
195
196         * w32/main.c: Remove all helper functions and use a callback
197         to set the dialog items directly.
198         (dlg_proc): Set 'result' to -1 to indicate cancel.
199         (ok_button_clicked): Adjusted. Set 'result' to the len of
200         the PIN to indicate success.
201         
202 2004-12-22  Werner Koch  <wk@g10code.com>
203
204         * w32/main.c: Simplified.
205         * w32/dialog.h, w32/dialog.c, w32/controller.h, w32/controller.c:
206         Removed
207         
208         * w32/resource.h, w32/pinentry-w32.rc, w32/main.c, w32/dialog.h
209         * w32/dialog.c, w32/controller.h, w32/controller.c
210         * w32/Makefile.am: New.  Based on Timo's work.
211
212         Update to automake 1.9.
213         
214         * autogen.sh (configure_ac): Add --build-w32 option.
215         * Makefile.am: Support for the W32 pinentry. 
216         * configure.ac: Ditto.  Reformatted some error messages.
217         Define the usual conditionals for W32.
218         Check for a couple of more usually required headers.
219
220         * pinentry/pinentry.h (sleep) [W32]: New.
221
222         * pinentry/pinentry.c: Include langinfo.h only if available.
223         (pinentry_loop) [DOSISH]: Don't do uid check.
224
225         * secmem/util.c [DOSISH]: Disable UID stuff.
226         
227 2004-09-27  Marcus Brinkmann  <marcus@g10code.de>
228
229         * acinclude.m4 (IU_LIB_NCURSES, IU_LIB_CURSES, IU_LIB_TERMCAP):
230         Moved to m4/curses.m4.
231         (AM_ICONV): Moved to m4/iconv.m4.
232         (AM_PATH_GLIB): Moved to m4/glib.m4.
233         (QT_FIND_FILE, QT_PATH_MOC, QT_PATH_X, QT_PRINT_PROGRAM,
234         QT_CHECK_VERSION, QT_PATH_1_3, QT_PATH, QT_CHECK_COMPILER_FLAG,
235         QT_REMOVE_FORBIDDEN, QT_VALIDIFY_CXXFLAGS, QT_CHECK_COMPILERS,
236         QT_CHECK_RPATH, QT_CHECK_LIBPTHREAD, QT_CHECK_PTHREAD_OPTION,
237         QT_CHECK_THREADING): Move to m4/qt.m4.
238
239 2004-09-21  Marcus Brinkmann  <marcus@g10code.de>
240
241         * qt/Makefile.am (pinentry_qt_LDFLAGS): Add $(QT_RPATH).
242         Requested by Leo Savernik <l.savernik@aon.at>.
243
244 2004-09-02  Marcus Brinkmann  <marcus@g10code.de>
245
246         * gtk+-2/padlock-keyhole.xpm: File removed.
247         * gtk+-2/pinentry-gtk-2.c (create_window): Use stock icon.
248         * gtk+-2/gtksecentry.h, gtk+-2/gtksecentry.c: Fix copyright notice.
249
250         Submitted by Albrecht Dress albrecht.dress@arcor.de.
251
252 2004-08-17  Marcus Brinkmann  <marcus@g10code.de>
253
254         * configure.ac: Invoke AC_PROG_LN_S.
255         (PINENTRY_DEFAULT): New variable.  Substitute it.  Fail if no
256         default can be determined.
257         * Makefile.am (install-exec-local): Install pinentry default link.
258
259         * configure.ac: Check for Gtk+-2.
260         * gtk+-2: New directory with gtk+-2 pinentry.
261         * gtk+-2/Makefile.am, gtk+-2/gtksecentry.h, gtk+-2/gtksecentry.c,
262         gtk+-2/pinentry-gtk-2.c, gtk+-2/padlock-keyhole.xpm: New files.
263         * Makefile.am (pinentry_gtk_2): New variable.
264         (SUBDIRS): Add pinentry_gtk_2.
265
266         Submitted by Albrecht Dress albrecht.dress@arcor.de.
267         
268 2004-08-04  Werner Koch  <wk@g10code.de>
269
270         * pinentry/pinentry.c (usage): Print help to stdout.
271
272 2004-07-30  Moritz Schulte  <moritz@g10code.com>
273
274         * qt/Makefile.am (ncurses_include): Removed
275         -I$(top_srcdir)/pinentry ...
276         (AM_CPPFLAGS): ... added: -I$(top_srcdir)/pinentry.  Thanks to
277         Peter Eisentraut.
278
279         * pinentry/pinentry.c (pinentry_utf8_to_local): Declare INPUT
280         const.
281         (pinentry_local_to_utf8): Likewise.
282         (pinentry_utf8_to_local, pinentry_local_to_utf8): Compile only, if
283         either Curses or GTK+ support is enabled.
284         * configure.ac: Do also check for libiconv when the GTK+ version
285         of pinentry is to be build.  Define PINENTRY_CURSES, PINENTRY_GTK,
286         PINENTRY_QT depending on which versions of pinentry should be
287         build.
288
289 2004-05-21  Marcus Brinkmann  <marcus@g10code.de>
290
291         * acinclude.m4 (QT_CHECK_DIRECT): Removed.
292         (QT_PATH_1_3): Do never invoke QT_CHECK_DIRECT.
293
294 2004-04-21  Werner Koch  <wk@gnupg.org>
295
296         Released 0.7.1.
297
298 2004-04-20  Werner Koch  <wk@gnupg.org>
299
300         * secmem/secmem.c [!ORIGINAL_GPG_VERSION]: Include util.h for some
301         typedefs and protos.
302         (secmem_free, secmem_term): Use wipememory2 instead of memset.
303
304         * autogen.sh (configure_ac): Fixed version check (s/==/=/).
305
306 2004-04-02  Thomas Schwinge  <schwinge@nic-nac-project.de>
307
308         * autogen.sh: Added ACLOCAL_FLAGS.
309
310 2004-02-23  Marcus Brinkmann  <marcus@g10code.de>
311
312         * qt/main.cpp: Include "pinentry.h", not <pinentry.h>.
313
314 2004-01-30  Werner Koch  <wk@gnupg.org>
315
316         * configure.ac (fopencookie): Remove that test.
317
318 2004-01-28  Moritz Schulte  <mo@g10code.com>
319
320         * gtk/gtksecentry.c:
321         (gtk_secure_entry_key_press): Treat GDK_KP_Enter just like
322         GDK_Return.
323
324 2004-01-18  Marcus Brinkmann  <marcus@g10code.de>
325
326         * qt/secqstring.cpp: Do not include "private/qunicodetables_p.h".
327         (isRightToLeft): De-optimize direction query.
328
329         * qt/secqinternal_p.h, qt/secqinternal.cpp: New files.
330         * qt/Makefile.am (pinentry_qt_SOURCES): Add secqinternal_p.h
331         and secqinternal.cpp.
332         (EXTRA_DIST): Add README.SecQ.
333         * qt/secqlineedit.cpp: Include "secqinternal_p.h".
334         (drawContents): Use SecQSharedDoubleBuffer.
335
336 2004-01-02  Werner Koch  <wk@gnupg.org>
337
338         * configure.ac: Early check for a c++ compiler.
339
340 2003-12-23  Werner Koch  <wk@gnupg.org>
341
342         Released 0.7.0.
343
344         Added Manifest files to all directories.
345
346 2003-12-22  Werner Koch  <wk@gnupg.org>
347
348         * qt/main.cpp: Include errno.h.
349         (main): Translate the --display option to -display, so that the Qt
350         init code can grasp it.
351
352         * doc/ChangeLog: Removed and merged with this file.
353         * doc/pinentry.texi: Cleaned up.
354         * doc/fdl.texi: Removed.
355
356         * pinentry/pinentry.h (struct pinentry): Added LOCALE_ERR.
357         * gtk/pinentry-gtk.c (button_clicked): Set the LOCAE_ERR flag.
358         * pinentry/pinentry-curses.c (dialog_run): Ditto.
359         * pinentry/pinentry.c (cmd_getpin, cmd_confirm): Check this flag.
360         (pinentry_local_to_utf8): Release the correct buffer in the error
361         case. Print diagnostics.
362         (pinentry_utf8_to_local): Print diagnostics.
363         (pinentry_parse_opts): Make short options work.
364         (pinentry_utf8_to_local): Pass nl_langinfo to iconv_open.
365
366         * gtk/pinentry-gtk.c (button_clicked): Use the right value as
367         input for the conversion.
368
369         * pinentry/pinentry.c: New variable THIS_PGMNAME.
370         (pinentry_init): Add arg PGMNAME and store it.  Use it at all
371         marked placed instead of the constant "pinentry".
372         (usage): Use it here too.
373         * curses/pinentry-curses.c (main): Call pinentry_init with our name. 
374         * qt/main.cpp (main): Ditto.
375         * gtk/pinentry-gtk.c (main): Ditto. 
376
377         * configure.ac: Check for mmap.
378
379         * secmem/util.h (wipememory2,wipememory,wipe): New.
380         * secmem/util.c (wipe): Removed.
381         * secmem/util.c (lower_privs, raise_privs): Commented out.
382
383         * pinentry/pinentry.c (pinentry_loop): Add paranoia check for
384         dropped privs.
385
386         * secmem/secmem.c (lock_pool): Cleanup syntax of cpp directives.
387
388         * gtk/pinentry-gtk.c (main): Print package name in the version line.
389         * curses/pinentry-curses.c (main): Ditto.
390         * qt/main.cpp (main): Ditto. Fixed typo.
391
392         * gtk/pinentry-gtk.c: Include memory.h.
393         
394 2003-12-20  Marcus Brinkmann  <marcus@g10code.de>
395
396         * pinentry/pinentry.h (struct pinentry): New member PARENT_WID.
397         * pinentry/pinentry.c (pinentry): Add new member here.
398         (usage): Add --parent-wid.
399         (pinentry_parse_opts): Add case for "parent-wid".
400         (option_handler): Same here.
401
402 2003-12-19  Marcus Brinkmann  <marcus@g10code.de>
403
404         * pinentry/pinentry.c (cmd_setcancel): Use strcpy_escaped.
405         (cmd_setok): Likewise.
406         (cmd_setprompt): Likewise.
407         (pinentry_utf8_to_local): Don't use
408         nl_langinfo, but just lc_ctype directly.
409         * pinentry/pinentry.c (cmd_getpin): Do not convert passphrase to
410         UTF-8 here.
411         * gtk/pinentry-gtk.c (button_clicked): Convert passphrase to UTF8
412         here.
413         * pinentry/pinentry-curses.c (dialog_run): Likewise.
414
415 2003-12-14  Marcus Brinkmann  <marcus@g10code.de>
416
417         * pinentry/pinentry.c (pinentry_init): Register secmem_term as
418         atexit function.  Set assuan malloc hooks to secmem.
419         (pinentry_parse_opts): Add break statement to silence gcc warning.
420         * pinentry/pinentry.c (cmd_getpin): If canceled, release and clear
421         PINENTRY->pin nevertheless.
422
423         * acinclude.m4 (qt_incdirs): Add /usr/include/qt3.
424         * qt/Makefile.am (pinentry_qt_SOURCES): Remove cppmemory.h,
425         cppmemory.cpp, pinentrycontroller.h, pinentrycontroller.cpp.
426         (nodist_pinentry_qt_SOURCES): Remove pinentrycontroller.moc.cpp.
427         (libcurses): Move ../pinentry/libpinentry.a from here to ...
428         (pinentry_qt_LDADD): ... here.  Change order a bit to make it
429         work.
430         * qt/cppmemory.h, qt/cppmemory.cpp, qt/pinentrycontroller.h,
431         qt/pinentrycontroller.cpp: Files removed.
432         * qt/secqstring.h, qt/secqstring.cpp, secqlineedit.h,
433         secqlineedit.cpp: New files.
434         * qt/Makefile.am (pinentry_qt_SOURCES): Add secqstring.h,
435         secqstring.cpp, secqlineedit.h, and secqlineedit.cpp.
436         (nodist_pinentry_qt_SOURCES): Add secqlineedit.moc.cpp.
437         * qt/main.cpp: Do not include "memory.h" or "secmem-util.h", nor
438         <new> or "pinentrycontroller.h".  Include <qapplication.h>,
439         <qmessagebox.h>, <qwidget.h> and "secqstring.h".  Always include
440         <pinentry.h>.
441         [USE_KDE]: Remove all instances.
442         (curses_main): Function removed.
443         (my_new_handler): Likewise.
444         (qt_main): Likewise.
445         (qt_cmd_handler): New function.
446         (pinentry_cmd_handler): Define always (to qt_cmd_handler).
447         (main): Rewritten.
448         * qt/pinentrydialog.cpp: Do not include <qlineedit.h>, but
449         "secqlineedit.h".
450         (PinEntryDialog::PinEntryDialog): Make _edit a SecQLineEdit
451         object.  Connect accepted SIGNAL to accept SLOT, and rejected
452         SIGNAL to reject SLOT.
453         (PinEntryDialog::setText): Make argument SecQString rather than
454         QString.
455         (PinEntryDialog::text): Likewise for return value.
456         * qt/pinentrydialog.h: Declare SecQString and SecQLineEdit classes.
457         (class PinEntryDialog): Disable property text (for now).  Adjust
458         argument of setText and return value of text, as well as type of
459         _edit.  
460
461 2003-12-09  Werner Koch  <wk@gnupg.org>
462
463         * README.CVS: New.
464         * Makefile.am (EXTRA_DIST): Add README.CVS
465         (ACLOCAL_AMFLAGS): New.
466         * configure.ac: Added min_automake_versions.
467         * autogen.sh: Revamped.
468
469 2003-04-23  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
470
471         * configure.ac: Version 0.6.10-cvs
472
473 2003-04-23  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
474
475         * configure.ac: Version 0.6.9
476         * qt/Makefile.am: Added moc files to DISTCLEANFILES
477         * qt/pinentrycontroller.cpp: Dont spew assuan debug stuff out on stderr.
478
479 2003-03-26  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
480
481         * qt/cppmemory.cpp, qt/main.cpp: Only override array allocation
482           operators. This should take care of the reported memory-problems
483           and even make pinentry-qt use a bit less memory.
484
485 2003-02-15  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
486
487         * qt/pinentrydialog.h, qt/pinentrydialog.cpp: Added icons 
488           for error/non-error messages.
489
490 2003-02-07  Marcus Brinkmann  <marcus@g10code.de>
491
492         Released 0.6.8.
493
494 2003-02-04  Steffen Hansen  <steffen@klaralvdalens-datakonsult.se>
495
496         * qt/main.cpp: Work around '--display' option. This fixes 
497           the pinentry-qt problem reported by several people lately.
498
499 2003-01-24  Werner Koch  <wk@gnupg.org>
500
501         * autogen.sh: Print a hint to use maintainer mode.
502
503 2002-12-24  Marcus Brinkmann  <marcus@g10code.de>
504
505         * pinentry/pinentry-curses.c (collect_line): New function.
506         (COPY_OUT, MAKE_BUTTON): New macros.
507         (dialog_create): Rewrite the initializing code and the description
508         calculation routine with word wrapping.
509
510 2002-11-20  Werner Koch  <wk@gnupg.org>
511
512         Released 0.6.7.
513
514         * pinentry/pinentry-curses.c (dialog_create): Better truncate
515         lines than to go into an infinite loop.  We need to implement word
516         wrap.
517         (dialog_run): Add DIALOG_POS_NONE to switch so prevent a warning.
518
519 2002-11-12  Werner Koch  <wk@gnupg.org>
520
521         * config.sub, config.guess: Updated from ftp.gnu.org/gnu/config
522         to version 2002-11-08.
523
524 2002-11-09  Werner Koch  <wk@gnupg.org>
525
526         Released 0.6.6.
527
528 2002-11-08  Werner Koch  <wk@gnupg.org>
529
530         * pinentry/pinentry-curses.c (convert_utf8_string): Renamed to 
531         * pinentry/pinentry.c (pinentry_utf8_to_local): this. Changed
532         callers.
533         (pinentry_local_to_utf8): New.
534         (cmd_getpin): Convert result back to UTF-8.
535         * gtk/pinentry-gtk.c (create_utf8_label): New.
536         (create_window): Use it here to set the prompts.
537
538 2002-11-06  Werner Koch  <wk@gnupg.org>
539
540         * pinentry/pinentry-curses.c (dialog_run): Fixed retrun value tests
541         for fopen.
542
543 2002-11-05  Werner Koch  <wk@gnupg.org>
544
545         * secmem/util.c (init_uids): Make it a prototype.
546
547         * gtk/pinentry-gtk.c (enter_callback): Changed argument name to
548         avoid shadowing warning.
549         (create_window): Removed unused variable I.
550         (ok): Not used, commented.
551
552         * pinentry/pinentry.c: Include headers for getpid and sleep
553         prototypes.
554
555         * secmem/util.h: Correctly declare functions taking no args. 
556
557         * gtk/pinentry-gtk.c: Move gtk headers to the top to avoid
558         compiler warnings about shadowing index etc.
559
560         * curses/pinentry-curses.c: Include stdio.h for the printf prototype.
561
562         * pinentry/pinentry-curses.c (dialog_switch_pos): Return a value.
563
564         * pinentry/pinentry.c (pinentry_have_display): New.
565         (pinentry_setbufferlen): Must return a value. Fixed documentation.
566         (usage): Print a question mark as a substitue for the program name.
567
568         * gtk/pinentry-gtk.c (main): use it here instead of getenv().
569         * qt/main.cpp (main): Ditto.
570
571 2002-10-11  Werner Koch  <wk@gnupg.org>
572
573         * configure.ac, Makefile.am: Added doc/ and tests for makeinfo
574
575         * doc/pinentry.texi, doc/Makefile.am: New.
576         * doc/gpl.texi, doc/fdl.texi: Added these standard files.
577
578 2002-09-30  Werner Koch  <wk@gnupg.org>
579
580         Released 0.6.5.
581         
582         * qt/pinentrycontroller.cpp (optionHandler): Make sure that a
583         value is returned.
584         * configure.ac: Use -Wall also for C++.
585
586 2002-08-19  Steffen Hansen  <steffen@hrhansen.dk>
587
588         * Relased 0.6.4.
589
590 2002-08-11  Steffen Hansen  <steffen@hrhansen.dk>
591
592         * Adapted pinentry-qt to new CONFIRM spec.
593
594 2002-06-26  Werner Koch  <wk@gnupg.org>
595
596         Release 0.6.3.
597
598 2002-05-24  Werner Koch  <wk@gnupg.org>
599
600         * AUTHORS: Added Marcus
601         * README: Fixed spelling of Quintuple-Agent. 
602
603 2002-05-13  Marcus Brinkmann  <marcus@g10code.de>
604
605         Released 0.6.2.
606         
607         * configure.ac: Set version number to 0.6.2.
608         * NEWS: Add information for 0.6.2.
609         * README: Update for release.
610
611 2002-05-09  Marcus Brinkmann  <marcus@g10code.de>
612
613         * configure.ac: Add option --enable-fallback-curses and bind it to
614         the ncurses check.  Add automake conditional
615         BUILD_LIBPINENTRY_CURSES and FALLBACK_CURSES. Add preprocessor
616         symbol FALLBACK_CURSES.
617
618         * curses/Makefile.am (AM_CPPFLAGS): Add $(NCURSES_INCLUDE).
619         (LDADD): Add ../pinentry/libpinentry-curses.a.
620         * curses/pinentry-curses.c: Include "pinentry-curses.h".
621         Moved most of the meat to ...
622         * pinentry/pinentry-curses.c: ... here.  New file.  Make all
623         functions and global variables static.
624         (dialog_cmd_handler): Rename to ...
625         (curses_cmd_handler): ... this.
626         * pinentry/pinentry-curses.h: New file.
627         * pinentry/Makefile.am (noinst_LIBRARIES)
628         [BUILD_LIBPINENTRY_CURSES]: Add libpinentry-curses.a.
629         (libpinentry_curses_a_SOURCES): New target.
630
631         * gtk/Makefile.am (INCLUDES): Moved all to ...
632         (AM_CPPFLAGS): ... here.
633         [CURSES_FALLBACK]: Define ncurses_include and libcurses.
634         (AM_CPPFLAGS): Add $(ncurses_include).
635         (LDADD): Add $(libcurses).
636         * gtk/pinentry-gtk.c: Rename TIMEOUT to TIME_OUT to avoid conflict
637         with curses.h.
638         [CURSES_FALLBACK]: Include "pinentry-curses.h".
639         (button_clicked): Likewise.
640         (create_window): Likewise.
641         (cmd_handler): Renamed to ...
642         (gtk_cmd_handler): ... this.
643         (pinentry_cmd_handler): Set to gtk_cmd_handler.
644         (main) [CURSES_FALLBACK]: Initialize GTK+ only if environment
645         variable DISPLAY is set, otherwise fall back to curses dialog.
646
647         * pinentry/pinentry.h: Protect against multiple inclusion.
648
649 2002-05-09  Marcus Brinkmann  <marcus@g10code.de>
650
651         * curses/pinentry-curses.c (dialog_create): Allow multi-line error
652         texts.
653
654         * pinentry/pinentry.c (cmd_seterror): Call strcpy_escaped, rather
655         than strcpy, to allow percent-escaping the error text.
656
657 2002-04-25  Steffen Hansen  <steffen@hrhansen.dk>
658
659         * pinentry-qt: Use ok and cancel value if
660         provided.
661
662 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
663
664         * gtk/pinentry-gtk.c (create_window): Use ok and cancel value if
665         provided.
666
667 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
668
669         * qt/pinentrycontroller.h: New members _ok and _cancel.
670         * qt/pinentrycontroller.cpp (registerCommands): Add SETOK and SETCANCEL.
671         (assuanOk): New method.
672         (assuanCancel): Likewise.
673
674 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
675
676         * curses/pinentry-curses.c (dialog_create): Grok the new ok and
677         cancel members to set the pbutton texts, rather than parsing the
678         prompt in the confirm case.
679
680         * pinentry/pinentry.h (struct pinentry): Add new members ok and cancel.
681         * pinentry/pinentry.c (register_commands): Add new commands SETOK
682         and SETCANCEL to set button texts.
683         (struct pinentry pinentry): Add initializers for new members.
684         (cmd_setok): New function.
685         (cmd_setcancel): Likewise.
686
687 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
688
689         * curses/pinentry-curses.c (dialog_create): Add '<' and '>' around
690         the user provided button texts.  Replace sizeof by strlen to fix
691         size calculation of ok and cancel button.
692
693 2002-04-23  Marcus Brinkmann  <marcus@g10code.de>
694
695         * pinentry/pinentry.h (struct pinentry): New variables lc_ctype
696         and lc_messages.
697         * pinentry/pinentry.c (usage): New options --lc-ctype and
698         --lc-messages.
699         (pinentry_parse_opts): Likewise.
700         (option_handler): Likewise.
701         (struct pinentry pinentry): New initializers for new members.
702
703         * curses/pinentry-curses.c (convert_utf8_string): New function.
704         (struct dialog): New members ok and cancel.
705         (dialog_create): New variables ERR, DESCRIPTION, ERROR, PROMPT,
706         OK, and CANCEL.  Initialize them with the localised versions of
707         the pinentry strings.  If in confirm mode, split up the prompt at
708         '|' and use the values as button texts.  Use localised strings.
709         (dialog_switch_pos): Use localised strings.
710         (dialog_run): Free dialog strings.
711
712         * acinclude.m4 (AM_ICONV): New check from gettext.
713         * configure.ac: Run AM_ICONV if curses pinentry is build.
714         Don't check for inttypes.h, don't check size of unsigned int or
715         unsigned long.
716         (LIBCAP): Move check to interface independent part.
717
718 2002-04-21  Steffen Hansen  <steffen@hrhansen.dk>
719
720         * Removed X11 dependency and use Qt for grabbing the keyboard.
721         * Clear the lineedit before asking the user for the PIN.
722
723 2002-04-12  Steffen Hansen  <steffen@hrhansen.dk>
724
725         * Enable pinentry-qt if Qt is found
726
727 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
728
729         * qt: New directory.
730         * qt/Makefile.am, qt/cppmemory.cpp, qt/main.cpp,
731         pinentrycontroller.cpp, qt/pinentrycontroller.h,
732         qt/pinentrydialog.cpp, qt/pinentrydialog.h: New file, copied from
733         kde/.
734         * kde: Directory removed.
735         * kde/Makefile.am, kde/cppmemory.cpp, kde/main.cpp,
736         kde/pinentry.desktop, kde/pinentrycontroller.cpp,
737         kde/pinentrycontroller.h, kde/pinentrydialog.cpp,
738         kde/pinentrydialog.h: Files removed.
739         * acinclude.m4: Removed the KE checks and completely overhauled
740         the Qt checks, putting all Qt checks in their own namespace QT_,
741         and make it declare QT_-prefixed variables for linking and
742         compilation.
743         * configure.ac: Use the new Qt checks instead the KDE checks.
744         Replace "kde" with "qt" everywhere.
745         * Makefile.am: Replace "kde" with "qt" everywhere.
746         
747 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
748
749         * acinclude.m4: Reworked the Qt and KDE checks, cutting out a lot
750         of dead and not-so-dead wood.  Gave all KDE checks proper names.
751         * configure.ac: Use the new names for the KDE checks.
752
753 2002-04-06  Marcus Brinkmann  <marcus@g10code.de>
754
755         * kde/Makefile.am (EXTRA_DIST): Remove variable.
756         (install-data-local): Remove target.
757         (uninstall-local): Likewise.
758
759 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
760
761         Released 0.6.0.
762         
763         * configure.ac: Set version number to 0.6.
764         * NEWS: Add information for 0.6.0.
765         * secmem/Makefile.am (libsecmem_a_SOURCES): Replace secmem.h with memory.
766         * kde/Makefile.am (pinentry_kde_SOURCES): Move
767         pinentrydialog.moc.cpp and pinentrycontroller.moc.cpp to ...
768         (nodist_pinentry_kde_SOURCES): ... this new target.
769
770 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
771
772         * acinclude.m4: A lot of new checks more or less straight from KDE's
773         admin/acinclude.m4.in.
774         * configure.ac (AC_CANONICAL_HOST): Call that macro.
775         (AC_CHECK_COMPILERS, AC_PATH_KDE): Call those macros if KDE
776         pinentry is enabled.
777         * kde/Makefile.am (CXXFLAGS, XXX_PREFIX, XXX_KDE_DEFINES, LIB_QT,
778         LIB_KDECORE, LIB_KDEUI, KDE_RPATH, MOC, kde_appsdir): Variables removed.
779         (AM_CPPFLAGS): Replace XXX_KDE_DEFINES by all_includes.
780         (pinentry_kde_LDFLAGS): Add all_libraries.
781         * README: Document that automatic check is not possible for KDE.
782
783 2002-04-05  Marcus Brinkmann  <marcus@g10code.de>
784
785         * curses/pinentry-curses.c (dialog_run): Add handling for TAB key.
786         (dialog_create): New variable description_x.  Calculate dimension
787         of multi-line description correctly.
788
789 2002-04-04  Marcus Brinkmann  <marcus@g10code.de>
790
791         * pinentry/pinentry.h (struct pinentry): New members DISPLAY,
792         TTYNAME and TTYTYPE.
793         * pinentry/pinentry.c (pinentry): Likewise.
794         * pinentry/pinentry.c: Include <string.h>.
795         (usage): Add new options --display,
796         --ttyname and --ttytype.
797         (option_handler): Likewise.
798         (pinentry_parse_opts): Likewise.
799
800         * curses/pinentry-curses.c (dialog_cmd_handler): Use
801         PINENTRY->ttyname and PINENTRY->ttytype.
802
803 2002-03-30  Marcus Brinkmann  <marcus@g10code.de>
804
805         * acinclude.m4: Add AM_PATH_GLIB and AM_PATH_GTK.
806
807 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
808
809         * configure.ac: Choose a more appropriate AC_CONFIG_SRCDIR.
810
811 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
812
813         * kde/Makefile.am (pinentry_kde_LDADD): Link with $(LIBCAP).
814         * gtk/Makefile.am (install-exec-local): Moved to ...
815         * Makefile.am (install-exec-local): ... here.
816
817 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
818
819         * kde/Makefile.am (kde_appsdir): New variable.
820         * kde/Makefile.am (install-data-local): Use DESTDIR.
821         (uninstall-local): Likewise.
822
823 2002-03-29  Marcus Brinkmann  <marcus@g10code.de>
824
825         Merge of the gpinentry and curses pinentry program into the
826         pinentry distribution.  For this, the structure of the repository
827         has been thoroughly overhauled.  Some of the changes:
828         * secmem: New directory with secure memory allocation code.
829         * pinentry: New directory with pinentry support library.
830         * curses: New directory with curses frontend.
831         * gtk: New directory with GTK+ frontend.
832         * kde: New directory with only the core of the old kpinentry program.
833         * admin: Directory removed.
834         * po: Directory removed.
835         * kpinentry: Directory removed.
836         * doc: Directory removed.
837         * jnlib: Directory removed.x
838
839         The changes in more detail:
840         * AUTHORS: Add authors of other pinentry frontends.
841         * ChangeLog: Add the one from gpinentry.
842         * Makefile.am: Completely rewritten.
843         * README: Add content.
844         * TODO: Add content.
845         * NEWS: New file from gpinentry.
846         * THANKS: New file from gpinentry.
847         * acinclude.m4: New file.
848         * configure.ac: New file which configures for all frontends.
849         * curses/Makefile.am, curses/pinentry-curses.c: New files for
850         curses frontend.
851         * gtk/Makefile.am, gtk/gtksecentry.c, gtk/gtksecentry.h,
852         gtk/pinentry-gtk.c: New files, modified from gpinentry, for GTK+
853         frontend.
854         * kde/Makefile.am, kde/cppmemory.cpp, kde/main.cpp,
855         kde/pinentry.desktop, kde/pinentrycontroller.cpp,
856         kde/pinentrycontroller.h, kde/pinentrydialog.cpp,
857         kde/pinentrydialog.h: New files, modified from kpinentry, for KDE
858         frontend.
859         * pinentry/Makefile.am, pinentry/pinentry.c, pinentry/pinentry.h:
860         New files containing pinentry support library, partly factored out
861         from gpinentry.
862         * secmem/Makefile.am, secmem/memory.h, secmem/secmem-util.h,
863         secmem/secmem.c, secmem/util.c, secmem/util.h: New files
864         containing secure memory allocation code common to all pinentry
865         frontends.
866         * Makefile.dist, acconfig.h, configure.files, configure.in.in:
867         Files removed in favor of new configure.ac.
868         * pinentry.lsm: Removed file never used.
869         * stamp-h.in: Removed generated file.
870         * admin/ChangeLog, admin/Makefile.common, admin/acinclude.m4.in,
871         admin/am_edit, admin/am_edit.py, admin/conf.change.pl,
872         admin/config.guess, admin/config.pl, admin/config.sub,
873         admin/configure.in.min, admin/debianrules, admin/depcomp,
874         admin/install-sh, admin/libtool.m4.in, admin/ltcf-c.sh,
875         admin/ltcf-cxx.sh, admin/ltcf-gcj.sh, admin/ltconfig,
876         admin/ltmain.sh, admin/missing, admin/mkinstalldirs, admin/ylwrap:
877         Removed KDE build suite in favor of configure.ac.
878         * doc/Makefile.am, doc/en/Makefile.am, doc/en/index.docbook:
879         Removed files never used.
880         * jnlib/ChangeLog, jnlib/Makefile.am, jnlib/argparse.c,
881         jnlib/argparse.h jnlib/dotlock.c, jnlib/dotlock.h,
882         jnlib/libjnlib-config.h, jnlib/logging.c, jnlib/logging.h,
883         jnlib/mischelp.h, jnlib/stringhelp.c, jnlib/stringhelp.h,
884         jnlib/strlist.c, jnlib/strlist.h, jnlib/types.h, jnlib/xmalloc.c,
885         jnlib/xmalloc.h: Removed files no longer used.
886         * kpinentry/Makefile.am, kpinentry/cppmemory.cpp,
887         kpinentry/cppmemory.h, kpinentry/i18n.h, kpinentry/main.cpp,
888         kpinentry/memory.h, kpinentry/pinentry.desktop,
889         kpinentry/pinentrycontroller.cpp, kpinentry/pinentrycontroller.h,
890         kpinentry/pinentrydialog.cpp, kpinentry/pinentrydialog.h,
891         kpinentry/secmem.cpp, kpinentry/util.cpp, kpinentry/util.h:
892         Removed files in favor of new files in kde/.
893         * po/Makefile.am, po/pinentry.pot: Removed files never used.
894
895         * autogen.sh: New file.
896
897 2002-03-04  Werner Koch  <wk@gnupg.org>
898
899         * gpinentry.c (enter_callback): New
900         (create_window): Connect it to the entry field.
901
902 2002-02-18  Werner Koch  <wk@gnupg.org>
903
904         Released 0.5.1.
905
906         * gpinentry.c (create_window): Add CONFIRM_MODE.
907         (cmd_confirm): Implemented.
908
909         * assuan/:  Updated from NewPG.
910
911 2002-01-20  Werner Koch  <wk@gnupg.org>
912
913         * gpinentry.c (option_handler): New to allow changing of the grab
914         status.
915         (grab_keyboard): Shortcut this when global grab is not set.
916
917 2002-01-04  Werner Koch  <wk@gnupg.org>
918
919         Released 0.5.0.
920         
921         * configure.ac: Bumbed version
922
923         * util.h (xtoi_1, xtoi_2): New.
924         * gpinentry.c (strcpy_escaped): New
925         (cmd_setdesc, cmd_seterror): Use it here to allo multiline texts.
926
927         * gpinentry: Removed debugging outbut
928         (create_window): Tweaked layout.
929
930 2001-12-07  Werner Koch  <wk@gnupg.org>
931
932         New package gpinentry based on quintuple-agent.
933         
934         Removed all stuff except for the basic configuration stuff and
935         what is needed to build gpinentry.  Also removed i18n support.
936         * gpinentry.c: Renamed from secret-query.c
937
938 2001-02-12  Robert Bihlmeyer  <robbe@orcus.priv.at>
939
940         * 1.0.0 released. Woo-hoo!
941
942         * configure.in, NEWS: Bumped version.
943
944 2001-02-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
945
946         * agent.c (make_tmpdir): Honor $TMPDIR.
947
948         (agent): Would exit on every minor problem. Now, we just close the
949         offending connection.
950         Ignore SIGPIPE, so that EPIPE will close connection.
951
952 2001-01-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
953
954         * secmem.c: Move one include statement so that the thing compiles.
955
956         * secret-query.c (main): Minor source cosmetics.
957
958 2000-11-16  Robert Bihlmeyer  <robbe@orcus.priv.at>
959
960         * gtksecentry.c (gtk_secure_entry_insert_text): Secured a couple
961         of memory (de)allocations that were missed. Thanks to John Steele
962         <jhs28@eng.cam.ac.uk> for spotting these.
963
964 2000-11-10  Robert Bihlmeyer  <robbe@orcus.priv.at>
965
966         * Thoughts: Removed in favor of new TODO.
967
968         * README: Remove content and refer to doc/manual.info instead.
969
970         * agent.c (do_get): Would burn badly on a premature exit of the
971         query program (which would occur routinely if you selected /cancel/).
972
973 2000-10-25  Robert Bihlmeyer  <robbe@orcus.priv.at>
974
975         * memory.h: Include sys/types.h for size_t.
976
977 2000-10-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
978
979         * README: Removed apology about missing documentation.
980         Updated paragraph about Linux capability patch.
981         Typo & Refill.
982
983 2000-10-03  Robert Bihlmeyer  <robbe@orcus.priv.at>
984
985         * 0.9 released.
986
987         * Makefile.am (EXTRA_DIST): Distribute BUGS (the file, that is).
988
989         * configure.in, NEWS: Bumped version.
990
991         * Makefile.am, configure.in: Add debian subdir.
992
993         * README: Recommend GTK+.
994         Update list of checked platforms.
995
996 2000-10-02  Robert Bihlmeyer  <robbe@orcus.priv.at>
997
998         * secret-query.c (ok): Simplify.
999         Put empty line between headers and secret.
1000         (usage): Document '--help' and '--version'.
1001
1002         * agent.c (do_get): Use enhanced secret-query output to fill in
1003         options.
1004
1005 2000-10-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
1006
1007         * secret-query.c (main): Clarify error.
1008
1009         * client.c (query_options): New global variable.
1010         (main): New option '--query-options' to pass options to the query
1011         program.
1012         (xgetpass): Use it.
1013
1014         * agent.c (main): New option '--query-options' to pass options to
1015         the query program.
1016         (do_get): Use 'query_options'.
1017
1018         * acconfig.h, configure.in: Add QUERY_PROGRAM definition.
1019         * client.c: Remove here.
1020         * agent.c (do_get): Use it here, too.
1021
1022         * secret-query.c (main): New option '--no-global-grab' introduced,
1023         that prevents keyboard grabbing unless the window has focus.
1024
1025 2000-09-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
1026
1027         * secret-query.c (usage): Add two missing pieces of "\n\".
1028
1029         * agent.c (main): --nofork is now the default, and the option is
1030         deprecated. New option --fork added to turn forking on again.
1031         Close stdout (and stderr unless debugging) even when not forking,
1032         so that normal usage inside eval is still possible.
1033         (agent): Exit gracefully on HUP, so that logging out now kills the
1034         agent. 
1035
1036         * README (Contact Information): Old URL - duh!
1037         (Using Secret Agent): We no longer fork per default.
1038
1039         * Makefile.am (lib/libutil.a): New target, allows targets that not
1040         automatically recurse (but still depend on libutil.a) to succeed.
1041
1042 2000-07-20  Robert Bihlmeyer  <robbe@orcus.priv.at>
1043
1044         * secret-query.c (usage): New function.
1045         (main): Parse options: debug, enhanced, help, version.
1046         Turn on locale support.
1047         If enhanced, insert widgets to ask for timeout and insurance.
1048         (ok): If enhanced, print more information on exit.
1049         (grab_keyboard): Die if grab was unsuccessful.
1050
1051 2000-05-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
1052
1053         * 0.8 released.
1054
1055         * configure.in, NEWS: Bumped version.
1056
1057         * Makefile.am (SUBDIRS): Include doc.
1058
1059         * configure.in, acconfig.h: Check for ssize_t.
1060         Check for vsnprintf(), strdup().
1061         Generate doc/Makefile.
1062
1063         * apgp.c, agpg.c, agentlib.c, util.c: Include more stuff.
1064
1065         * agent.c (do_get): Use asprintf() instead of snprintf() so we
1066         don't need to roll our own for yet another function.
1067         Fix some includes.
1068
1069         * acinclude.m4: gettext macros copied from automake and fixed.
1070
1071 2000-05-30  Robert Bihlmeyer  <robbe@orcus.priv.at>
1072
1073         * configure.in, Makefile.am: Properly include doc subdir.
1074
1075 2000-05-29  Robert Bihlmeyer  <robbe@orcus.priv.at>
1076
1077         * configure.in, acconfig.h: Add test for XMESSAGE path.
1078
1079         * client.c (main): Decode command from string to integer code
1080         first, then evaluate that in ifs.
1081
1082         * secret-ask.c: New file, external ask-for-confirmation utility.
1083
1084         * configure.in, Makefile.am: Add secret-ask to programs being
1085         built when GTK is available. Rename QUERY to more descriptive
1086         GTK_PROGRAMS.
1087
1088         * agent.c (do_get): If GTK is available, try executing secret-ask
1089         first.
1090         Only put the comment into the insure-question if there is a
1091         comment.
1092         (main): --csh was missing from usage message.
1093
1094 2000-04-23  Robert Bihlmeyer  <robbe@orcus.priv.at>
1095
1096         * secret-query.c (constrain_size): Lower window max_width to
1097         accomodate bugs in GTK and Scwm.
1098
1099         * agent.c (main): Set x_enabled if X appears to be available.
1100         Use it to selectively make FLAGS_INSURE supported.
1101         (do_get): Use it instead of testing at every call.
1102         (do_put): Requests containing unsupported flags fail.
1103         (forget_old_stuff): Would not set next_deadline correctly.
1104         (do_get): Implement FLAGS_INSURE.
1105
1106         * client.c (main): "list" format changed so that comment is to the
1107         far right. Display the deadline as proper date/time, too.
1108
1109 1999-11-11  Robert Bihlmeyer  <robbe@orcus.priv.at>
1110
1111         * agent.c (next_deadline): New global variable, holds time when
1112         next secret has to be killed.
1113         (store): Keep it up-to-date.
1114         (forget_old_stuff): New function, reaps secrets ready to kill,
1115         keeps next_deadline updated.
1116         (agent): Use it on all secrets, whenever a deadline is active.
1117
1118 1999-11-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
1119
1120         * agent.h (request_put): Add flags, deadline. Increase REQUEST_MAGIC. 
1121         (reply_get): Ditto, and increase REPLY_MAGIC.
1122         * agent.c (store): Store flags, deadline in reply.
1123         (do_put): Hand flags, deadline from request on to store().
1124         (do_get): Store on-demand queried secrets without deadline or
1125         special flags, for now.
1126         (agent): Do not ignore obsolete clients, return an error reply.
1127         * agentlib.c (agent_put): Add flags, deadline arguments, and copy
1128         them into the request.
1129         * agentlib.h (agent_put): Update prototype.
1130 *       * client.c (main): Added --time-to-live (-t) and --insure (-i)
1131         options, influencing PUT's deadline and flags, respectively.
1132         (main): Change list format to include new attributes.
1133
1134 1999-11-05  Robert Bihlmeyer  <robbe@orcus.priv.at>
1135
1136         * configure.in: <getopt.h> check had redundant definition.
1137         * acconfig.h: Remove here, too.
1138
1139         * configure.in: Check for <inttypes.h>. If not found, check for
1140         unsigned {int, long} sizes.
1141         * agent.h: Either include <inttypes.h>, or try to define uint32_t
1142         yourself.
1143         Need to include "config.h".
1144
1145 1999-11-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
1146
1147         * Makefile.am (signed-dist): New rule, generates sig for dist.
1148         (%.sig): New rule, for detached signatures in general.
1149
1150         * configure.in: Check for ulong.
1151         * acconfig.h: Document it.
1152         * secmem.c: Unconditionally defining it is no longer necessary
1153         here. But do include <sys/types.h> in all cases.
1154
1155         * 0.7 released.
1156
1157         * secmem.c: ulong is not defined on all systems.
1158
1159         * agent.h: <inttypes.h> should define `uint32_t' as per Unix98, so
1160         we use that.
1161
1162 1999-11-02  Robert Bihlmeyer  <robbe@orcus.priv.at>
1163
1164         * agent.h: Augmented requests and replies with magic numbers.
1165         Data structures heavily commented.
1166         All structures and enums typedef'd.
1167         * agent.c: Adapted.
1168         (store): Set magic number in stored reply.
1169         (do_put): Set magic number in reply.
1170         (do_delete): Ditto.
1171         (do_list): Ditto. 
1172         (agent): Check magic number in request.
1173         * agentlib.c: Adapted.
1174         (send_request): Set magic number in request. Check it in reply.
1175         * agentlib.h: Adapted.
1176         * agpg.c: Adapted.
1177         * apgp.c: Adapted.
1178         * client.c: Adapted.
1179
1180 1999-10-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
1181
1182         * secmem.c: Instead of defining ulong directly, include
1183         <sys/types.h>
1184
1185         * secret-query.c (constrain_size): New function, puts constrains
1186         on size of toplevel window.
1187         (grab_keyboard): Removed protection against multiple calls.
1188         (ungrab_keyboard): New function, cancelling a keyboard grab.
1189         (main): Hang `grab_keyboard' onto map-event which makes it
1190         actually work, hang `ungrab_keyboard' onto unmap-event.
1191         Hang `constrain_size' onto size-request.
1192
1193         * secmem.c: ulong was undefined on some systems.
1194
1195 1999-10-19  Robert Bihlmeyer  <robbe@orcus.priv.at>
1196
1197         * Makefile.am (install-exec-local): Ignore setcap errors.
1198
1199         * apgp.c: New program, based on agpg.c, but for pgp2.6.
1200         * Makefile.am (bin_PROGRAMS, apgp_SOURCES): Added it.
1201
1202         * agpg.c (GPG): New constant.
1203         (find_id, main): Use it throughout.
1204         (find_id): Forgot to pclose on success.
1205
1206         * secret-query.c (main): Don't expand anything.
1207         Use a button box for the buttons.
1208         Prompt label can be overridden from the commandline.
1209         * agent.c (do_get): Make spawned secret-query show the id.
1210         * client.c (xgetpass): Pass prompt to secret-query.
1211         (main): Include id in xgetpass prompt.
1212
1213 1999-10-14  Robert Bihlmeyer  <robbe@orcus.priv.at>
1214
1215         * configure.in: setcap must be searched outside the usual user
1216         PATH, too.
1217         * Makefile.am (install-exec-local): Set cap_ipc_lock permitted on
1218         installed binaries, if possible.
1219
1220         * agent.c (xdup2): New function, dup2 with error handling.
1221         (move_fd): New function, moves fds.
1222         (store): New function, abstracted out from do_put.
1223         (do_put): Use it.
1224         (do_get): If secret was not found, and DISPLAY is set, try to
1225         query the user about it. If successful, store it.
1226         (main): Route standard file descriptors to /dev/null rather than
1227         just closing them. The latter would confuse children.
1228
1229 1999-10-13  Robert Bihlmeyer  <robbe@orcus.priv.at>
1230
1231         * gtksecentry.c, gtksecentry.h: New files, being slightly modified
1232         versions of GTK+'s gtkentry.[ch], spiffed up to use secure memory.
1233         * secret-query.c (ok, unselect, main): Replace GtkEntry with
1234         GtkSecureEntry.
1235         (main): Initialize secure memory.
1236         * Makefile.am (secret_query_SOURCES): Added gtksecentry.[ch].
1237
1238         * README (Security): New chapter.
1239
1240         * configure.in, acconfig.h: Check for POSIX capabilities, and the
1241         setcap program.
1242         * Makefile.am: Link LIBCAP to those binaries using secmem.c.
1243
1244         * util.h: Include <sys/types.h> for size_t.
1245
1246 1999-09-21  Robert Bihlmeyer  <robbe@orcus.priv.at>
1247
1248         * secmem.c: Synced with gnupg-1.0 (top new feature: capabilities).
1249         (log_fatal): New function, logs to stderr, and dies.
1250
1251 1999-09-08  Robert Bihlmeyer  <robbe@orcus.priv.at>
1252
1253         * secmem.c (log_info): New function, logs to stderr.
1254
1255         * agent.c (agent): select() expects the number of fds, not the
1256         highest fd. So remember that number.
1257
1258         * agent.c (agent): Don't use FD_SETSIZE, which is not defined on
1259         all systems. Remember the number of the highest descriptor
1260         instead.
1261
1262         * configure.in: Replace getline() instead of getdelim() because
1263         this is the function we really need. Still check for getdelim(),
1264         though - there are systems out there where this is provided, but
1265         getline() is not.
1266
1267 1999-09-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
1268
1269         * 0.6 released.
1270
1271         * configure.in: Bump version.
1272
1273         * NEWS: Updated.
1274
1275 1999-08-31  Robert Bihlmeyer  <robbe@orcus.priv.at>
1276
1277         * util.c (init_uids, lower_privs, raise_privs, drop_privs): New
1278         functions, for setuid binaries, extracted from agent.c.
1279         * util.h: Add prototypes for them.
1280         * agpg.c (main): Use them.
1281         * client.c (main): Ditto.
1282         * agent.c (main): Ditto. Removed code that did the same.
1283         Unconditionally include "asprintf.h" (it protects itself now).
1284
1285 1999-08-25  Robert Bihlmeyer  <robbe@orcus.priv.at>
1286
1287         * Makefile.am (SUBDIRS): Process . before test so that "make
1288         check" always builds all in . first.
1289
1290 1999-08-21  Robert Bihlmeyer  <robbe@orcus.priv.at>
1291
1292         * secret-query.c: Include "config.h".
1293
1294         * agent.h (reply_list_entry, reply_list): New reply structures.
1295         * agent.c (send_list_entry): New function.
1296         (do_list): First send number of entries, then each entry via
1297         send_list_entry().
1298         * agentlib.c (agent_list): Read entries returned by LIST request.
1299         * client.c (main): Output all entries returned by agent_list().
1300
1301         * agentlib.c (agent_put): Don't construct PUT request in insecure
1302         stack space.
1303
1304 1999-08-20  Robert Bihlmeyer  <robbe@orcus.priv.at>
1305
1306         * NEWS: Bump patchlevel.
1307
1308         * configure.in: Bump patchlevel.
1309         Check for missing setenv().
1310
1311 1999-08-09  Robert Bihlmeyer  <robbe@orcus.priv.at>
1312
1313         * configure.in: Check for strsignal().
1314
1315         * client-test: Obsoleted by test/client.
1316
1317         * Makefile.am (SUBDIRS): New subdirectory.
1318         * configure.in (AC_OUTPUT): Add here, too.
1319
1320         * 0.5 released.
1321
1322         * README: Explain why secret-client will not output secrets to a
1323         tty, and mention the cat-trick.
1324
1325         * agent.c (main): If seteuid is not available, don't use it and
1326         issue a warning if running setuid.
1327
1328         * configure.in: Run together two REPLACE_FUNCS.
1329         Check for seteuid.
1330
1331         * client-test: Mask out insecure memory warnings.
1332
1333         * agentlib.c (send_request): Let the calling functions reserve
1334         space for the reply, but offer a simple way for simple requests.
1335         (agent_get): Allocate secure memory.
1336
1337         * agent.c (main): Moved secmem_init() after the fork, since that
1338         seemingly munlock's all pages.
1339         Drop priviledges just in case somebody wants to install this
1340         suid-root.
1341         Flush stdout.
1342
1343         * agpg.c (find_id): Would reorder arguments.
1344         Initialize opt_version.
1345         (main): Initialize secure memory.
1346
1347         * Makefile.am (agpg_SOURCES): Link with secure memory module.
1348
1349         * client.c (usage): Fixed another program name reference.
1350
1351 1999-08-06  Robert Bihlmeyer  <robbe@orcus.priv.at>
1352
1353         * configure.in: Conditionally define HAVE_GTK.
1354         * acconfig.h: Add here too.
1355
1356         * client.c (xgetpass): Use "secret-query" only if it was built.
1357         (main): Don't output secret (GET command) to ttys.
1358
1359         * agpg.c (find_id): Also print own version if "--version" is given.
1360         (main): Check agent_init() errors.
1361         Print error if exec fails.
1362
1363         * agent.c (main): Added an option to produce csh-compatible
1364         output.
1365
1366         * agent.c, client.c: Forgot the terminating NULL in long options.
1367         Fixed the program names in usage and version output.
1368
1369         * agent.c (create_socket): AF_UNIX and PF_UNIX are Unix98, so
1370         that's what we use. AF_LOCAL, PF_LOCAL removed.
1371         * agentlib.c (agent_init): Ditto.
1372
1373 1999-08-05  Robert Bihlmeyer  <robbe@orcus.priv.at>
1374
1375         * 0.4 released.
1376
1377         * configure.in: Bumped version.
1378         Check for missing getdelim.
1379
1380         * cgpg: Removed, obsoleted by agpg.
1381         * Makefile.am: Here, too.
1382
1383         * agpg.c (find_id): New function.
1384         (main): Use it.
1385
1386         * Makefile.am (INCLUDES): Put GTK_FLAGS and GLIB_FLAGS here. It
1387         is the easiest way for sources needing it, and it won't hurt those 
1388         that don't.
1389         (agent.o): Explicit command removed accordingly.
1390
1391 1999-08-04  Robert Bihlmeyer  <robbe@orcus.priv.at>
1392
1393         * configure.in: Need double quoting in nested AC_MSG_WARN.
1394
1395         * client.c (xgetpass): If no tty is available, but a DISPLAY is,
1396         fork off "secure-query" to read the secret.
1397         Put the fgets into a loop that keeps reading until all of the
1398         secret is read.
1399
1400         * client-test: Unset DISPLAY, so that "secret-query" is never used.
1401
1402 1999-08-03  Robert Bihlmeyer  <robbe@orcus.priv.at>
1403
1404         * agpg.c: New file, first cut at a C version of the gpg wrapper,
1405         written in a hurry (20 keys waiting to be signed, and a growling
1406         stomach).
1407         * Makefile.am: Add it to built programs.
1408         (LDADD): New default.
1409         (secret_client_LDADD): Removed, since it was identical to default.
1410
1411 1999-08-01  Robert Bihlmeyer  <robbe@orcus.priv.at>
1412
1413         * secret-query.c: New program, queries the user for a password.
1414         * Makefile.am (bin_PROGRAMS): Added it.
1415         * configure.in: Check for GTK+, build "secret-query" only when
1416         that is available.
1417
1418         * cgpg: Extra argument for ID is no longer necessary. cgpg will
1419         scan the gpg args for switches that affect user-id, and determine
1420         the right key itself. Per convention, the key-id is used by "GET".
1421
1422         * configure.in: The project name is now "secret-agent".
1423
1424         * Makefile.am: "agent" & "client" renamed to "secret-agent" &
1425         "secret-client", respectively.
1426         * client-test: Adapt to new names.
1427
1428         * Thoughts: Removed discussion of other names.
1429         Added indication of which things already work.
1430
1431         * agent.c (make_tmpdir): Removed occurance of "gpg-agent."
1432
1433         * README: First proper version.
1434
1435         * client-test: Context diffs are more portable then unified diffs.
1436
1437         * agent.c, agent.h, agentlib.c, agentlib.h, client.c, memory.h,
1438         util.c, util.h: Banner updated to new name.
1439
1440 1999-07-29  Robert Bihlmeyer  <robbe@orcus.priv.at>
1441
1442         * configure.in: Check for missing asprintf.
1443         Check if -lsocket is needed.
1444
1445         * secmem.c (secmem_dump_stats): Replace usage of ulong.
1446
1447         * Makefile.am (INCLUDES): Add the lib subdirectory to include search.
1448
1449         * agent.c: Forgot to include <string.h>.
1450         Include RYO asprintf header if this function is missing.
1451         For the sake of compatibility, provide a definition for AF_LOCAL,
1452         PF_LOCAL, if missing.
1453         * agentlib.c: Ditto.
1454
1455 1999-07-28  Robert Bihlmeyer  <robbe@orcus.priv.at>
1456
1457         * Makefile.am (client_SOURCES): Add "secmem.c", "memory.h".
1458
1459         * client.c (xgetpass): Use secmem_malloc() instead of RYO.
1460         (main): Init and shutdown secmem.
1461
1462 1999-07-27  Robert Bihlmeyer  <robbe@orcus.priv.at>
1463
1464         * Makefile.am (agent_SOURCES): Add "secmem.c", "i18n.h", "memory.h".
1465         (client_SOURCES): Add "i18n.h".
1466
1467         * client.c (main): Exit on agent_init() failure.
1468
1469         * agent.c (main): Init secmem.
1470         Make --debug switch cumulative.
1471         (cleanup): Shutdown secmem.
1472         (do_put): Use secmem for storage of secrets.
1473         (do_delete): Use secmem_free(). Since this wipes the memory on its 
1474         own, wipe() is superflous now.
1475         (agent): Use secmem for inbound requests.
1476         (delete_secret): New function, takes part of do_delete's
1477         functionality.
1478         (do_put): Use it to remove old versions stored under the same id.
1479         (do_delete): Use it to delete secrets.
1480
1481         * memory.h: New file.
1482
1483         * secmem.c: New file, snarfed from GnuPG and modified slightly.
1484
1485         * acinclude.m4: New file.
1486         * configure.in: (ALL_LINGUAS): Expanded list of available
1487         languages. Most of them only have a few translations from gpg,
1488         tough ...
1489         getopt_long test was commented out for debugging,
1490         and left such. Fixed.
1491         Check for mlock.
1492         * acconfig.h: Comment HAVE_BROKEN_MLOCK.
1493
1494         * cgpg: A space was missing.
1495
1496         * i18n.h: New file, centralizing the gettext macro defs.
1497
1498         * agent.c (BLIND): New macro, that blinds out a secret if debug
1499         level is too low.
1500         (do_put): Use it.
1501         (do_get): Use it.
1502         Include i18n.h.
1503
1504         * agentlib.c: Include i18n.h
1505         
1506         * client.c (usage): New function.
1507         Usage-message made gettext-friendly.
1508         (xgetpass): Use perror() instead of fprintf().
1509         (main): Use it.
1510         Make comment an optional argument of PUT.
1511         Include i18n.h.
1512
1513 1999-07-26  Robert Bihlmeyer  <robbe@orcus.priv.at>
1514
1515         * Makefile.am (client_LDADD): Add lib/libutil.a for portability.
1516         (agent_LDADD): Ditto.
1517         (SUBDIRS): Add lib directory.
1518         (bin_SCRIPTS): New with cgpg, so it gets installed, too.
1519
1520         * configure.in: Add lib/Makefile to output.
1521
1522 1999-07-24  Robert Bihlmeyer  <robbe@orcus.priv.at>
1523
1524         * cgpg: New file.
1525         * Makefile.am (EXTRA_DIST): Added it.
1526
1527         * agent.c: Moved inclusion of config.h before inclusion of
1528         libintl.h since the latter needs HAVE_LC_MESSAGE.
1529         * client.c: Ditto.
1530         * clientlib.c: Ditto.
1531
1532         * client-test: Update for new client semantics.
1533
1534         * client.c (check_status): Use debugmsg(). Do nothing if not
1535         debugging.
1536         (xgetpass): New function, getpass replacement that uses mlock'ed
1537         memory.
1538         (main): PUT now asks for the secret rather then getting it from
1539         the commandline.
1540         GET prints only the secret to stdout.
1541
1542         * configure.in: Rearranged.
1543         Check for socklen_t.
1544         * acconfig.h: Added a definition for it.
1545
1546         * client.c: Include packaged getopt.h if the system doesn't provide 
1547         one. 
1548         * agent.c: Ditto.
1549         (create_socket): Replace AF_FILE, PF_FILE with AF_LOCAL, PF_LOCAL
1550         for portability.
1551         * agentlib.c (agent_init): Ditto.
1552         Explicitly cast addr to a sockaddr pointer.
1553
1554         * Makefile.am (client_LDADD): Added @INTLLIBS@.
1555         (agent_LDADD): Ditto.
1556
1557 1999-07-19  Robert Bihlmeyer  <robbe@orcus.priv.at>
1558
1559         * configure.in: Check for getopt.h and getopt_long.
1560         * acconfig.h (HAVE_GETOPT_H): New define.
1561         * lib/getopt.c, lib/getopt1.c, lib/getopt.h: Added.
1562
1563 1999-07-18  Robert Bihlmeyer  <robbe@orcus.priv.at>
1564
1565         * 0.2 released.
1566
1567         * NEWS: Updated.
1568
1569         * Makefile.am (agent.o): Mentioning the source explicitly does not 
1570         work for srcdir!=builddir.
1571
1572         * client.c (main): Function arguments are not always evaluated in
1573         order, so drop the neat ++optind in favor of optind+1, optind+2,
1574         etc.
1575
1576         * configure.in: Upped version.
1577
1578 1999-06-28  Robert Bihlmeyer  <robbe@orcus.priv.at>
1579
1580         * util.h: Added multi-inclusion guard.
1581
1582         * agent.c Include "util.h".
1583         (main): Forgot to exit at end.
1584         (do_delete): Assume that value is a string and wipe it accordingly.
1585
1586         * configure.in (--enable-debug): New switch.
1587
1588         * agent.h (status_t): Added STATUS_COMM_ERR code.
1589         Added multi-inclusion guard.
1590
1591         * client.c (main): Abstracted out most functionality into a
1592         function library, namely:
1593         * agentlib.c: New file.
1594         * agentlib.h: New file.
1595         * Makefile.am (client_SOURCES): Added agentlib.c, agentlib.h.
1596
1597         * Makefile.am (INCLUDES): GLIB_CFLAGS moved again, this time to
1598         the agent.o target. 
1599
1600 1999-06-15  Robert Bihlmeyer  <robbe@orcus.priv.at>
1601
1602         * 0.1 released.
1603
1604         * Makefile.am (agent_CFLAGS): Removed - did not work.
1605         (INCLUDES): Moved the GLIB stuff here.
1606
1607 1999-06-14  Robert Bihlmeyer  <robbe@orcus.priv.at>
1608
1609         * configure.in (ALL_LINGUAS): Added `de'.
1610
1611         * agent.c (do_get): Added more debugmsgs.
1612         (do_put): Wouldn't allocate enough for `value'.
1613         (main): New option "--nofork" prevents forking.
1614         Use macros for the std filedescriptor numbers.
1615         Only close stderr if not debugging.
1616         (main): Make Usage string gettext-friendly.
1617
1618         * client-test (cleanup): New function.
1619         Call it on shell exit.
1620         (client): New function.
1621         Use it instead of calling client binary directly.
1622         diff client output with expected one in GET testcases.
1623
1624 1999-06-13  Robert Bihlmeyer  <robbe@orcus.priv.at>
1625
1626         * agent.c (failed_reply): New constant.
1627         (do_list): Use it.
1628         (do_put): The hash key was overwritten - strdup it.
1629         Construct a GET reply and save that in the hash.
1630         (do_get): Just send the preconstructed reply if the id is present, 
1631         and failed_reply otherwise.
1632         (do_delete): Actually free the hashed stuff.
1633
1634         * client.c: Exit with error if agent returned STATUS_FAIL.
1635
1636         * Makefile.am (EXTRA_DIST): Added autogen.sh, Thoughts,
1637         client-test.
1638         (TESTS): Added client-test.
1639         (AUTOMAKE_OPTIONS): Added gnits. 
1640
1641         
1642  Copyright 2002, 2003 g10 Code GmbH
1643
1644  This file is free software; as a special exception the author gives
1645  unlimited permission to copy and/or distribute it, with or without
1646  modifications, as long as this notice is preserved.
1647
1648  This file is distributed in the hope that it will be useful, but
1649  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1650  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.