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