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