* keylist.c (list_internal_keys): Renamed from gpgsm_list_keys.
[gnupg.git] / sm / ChangeLog
1 2002-05-21  Werner Koch  <wk@gnupg.org>
2
3         * keylist.c (list_internal_keys): Renamed from gpgsm_list_keys.
4         (list_external_keys): New.
5         (gpgsm_list_keys): Dispatcher for above.
6         * call-dirmngr.c (lookup_cb,pattern_from_strlist)
7         (gpgsm_dirmngr_lookup): New.
8         * server.c (option_handler): Handle new option --list-mode.
9         (do_listkeys): Handle options and actually use the mode argument.
10         (get_status_string): New code TRUNCATED.
11
12         * import.c (gpgsm_import): Try to identify the type of input and
13         handle certs-only messages.
14
15 2002-05-14  Werner Koch  <wk@gnupg.org>
16
17         * gpgsm.c: New option --faked-system-time
18         * sign.c (gpgsm_sign): And use it here.
19         * certpath.c (gpgsm_validate_path): Ditto.
20
21 2002-05-03  Werner Koch  <wk@gnupg.org>
22
23         * certpath.c (gpgsm_validate_path): Added EXPTIME arg and changed
24         all callers.
25         * verify.c (gpgsm_verify): Tweaked usage of log_debug and
26         log_error.  Return EXPSIG status and add expiretime to VALIDSIG.
27
28 2002-04-26  Werner Koch  <wk@gnupg.org>
29
30         * gpgsm.h (DBG_AGENT,DBG_AGENT_VALUE): Replaced by DBG_ASSUAN_*.
31         Changed all users.
32
33         * call-agent.c (start_agent): Be more silent without -v.
34         * call-dirmngr.c (start_dirmngr): Ditto.
35
36 2002-04-25  Werner Koch  <wk@gnupg.org>
37
38         * call-agent.c (start_agent): Make copies of old locales and check
39         for setlocale.
40
41 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
42
43         * call-agent.c (start_agent): Fix error handling logic so the
44         locale is always correctly reset.
45
46 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
47
48         * server.c (option_handler): Accept display, ttyname, ttytype,
49         lc_ctype and lc_messages options.
50         * gpgsm.c (main): Allocate memory for these options.
51         * gpgsm.h (struct opt): Make corresponding members non-const.
52
53 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
54
55         * gpgsm.h (struct opt): New members display, ttyname, ttytype,
56         lc_ctype, lc_messages.
57         * gpgsm.c (enum cmd_and_opt_values): New members oDisplay,
58         oTTYname, oTTYtype, oLCctype, oLCmessages.
59         (opts): New entries for these options.
60         (main): Handle these new options.
61         * call-agent.c (start_agent): Set the various display and tty
62         parameter after resetting.
63
64 2002-04-18  Werner Koch  <wk@gnupg.org>
65
66         * certreqgen.c (gpgsm_genkey): Write status output on success.
67
68 2002-04-15  Werner Koch  <wk@gnupg.org>
69
70         * gpgsm.c (main): Check ksba version.
71
72         * certpath.c (find_up): New to use the authorithKeyIdentifier.
73         Use it in all other functions to locate the signing cert..
74
75 2002-04-11  Werner Koch  <wk@gnupg.org>
76
77         * certlist.c (cert_usable_p): New.
78         (gpgsm_cert_use_sign_p,gpgsm_cert_use_encrypt_p): New.
79         (gpgsm_cert_use_verify_p,gpgsm_cert_use_decrypt_p): New.
80         (gpgsm_add_to_certlist): Check the key usage.
81         * sign.c (gpgsm_sign): Ditto.
82         * verify.c (gpgsm_verify): Print a message wehn an unsuitable
83         certificate was used.
84         * decrypt.c (gpgsm_decrypt): Ditto
85         * keylist.c (print_capabilities): Determine values from the cert.
86
87 2002-03-28  Werner Koch  <wk@gnupg.org>
88
89         * keylist.c (list_cert_colon): Fixed listing of crt record; the
90         issuer is not at the right place.  Print a chainingID.
91         * certpath.c (gpgsm_walk_cert_chain): Be a bit more silent on
92         common errors.
93
94 2002-03-21  Werner Koch  <wk@gnupg.org>
95
96         * export.c: New.
97         * gpgsm.c: Add command --export.
98         * server.c (cmd_export): New.
99         
100 2002-03-13  Werner Koch  <wk@gnupg.org>
101
102         * decrypt.c (gpgsm_decrypt): Allow multiple recipients.
103
104 2002-03-12  Werner Koch  <wk@gnupg.org>
105
106         * certpath.c (check_cert_policy): Print the policy list.
107
108         * verify.c (gpgsm_verify): Detect certs-only message.
109
110 2002-03-11  Werner Koch  <wk@gnupg.org>
111
112         * import.c (gpgsm_import): Print a notice about imported certificates
113         when in verbose mode.
114
115         * gpgsm.c (main): Print INV_RECP status.
116         * server.c (cmd_recipient): Ditto.
117
118         * server.c (gpgsm_status2): New.  Allows for a list of strings.
119         (gpgsm_status): Divert to gpgsm_status2.
120
121         * encrypt.c (gpgsm_encrypt): Don't use a default key when no
122         recipients are given.  Print a NO_RECP status.
123
124 2002-03-06  Werner Koch  <wk@gnupg.org>
125
126         * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to
127         (do_listkeys): new.  Add pattern parsing.
128
129         * keylist.c (gpgsm_list_keys): Handle selection pattern.
130
131         * gpgsm.c: New command --learn-card
132         * call-agent.c (learn_cb,gpgsm_agent_learn): New.
133
134         * gpgsm.c (main): Print error messages for non-implemented commands.
135
136         * base64.c (base64_reader_cb): Use case insensitive compare of the
137         Content-Type string to detect plain base-64.
138
139 2002-03-05  Werner Koch  <wk@gnupg.org>
140
141         * gpgsm.c, gpgsm.h: Add local_user.
142         * sign.c (gpgsm_get_default_cert): New.
143         (get_default_signer): Use the new function if local_user is not
144         set otherwise used that value.
145         * encrypt.c (get_default_recipient): Removed.
146         (gpgsm_encrypt): Use gpgsm_get_default_cert.
147
148         * verify.c (gpgsm_verify): Better error text for a bad signature
149         found by comparing the hashs.
150
151 2002-02-27  Werner Koch  <wk@gnupg.org>
152
153         * call-dirmngr.c, call-agent.c: Add 2 more arguments to all uses
154         of assuan_transact.
155
156 2002-02-25  Werner Koch  <wk@gnupg.org>
157
158         * server.c (option_handler): Allow to use -2 for "send all certs
159         except the root cert".
160         * sign.c (add_certificate_list): Implement it here.
161         * certpath.c (gpgsm_is_root_cert): New.
162
163 2002-02-19  Werner Koch  <wk@gnupg.org>
164
165         * certpath.c (check_cert_policy): New.
166         (gpgsm_validate_path): And call it from here.
167         * gpgsm.c (main): New options --policy-file,
168         --disable-policy-checks and --enable-policy-checks.
169         * gpgsm.h (opt): Added policy_file, no_policy_checks.
170
171 2002-02-18  Werner Koch  <wk@gnupg.org>
172
173         * certpath.c (gpgsm_validate_path): Ask the agent to add the
174         certificate into the trusted list.
175         * call-agent.c (gpgsm_agent_marktrusted): New.
176
177 2002-02-07  Werner Koch  <wk@gnupg.org>
178
179         * certlist.c (gpgsm_add_to_certlist): Check that the specified
180         name identifies a certificate unambiguously.
181         (gpgsm_find_cert): Ditto.
182
183         * server.c (cmd_listkeys): Check that the data stream is available.
184         (cmd_listsecretkeys): Ditto.
185         (has_option): New.
186         (cmd_sign): Fix ambiguousity in option recognition.
187
188         * gpgsm.c (main): Enable --logger-fd.
189
190         * encrypt.c (gpgsm_encrypt): Increased buffer size for better
191         performance.
192
193         * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from
194         the agent.
195
196         * keylist.c (list_cert_colon): Filter out control characters.
197
198 2002-02-06  Werner Koch  <wk@gnupg.org>
199
200         * decrypt.c (gpgsm_decrypt): Bail out after an decryption error.
201
202         * server.c (reset_notify): Close input and output FDs.
203         (cmd_encrypt,cmd_decrypt,cmd_verify,cmd_sign.cmd_import)
204         (cmd_genkey): Close the FDs and release the recipient list even in
205         the error case.
206
207 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
208
209         * sign.c (gpgsm_sign): Do not release certificate twice.
210
211 2002-01-29  Werner Koch  <wk@gnupg.org>
212
213         * call-agent.c (gpgsm_agent_havekey): New.
214         * keylist.c (list_cert_colon): New arg HAVE_SECRET, print "crs"
215         when we know that the secret key is available.
216         (gpgsm_list_keys): New arg MODE, check whether a secret key is
217         available.  Changed all callers.
218         * gpgsm.c (main): New command --list-secret-keys.
219         * server.c (cmd_listsecretkeys): New.
220         (cmd_listkeys): Return secret keys with "crs" record.
221
222 2002-01-28  Werner Koch  <wk@gnupg.org>
223
224         * certreqgen.c (create_request): Store the email address in the req.
225
226 2002-01-25  Werner Koch  <wk@gnupg.org>
227
228         * gpgsm.c (main): Disable core dumps.
229
230         * sign.c (add_certificate_list): New.
231         (gpgsm_sign): Add the certificates to the CMS object.
232         * certpath.c (gpgsm_walk_cert_chain): New.
233         * gpgsm.h (server_control_s): Add included_certs.
234         * gpgsm.c: Add option --include-certs.
235         (gpgsm_init_default_ctrl): New.
236         (main): Call it.
237         * server.c (gpgsm_server): Ditto.
238         (option_handler): Support --include-certs.
239
240 2002-01-23  Werner Koch  <wk@gnupg.org>
241
242         * certpath.c (gpgsm_validate_path): Print the DN of a missing issuer.
243         * certdump.c (gpgsm_dump_string): New.
244         (print_dn): Replaced by above.
245
246 2002-01-22  Werner Koch  <wk@gnupg.org>
247
248         * certpath.c (unknown_criticals): New.
249         (allowed_ca): New.
250         (gpgsm_validate_path): Check validity, CA attribute, path length
251         and unknown critical extensions.
252
253 2002-01-21  Werner Koch  <wk@gnupg.org>
254
255         * gpgsm.c: Add option --enable-crl-checks.
256
257         * call-agent.c (start_agent): Implemented socket based access.
258         * call-dirmngr.c (start_dirmngr): Ditto.
259
260 2002-01-20  Werner Koch  <wk@gnupg.org>
261
262         * server.c (option_handler): New.
263         (gpgsm_server): Register it with assuan.
264
265 2002-01-19  Werner Koch  <wk@gnupg.org>
266
267         * server.c (gpgsm_server): Use assuan_deinit_server and setup
268         assuan logging if enabled.
269         * call-agent.c (inq_ciphertext_cb): Don't show the session key in
270         an Assuan log file.
271
272         * gpgsm.c (my_strusage): Take bugreport address from configure.ac
273
274 2002-01-15  Werner Koch  <wk@gnupg.org>
275
276         * import.c (gpgsm_import): Just do a basic cert check before
277         storing it.
278         * certpath.c (gpgsm_basic_cert_check): New.
279
280         * keydb.c (keydb_store_cert): New.
281         * import.c (store_cert): Removed and change all caller to use
282         the new function.
283         * verify.c (store_cert): Ditto.
284
285         * certlist.c (gpgsm_add_to_certlist): Validate the path
286
287         * certpath.c (gpgsm_validate_path): Check the trust list.
288         * call-agent.c (gpgsm_agent_istrusted): New.
289
290 2002-01-14  Werner Koch  <wk@gnupg.org>
291
292         * call-dirmngr.c (inq_certificate): Changed for new interface semantic.
293         * certlist.c (gpgsm_find_cert): New.
294
295 2002-01-13  Werner Koch  <wk@gnupg.org>
296
297         * fingerprint.c (gpgsm_get_certid): Print the serial and not the
298         hash after the dot.
299
300 2002-01-11  Werner Koch  <wk@gnupg.org>
301
302         * call-dirmngr.c: New.
303         * certpath.c (gpgsm_validate_path): Check the CRL here.
304         * fingerprint.c (gpgsm_get_certid): New.
305         * gpgsm.c: New options --dirmngr-program and --disable-crl-checks.
306
307 2002-01-10  Werner Koch  <wk@gnupg.org>
308
309         * base64.c (gpgsm_create_writer): Allow to set the object name
310
311 2002-01-08  Werner Koch  <wk@gnupg.org>
312
313         * keydb.c (spacep): Removed because it is now in util.c
314
315         * server.c (cmd_genkey): New.
316         * certreqgen.c: New.  The parameter handling code has been taken
317         from gnupg/g10/keygen.c version 1.0.6.
318         * call-agent.c (gpgsm_agent_genkey): New.
319
320 2002-01-02  Werner Koch  <wk@gnupg.org>
321
322         * server.c (rc_to_assuan_status): Removed and changed all callers
323         to use map_to_assuan_status.
324
325 2001-12-20  Werner Koch  <wk@gnupg.org>
326
327         * verify.c (gpgsm_verify): Implemented non-detached signature
328         verification.  Add OUT_FP arg, initialize a writer and changed all
329         callers.
330         * server.c (cmd_verify): Pass an out_fp if one has been set.
331
332         * base64.c (base64_reader_cb): Try to detect an S/MIME body part.
333
334         * certdump.c (print_sexp): Renamed to gpgsm_dump_serial, made
335         global.
336         (print_time): Renamed to gpgsm_dump_time, made global.
337         (gpgsm_dump_serial): Take a real S-Expression as argument and
338         print the first item.
339         * keylist.c (list_cert_colon): Ditto.
340         * keydb.c (keydb_search_issuer_sn): Ditto.
341         * decrypt.c (print_integer_sexp): Removed and made callers 
342         use gpgsm_dump_serial.
343         * verify.c (print_time): Removed, made callers use gpgsm_dump_time.
344         
345 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
346
347         * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
348
349 2001-12-18  Werner Koch  <wk@gnupg.org>
350
351         * verify.c (print_integer_sexp): Renamed from print_integer and
352         print the serial number according to the S-Exp rules.
353         * decrypt.c (print_integer_sexp): Ditto.
354
355 2001-12-17  Werner Koch  <wk@gnupg.org>
356
357         * keylist.c (list_cert_colon): Changed for new return value of
358         get_serial.
359         * keydb.c (keydb_search_issuer_sn): Ditto.
360         * certcheck.c (gpgsm_check_cert_sig): Likewise for other S-Exp
361         returingin functions.
362         * fingerprint.c (gpgsm_get_keygrip): Ditto.
363         * encrypt.c (encrypt_dek): Ditto
364         * certcheck.c (gpgsm_check_cms_signature): Ditto
365         * decrypt.c (prepare_decryption): Ditto.
366         * call-agent.c (gpgsm_agent_pkdecrypt): Removed arg ciphertextlen,
367         use KsbaSexp type and calculate the length.
368
369         * certdump.c (print_sexp): Remaned from print_integer, changed caller.
370
371         * Makefile.am: Use the LIBGCRYPT and LIBKSBA variables.
372
373         * fingerprint.c (gpgsm_get_keygrip): Use the new
374         gcry_pk_get_keygrip to calculate the grip - note the algorithm and
375         therefore the grip values changed.
376
377 2001-12-15  Werner Koch  <wk@gnupg.org>
378
379         * certcheck.c (gpgsm_check_cms_signature): Removed the faked-key
380         kludge.
381         (gpgsm_create_cms_signature): Removed the commented fake key
382         code.  This makes the function pretty simple.
383
384         * gpgsm.c (main): Renamed the default key database to "keyring.kbx".
385
386         * decrypt.c (gpgsm_decrypt): Write STATUS_DECRYPTION_*.
387         * sign.c (gpgsm_sign): Write a STATUS_SIG_CREATED.
388
389 2001-12-14  Werner Koch  <wk@gnupg.org>
390
391         * keylist.c (list_cert_colon): Kludge to show an email address
392         encoded in the subject's DN.
393
394         * verify.c (gpgsm_verify): Add hash debug helpers
395         * sign.c (gpgsm_sign): Ditto.
396
397         * base64.c (base64_reader_cb): Reset the linelen when we need to
398         skip the line and adjusted test; I somehow forgot about DeMorgan.
399
400         * server.c (cmd_encrypt,cmd_decrypt,cmd_sign,cmd_verify) 
401         (cmd_import): Close the FDs on success.
402         (close_message_fd): New.
403         (input_notify): Setting autodetect_encoding to 0 after initializing
404         it to 0 is pretty pointless.  Easy to fix.
405
406         * gpgsm.c (main): New option --debug-wait n, so that it is
407         possible to attach gdb when used in server mode.
408
409         * sign.c (get_default_signer): Use keydb_classify_name here.
410
411 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
412
413         * call-agent.c (LINELENGTH): Removed.
414         (gpgsm_agent_pksign): Use ASSUAN_LINELENGTH, not LINELENGTH.
415         (gpgsm_agent_pkdecrypt): Likewise.
416
417 2001-12-13  Werner Koch  <wk@gnupg.org>
418
419         * keylist.c (list_cert_colon): Print alternative names of subject
420         and a few other values.
421
422 2001-12-12  Werner Koch  <wk@gnupg.org>
423
424         * gpgsm.c (main): New options --assume-{armor,base64,binary}. 
425         * base64.c (base64_reader_cb): Fixed non-autodetection mode.
426
427 2001-12-04  Werner Koch  <wk@gnupg.org>
428
429         * call-agent.c (read_from_agent): Check for inquire responses.
430         (request_reply): Handle them using a new callback arg, changed all
431         callers.
432         (gpgsm_agent_pkdecrypt): New.
433
434 2001-11-27  Werner Koch  <wk@gnupg.org>
435
436         * base64.c: New.  Changed all other functions to use this instead
437         of direct creation of ksba_reader/writer.
438         * gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
439
440 2001-11-26  Werner Koch  <wk@gnupg.org>
441
442         * gpgsm.c: New option --agent-program
443         * call-agent.c (start_agent): Allow to override the default path
444         to the agent.
445
446         * keydb.c (keydb_add_resource): Create keybox
447
448         * keylist.c (gpgsm_list_keys): Fixed non-server keylisting.
449
450         * server.c (rc_to_assuan_status): New.  Use it for all commands.
451
452         
453  Copyright 2001, 2002 Free Software Foundation, Inc.
454
455  This file is free software; as a special exception the author gives
456  unlimited permission to copy and/or distribute it, with or without
457  modifications, as long as this notice is preserved.
458
459  This file is distributed in the hope that it will be useful, but
460  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
461  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.