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