src/pam/ChangeLog:
[poldi.git] / src / pam / ChangeLog
1 2008-08-17  Moritz  <moritz@gnu.org>
2
3         * pam_poldi.c (pam_sm_authenticate): Removed code related to
4         system scdaemon settings.
5
6         * Makefile.am: Use CLEANFILES intead of clean-local target for
7         pam_poldi.so.
8         (uninstall-local, install-exec-local): New targets.
9
10 2008-08-07  Moritz  <moritz@gnu.org>
11
12         * pam_poldi.c (pam_sm_authenticate): Removed second call to
13         log_set_flags().  Some cosmetic changes.
14         (pam_sm_authenticate): Only free username_authenticated in case
15         the authentication method returns success. Use xfree instead of
16         free. Changed two messages.
17         (destroy_context): Do not free ctx->cookie -- that's the
18         responsibility of the authentication methods _deinit function.
19
20 2008-08-04  Moritz  <moritz@gnu.org>
21
22         * pam_poldi.c (pam_sm_authenticate): New variable:
23         getpin_cb_data. Call scd_set_pincb().
24         Include "getpin-cb.h".
25
26         * auth-methods.h: Removed some disabled code.
27
28         * pam_poldi.c: Marked strings for i18n.
29
30 2008-07-29  Moritz  <moritz@gnu.org>
31
32         * pam_poldi.c (i18n_cb): New function...
33         (create_context, pam_sm_authenticate): ... use it here.
34
35 2008-07-14  Moritz  <moritz@gnu.org>
36
37         * auth-methods.h: Include simpleparse.h instead of argparse.h.
38         (auth_method_func_parsecb_t): Removed type.
39         (struct auth_method_parse_cookie): New struct.
40         (struct auth_method_s): Dropped members func_parsecb, arg_otps,
41         new members opt_specs, parsecb.
42
43         * pam_poldi.c: Include poldi.h, simplelog.h, simpleparse.h instead
44         of not config.h, jnlib/logging.h, optparse.h.
45         Replace parsing/logging related code in favour of new
46         simplelog/simpleparse subsystem.
47         
48
49 2008-05-25  Moritz  <moritz@gnu.org>
50
51         Some cleanups, added GPL3 headers.
52
53         * pam_poldi.c: New conf options: arg_scdaemon_socket, arg_scdaemon_program.
54         (pam_poldi_options_cb): Handle new options.
55         (create_context): Initialize new context struct members.
56         (destroy_context): Release them.
57         (pam_sm_authenticate): Pass scdaemon_socket and scdaemon_program to scd_connect.
58         (auth_method_lookup): Return -1 in case the auth method could not be found.
59
60 2008-05-03  Moritz  <moritz@gnu.org>
61
62         * Makefile.am: Link pam_poldi.so against shared library version of
63         internal libraries.  Link against internal libassuan.  Use gcc for
64         linking, not ld.
65
66 2008-04-05  Moritz  <moritz@gnu.org>
67
68         * pam_poldi.so: Slightly reorganized.
69
70         * auth-method-localdb, auth-method-x509, auth-support: New
71         directories.
72         * auth-simpledb.c, auth-test.c, auth-x509.c, conv.c, conv.h,
73         getpin-cb.c, pam-util.c, pam-util.h, wait-for-card.c,
74         wait-for-card.h: Removed (or rather: moved into other
75         directories).
76
77         * auth-methods.h: Mostly rewritten.
78
79 2008-02-21  Moritz Schulte  <moritz@gnu.org>
80
81         * Makefile.am: Use new variables SCD, DIRMNGR to implement
82         conditional linking of scdaemon/dirmngr.
83
84         * auth-methods.h: Include <gpg-error.h>, <jnlib/argparse.h>; new
85         types: auth_method_func_init_t, auth_method_func_deinit_t,
86         auth_method_func_parsecb_t, auth_method_func_auth_t;
87         auth_method_t; removed type: auth_method_func_t.
88         
89
90 2008-02-15  Moritz Schulte  <moritz@gnu.org>
91
92         * auth-x509.c (email_address_match)
93         (email_address_extract_account): New functions.
94         (extract_username_from_cert): Rewritten to use above function.
95
96 2008-01-04  Moritz Schulte  <moritz@gnu.org>
97
98         * pam_poldi.c (arg_opts): Cosmetic change in description of
99         logfile option.
100
101 2007-12-15  Moritz Schulte  <moritz@g10code.com>
102
103         * pam_poldi.c (enum arg_opt_ids): New entry for arg_dirmngr_socket.
104         (arg_opts): Likewise.
105         (pam_poldi_options_cb): Handle arg_dirmngr_socket.  Use strdup
106         instead of xstrdup.
107         (destroy_context, create_context): New functions ...
108         (pam_sm_authenticate): ... use them here.
109
110         * auth-x509.c: Include <config.h>.
111         (auth_method_x509): Removed pubkey url overwriting debug code.
112         (auth_method_x509): modified conv_tell interaction with application.
113
114         * getpin-cb.c (getpin_cb): Use gcry_free instead of xfree.
115         (agent_popup_message_start, agent_popup_message_stop): Declare static.
116         (agent_popup_message_start): Removed extra args.
117         (agent_popup_message_stop): Return error code.
118         Do not include jnlib/xmalloc.h.
119
120 2007-11-25  Moritz  <moritz@g10code.com>
121
122         * Makefile.am (libpam_poldi_a_SOURCES): Added files: conv.h,
123         wait-for-card.h, getpin-cb.h, pam-util.c, pam-util.h.
124
125         * auth-simpledb.c (auth_method_simpledb): Removed local variable
126         username_void.  Use retrieve_username_from_pam instead of
127         pam_get_item directly.  Use send_username_to_pam instead of
128         pam_set_item.
129
130         * pam-util.h, pam-util.c: New file.
131         * auth-x509.c, auth-simpledb.c: Include "pam-util.h" and use
132         functions contained in pam-util.c for retrieving username from PAM
133         and sending username to PAM.
134         (extract_username_from_cert): New DUMMY(!) function.
135         (lookup_cert_from_file): New function.
136
137         (auth_method_x509): Some cleanups; use retrieve_username_from_pam,
138         allow pubkey_url to be prefixed with "file://" using
139         looking_cert_from_file in that case.  Use poldi_dirmngr_validate
140         instead of poldi_dirmngr_isvalid.  Handle username.
141
142         * auth-x509.c (auth_method_x509): Call poldi_dirmngr_validate
143         instead of poldi_dirmngr_isvalid.
144
145 007-11-18  Moritz  <moritz@g10code.com>
146
147         * auth-x509.c (auth_method_x509): In case of a invalid pubkey_url,
148         return GPG_ERR_INV_CARD, not GPG_ERR_GENERAL.
149         (auth_method_x509): Don't forget to release CERT.
150
151 2007-11-11  Moritz  <moritz@g10code.com>
152
153         * auth-x509.c (auth_method_x509): adjust call to
154         poldi_dirmngr_connect; pass return value from getenv.
155         (extract_public_key_from_cert, verify_challenge_sig): New
156         functions.
157
158 2007-11-10  Moritz  <moritz@g10code.com>
159
160         * auth-simpledb.c (auth_method_simpledb): Uuuh: return !err,
161         instead of !!err.  Currently the semantics for the auth_method_*
162         functions are: they return TRUE for success and FALSE for failure.
163
164         * Makefile.am (AM_CFLAGS): Added: KSBA_CFLAGS.
165         (pam_poldi.so): Added: KSBA_LIBS.
166
167         * pam_poldi.c (pam_sm_authenticate): Connect/disconnect to/from
168         scdaemon.
169
170         * auth-simpledb.c: Added plenty of missing includes.
171         (cardinfo_null): New static variable.
172
173         * pam_poldi.c (pam_sm_authenticate): Use options_parse_argv_const
174         instead of options_parse_argv.
175
176 2007-11-04  Moritz  <moritz@g10code.com>
177
178         * Makefile.am: Changed the way the pam module gets built.  No, a
179         static library libpam_poldi.a is built.  Based on conditionals,
180         decide which auth-*.c files shall be built.
181
182         * auth-x509.c: New file.
183         * auth-test.c: New file.
184         * auth-simpledb.c (auth_method_simpledb): New file.  Basically
185         contains the former pam_sm_authenticate().
186
187         * auth-methods.h: New file.
188
189         * pam_poldi.c (parse_argv): Removed function.
190         (pam_sm_authenticate): Call options_parse_argv instead of
191         parse_argv.
192         Include auth-methods.h.
193         Added declarations for authentication method functions.
194         (struct auth_method): New.
195         (auth_methods): New array.
196         (struct pam_poldi_opt): Removed.
197         (enum arg_opt_ids): New: arg_auth_method, arg_debug.
198         (arg_opts): New entries for new args.
199         (auth_method_lookup): New function.
200         (pam_poldi_options_cb): Handle new arguments.
201         (pam_sm_authenticate): Heavily stripped.  Calls authentication
202         method.
203
204 2007-10-28  Moritz  <moritz@g10code.com>
205
206         * Makefile.am (pam_poldi.so): Removed reference to
207         libscd-support.a.
208
209 2007-10-27  Moritz  <moritz@g10code.com>
210
211         * pam_poldi.c (poldi_ctx_NULL): New static variable.
212         (pam_poldi_opt): Removed static structure.
213         (enum arg_opt_ids): Removed all args except arg_logfile,
214         arg_wait_timeout.  Note: debug/verbose option handling will
215         be reintegrated soon.
216         (arg_opts): See above.
217         (pam_poldi_options_cb): See above.
218         
219         (pam_sm_authenticate): Removed scd_context_t ctx.  New variable:
220         poldi_ctx_t ctx; allocate and initialize.  Use poldi_scd_*
221         functions instead of scd_*.  Use new conv_tell/conv_ask functions
222         instead of old tell_user/ask_user.  Removed old conv_opaque
223         struct.  Simplified PAM conv calling, no idea why it was written
224         the way it was written before.
225
226         (parse_argv): Made a dummy function for now, proper argument
227         parsing will be integrated soon.
228
229         * Makefile.am (pam_poldi.so): Include conv.o, wait-for-card.o,
230         getpin-cb.o.  Removed libscd-support.
231         * Makefile.am: Added new implicit rule for compiling .c objects.
232         (CLEANFILES): Added new object files.
233
234         * conv.c, conv.h: New files, contains slightly modified PAM
235         conversation functions formerly contained in pam_poldi.c.  Uses
236         new poldi_ctx_t.
237         
238         * getpin-cb.c, getpin-cb.h: New files, contain slightly modified
239         code formerly contained in ../common.  Uses new poldi_ctx_t.
240         
241         * wait-for-card.c, wait-for-card.h: New files, contain slightly
242         modified code formerly contained in ../common.  Uses new
243         poldi_ctx_t.
244
245 2007-08-17  Moritz  <moritz@g10code.com>
246
247         * pam_poldi.c (pam_sm_authenticate): Call wait_for_card().
248
249 2007-07-13  Moritz  <moritz@g10code.com>
250
251         * pam_poldi.c (pam_sm_authenticate): Lookup GPG_AGENT_INFO, not
252         SCDAEMON_INFO, error checking after scd_connect.
253
254 2007-06-30  Moritz  <moritz@g10code.com>
255
256         * pam_poldi.c: Removed includes: <common/options.h>,
257         <libscd/scd.h>; added includes: <common/optparse.h>, <scd/scd.h>,
258         <scd/scd-support.h>.  Removed option switches: debug-sc,
259         ctapi-driver, pscs-driver, reader-port, disable-opensc,
260         disable-ccid, debug-ccid-driver
261         (cardinfo_null): New static variable.
262         (pam_sm_authenticate): Quasi rewrite, uses new scd interface.
263         
264         * Makefile.am: include $(top_srcdir)/am/cmacros.am.
265         (pam_poldi.so): Removed $(LIBUSB_LIBS) from linking command.
266
267 2006-03-31  Moritz Schulte  <moritz@g10code.com>
268
269         * pam_poldi.c (pam_sm_authenticate): Adjust call to log_set_syslog
270         to new API; call log_set_prefix() to register a logging prefix;
271         use log_close() instead of closelog().
272
273 2005-12-11  Moritz Schulte  <moritz@g10code.com>
274
275         * pam_poldi.c: Removed some FIXMEs.
276
277 2005-12-03  Moritz Schulte  <moritz@g10code.com>
278
279         * pam_poldi.c (ask_user): New parameter: secret.
280         (pam_conversation): Pass SECRET argument.
281         (pam_sm_authenticate): Rewritten in parts, simplified.
282         Adjusted to new usersdb API.
283
284 2005-11-12  Moritz Schulte  <moritz@g10code.com>
285
286         * pam_poldi.c (pam_sm_authenticate): Adjust to new wait_for_card()
287         API.
288
289         * Makefile.am (libpoldi_common_a_CFLAGS): Added include path:
290         $(top_srcdir)/src/common.
291
292 2005-10-31  Moritz Schulte  <moritz@g10code.com>
293
294         * pam_poldi.c: Added some more comments.
295         (pam_sm_authenticate): Adjusted to new wait_for_card() API.
296         (conv_opaque_t): New type.
297         (pam_conversation): New function.
298         (wait_for_card): Removed function, it's not included in common/.
299         (do_auth): Removed function; use authenticate() now, which is
300         included in common/.
301         
302         (lookup_key): Removed function; use key_lookup_by_username() now,
303         which is included in common/.
304
305 2005-10-29  Moritz Schulte  <moritz@g10code.com>
306
307         * pam_poldi.c: More verbose logging.
308         (tell_user): Declare FMT const.
309
310 2005-10-23  Moritz Schulte  <moritz@g10code.com>
311
312         * pam_poldi.c: Remove Syslog logging macros, use jnlib logging
313         only (which does support logging to Syslog now).
314         (pam_sm_authenticate): Call log_set_syslog or log_set_file,
315         depending on the value of pam_poldi_opt.logfile.
316         (username_void, conv_void): New local variables, use them when
317         retrieving items from the PAM environment in order to follow
318         strict-aliasing rules.
319
320 2005-10-16  Moritz Schulte  <moritz@g10code.com>
321
322         * pam_poldi.c (lookup_key): Use key_filename_construct() instead
323         of make_filename() directly.
324         Re-ordered functions, clean-up, added comments.
325
326 2005-10-15  Moritz Schulte  <moritz@g10code.com>
327
328         * pam_poldi.c (parse_argv): Fixed typo related to timeout argument
329         parsing.
330
331 2005-10-08  Moritz Schulte  <moritz@g10code.com>
332
333         * pam_poldi.c: Remove `fake-wait-for-card'-feature.
334
335         * Makefile.am: Drop ugly install-pam-module mechanism, implement
336         install-exec-local and uninstall-local target.
337
338         * pam_poldi.c (pam_sm_authenticate): Disable buffering on stderr.
339         We need to disable bufferring on stderr, since it might have been
340         enabled by log_set_file().  Buffering on stderr will complicate
341         PAM interaction, since e.g. libpam-misc's misc_conv() function
342         does expect stderr to be unbuffered.
343
344 2005-09-27  Moritz Schulte  <moritz@g10code.com>
345
346         * pam_poldi.c (struct pam_poldi_opt): New member: TIMEOUT.
347         (pam_poldi_opt): Extend struct initialization.
348         (enum arg_opt_ids): New entry: ARG_WAIT_TIMEOUT.
349         (pam_poldi_options_cb): Handle ARG_WAIT_TIMEOUT.
350         (wait_for_card): New variables; TIMEOUT, WAIT; initialize them
351         depending on FAKE and PAM_POLDI_OPT.TIMEOUT; pass TIMEOUT and WAIT
352         to card_init.
353         (lookup_key): Use usersdb_lookup_by_username() instead of
354         username_to_serialno(); remove const attribute from SERIALNO.
355         (wait_for_card): Remove const attribute from SERIALNO.
356         (pam_sm_authenticate): Likewise.
357         (pam_sm_authenticate): Use usersdb_lookup_by_serialno() instead of
358         serialno_to_username(); remove const attribute from account.
359
360
361 2005-07-13  Moritz Schulte  <moritz@g10code.com>
362
363         * pam_poldi.c (wait_for_card): Adjust to new card_info() API.
364
365 2004-11-27  Moritz Schulte  <moritz@g10code.com>
366
367         * pam_poldi.c (wait_for_card): Adjust card_init caller.  Implement
368         require_card_switch option.