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