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