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