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