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