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