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