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