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