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