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