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