fa6f0b7919895bec52227c22094fc17741ff5b01
[gnupg.git] / sm / ChangeLog
1 2008-05-20  Werner Koch  <wk@g10code.com>
2
3         * gpgsm.c (main) <aExportSecretKeyP12>: Pass FP and not stdout to
4         the export function.  Reported by Marc Mutz.
5
6 2008-05-06  Werner Koch  <wk@g10code.com>
7
8         * keylist.c (list_external_keys): Ignore NOT FOUND error code.
9         This is bug#907.
10
11 2008-04-23  Werner Koch  <wk@g10code.com>
12
13         * certchain.c (find_up): Make correct C89 code.  Declare variable
14         at the top of the block.  Reported by Alain Guibert.
15
16 2008-04-09  Werner Koch  <wk@g10code.com>
17
18         * verify.c (gpgsm_verify): Print the message hash values on error.
19
20 2008-03-31  Werner Koch  <wk@g10code.com>
21
22         * call-dirmngr.c (start_dirmngr): Use log_info instead of
23         log_error when falling back to start dirmngr.
24
25 2008-03-20  Werner Koch  <wk@g10code.com>
26
27         * certlist.c (gpgsm_add_to_certlist): Always save the first
28         subject and issuer.  Initialize issuer with issuer and not with
29         subject.
30         (same_subject_issuer): Set issuer2 to issuer and not to subject.
31
32 2008-03-17  Werner Koch  <wk@g10code.com>
33
34         * certdump.c (my_funopen_hook_size_t): New.
35         (format_name_writer): Use it.
36
37 2008-03-13  Werner Koch  <wk@g10code.com>
38
39         * certdump.c (gpgsm_fpr_and_name_for_status): Fix signed/unsigned
40         char issue.
41         (gpgsm_format_keydesc): Remove superfluous test.  Add expire date
42         to the prompt.
43
44 2008-02-18  Werner Koch  <wk@g10code.com>
45
46         * certchain.c (gpgsm_is_root_cert): Factor code out to ...
47         (is_root_cert): New.  Extend test for self-issued certificates
48         signed by other CAs.
49         (do_validate_chain, gpgsm_basic_cert_check)
50         (gpgsm_walk_cert_chain): Use it here.
51
52         * gpgsm.c: Add option --no-common-certs-import.
53         
54         * certchain.c (find_up_dirmngr, find_up, do_validate_chain)
55         (check_cert_policy): Be more silent with --quiet.
56
57         * gpgsm.c: Add option --disable-dirmngr.
58         * gpgsm.h (opt): Add field DISABLE_DIRMNGR.
59         * call-dirmngr.c (start_dirmngr): Implement option.
60
61 2008-02-14  Werner Koch  <wk@g10code.com>
62
63         * server.c (option_handler): Add option allow-pinentry-notify.
64         (gpgsm_proxy_pinentry_notify): New.
65         * call-agent.c (default_inq_cb): New.
66         (gpgsm_agent_pksign, gpgsm_scd_pksign, gpgsm_agent_readkey) 
67         (gpgsm_agent_istrusted, gpgsm_agent_marktrusted) 
68         (gpgsm_agent_passwd, gpgsm_agent_get_confirmation): Call it.
69         (struct cipher_parm_s, struct genkey_parm_s): Add field CTRL.
70         (inq_ciphertext_cb): Test keyword and fallback to default_inq_cb.
71         (inq_genkey_parms): Ditto.
72         (start_agent): Tell agent to send us the pinentry notifications.
73
74 2008-02-13  Werner Koch  <wk@g10code.com>
75
76         * call-dirmngr.c (gpgsm_dirmngr_lookup): Add arg CACHE_ONLY.
77         * keylist.c (list_external_keys): Pass false for new arg.
78         * certchain.c (find_up_dirmngr): New.
79         (find_up): Also try to read from the dirmngr cache.
80         (find_up, find_up_external, gpgsm_walk_cert_chain)
81         (gpgsm_basic_cert_check, allowed_ca): Add arg CTRL and changed all
82         callers.
83         * call-agent.c (struct learn_parm_s): Add field CTRL.
84         (gpgsm_agent_learn): Set it.
85
86 2008-02-11  Werner Koch  <wk@g10code.com>
87
88         * server.c (cmd_getinfo): New.
89         (gpgsm_server): Register GETINFO.
90
91 2008-01-29  Marcus Brinkmann  <marcus@g10code.de>
92
93         * keylist.c (list_internal_keys): New variable lastcert.  Use it
94         to suppress duplicates which immediately follow each other.
95
96 2008-01-27  Werner Koch  <wk@g10code.com>
97
98         * import.c (popen_protect_tool): Set bit 7 in the flags for
99         gnupg_spawn_process so that under W32 no window appears.
100         * export.c (popen_protect_tool): Ditto.
101
102 2007-12-13  Werner Koch  <wk@g10code.com>
103
104         * gpgsm.c (main): Add option --extra-digest-algo.
105         * gpgsm.h (struct): Add EXTRA_DIGEST_ALGO.
106         * verify.c (gpgsm_verify): Use it.  Use the hash algorithm from
107         the signature value.
108
109 2007-12-11  Werner Koch  <wk@g10code.com>
110
111         * certchain.c (do_validate_chain): Log AUDIT_ROOT_TRUSTED.
112
113         * server.c (cmd_sign, cmd_decrypt, cmd_encrypt): Start audit log.
114         (cmd_recipient): Start audit session.
115
116         * gpgsm.c (main): Revamp creation of the audit log.
117
118         * gpgsm.h (struct server_control_s): Add AGENT_SEEN and DIRMNGR_SEEN.
119         * call-agent.c (start_agent): Record an audit event.
120         * call-dirmngr.c (start_dirmngr): Ditto. Add new arg CTRL and pass
121         it from all callers.
122         (prepare_dirmngr): New helper for start_dirmngr.
123
124         * encrypt.c (gpgsm_encrypt): Add calls to audit_log.
125
126 2007-12-03  Werner Koch  <wk@g10code.com>
127
128         * gpgsm.c (main): Call gnupg_reopen_std.
129
130 h2007-11-22  Werner Koch  <wk@g10code.com>
131
132         * server.c (cmd_getauditlog): New.
133         (register_commands): Register GETAUDITLOG.
134
135 2007-11-19  Werner Koch  <wk@g10code.com>
136
137         * server.c (cmd_recipient, cmd_signer): Add error reason 11.
138
139         * gpgsm.c (main): Print a warning if --audit-log is used.
140
141 2007-11-15  Werner Koch  <wk@g10code.com>
142
143         * gpgsm.h (struct): Add XAUTHORITY and PINENTRY_USER_DATA.
144         * misc.c (setup_pinentry_env): Add XAUTHORITY and PINENTRY_USER_DATA.
145         * gpgsm.c (main): New option --xauthority.
146         * call-agent.c (start_agent): Adjust for changed start_new_gpg_agent.
147         * server.c (option_handler): Ad the new options.
148
149 2007-11-07  Werner Koch  <wk@g10code.com>
150
151         * gpgsm.c (main): New option --audit-log.
152         * server.c (option_handler): New option enable-audit-log.
153         (start_audit_session): New.
154         (cmd_verify): Create audit context.
155         (gpgsm_server): Release the context.
156
157         * gpgsm.h (struct server_control_s): Add member AUDIT, include
158         audit.h.
159         * certdump.c (gpgsm_format_sn_issuer): New.
160         * verify.c (hash_data): Return an error code.
161         (gpgsm_verify): Add calls to audit_log.
162
163         * gpgsm.c (get_status_string): Remove.
164         * gpgsm.h: Include status.h instead of errors.h.
165         
166 2007-10-19  Werner Koch  <wk@g10code.com>
167
168         * qualified.c (gpgsm_qualified_consent): Use i18N-swicth functions.
169         (gpgsm_not_qualified_warning): Ditto.
170         * certdump.c (gpgsm_format_keydesc): Ditto.
171
172 2007-09-14  Werner Koch  <wk@g10code.com>
173
174         * gpgsm.c (build_lib_list): New.
175         (my_strusage): Print lib info.
176
177 2007-08-24  Werner Koch  <wk@g10code.com>
178
179         * Makefile.am (common_libs): Swap libkeybox and jnlib. 
180
181 2007-08-23  Werner Koch  <wk@g10code.com>
182
183         * certlist.c (gpgsm_certs_identical_p): New.
184         (gpgsm_add_to_certlist): Ignore duplicate certificates in
185         ambigious name detection.
186         (gpgsm_find_cert): Ditto.
187         * export.c (gpgsm_p12_export): Ditto.
188
189 2007-08-22  Werner Koch  <wk@g10code.com>
190
191         * certreqgen.c (create_request): Replace open coding by bin2hex.
192
193         * certreqgen-ui.c (gpgsm_gencertreq_tty): Use es_fopenmem.
194
195 2007-08-21  Werner Koch  <wk@g10code.com>
196
197         * import.c (parse_p12): Use gnupg_tmpfile.
198         * export.c (export_p12): Ditto.
199         
200 2007-08-20  Werner Koch  <wk@g10code.com>
201
202         * certreqgen.c (read_parameters): Change FP to an estream_t.
203         (gpgsm_genkey): Replace in_fd and in_stream by a estream_t.
204         * server.c (cmd_genkey): Adjust for that.
205         * certreqgen-ui.c (gpgsm_gencertreq_tty): Use es_open_memstream
206         instead of a temporary file.
207
208 2007-08-14  Werner Koch  <wk@g10code.com>
209
210         * call-dirmngr.c (start_dirmngr): Use dirmngr_socket_name.  change
211         the way infostr is xstrdupped.
212
213         * gpgsm.c (main) [W32]: Make --prefer-system-dirmngr a dummy under
214         Windows.
215
216 2007-08-13  Werner Koch  <wk@g10code.com>
217
218         * gpgsm.c (do_add_recipient): Add RECP_REQUIRED and make error
219         message depend on that.
220         (main): Add avriable RECP_REQUIRED, set ift for encryption
221         commands and pass it to do_add_recipient.
222         (our_pk_test_algo, our_cipher_test_algo, our_md_test_algo): Implement.
223
224 2007-08-09  Werner Koch  <wk@g10code.com>
225
226         * gpgsm.c (main) [W32]: Enable CRL check by default.
227         (main): Update the default control structure after reading the
228         options.
229         (gpgsm_parse_validation_model, parse_validation_model): New.
230         (main): New option --validation-model.
231         * certchain.c (gpgsm_validate_chain): Implement this option.
232         * server.c (option_handler): Ditto.
233
234         * certchain.c (is_cert_still_valid): Reformatted.  Add arg
235         FORCE_OCSP.  Changed callers to set this flag when using the chain
236         model.
237
238 2007-08-08  Werner Koch  <wk@g10code.com>
239
240         * certdump.c (gpgsm_print_serial): Fixed brown paper bag style bugs
241         which prefixed the output with a 3A and cut it off at a 00.
242
243         * keylist.c (list_cert_raw): Print the certificate ID first and
244         rename "Serial number" to "S/N".
245         (list_cert_std): Ditto.
246
247 2007-08-07  Werner Koch  <wk@g10code.com>
248
249         * gpgsm.c (main): Allow a string for --faked-system-time.
250
251 2007-08-06  Werner Koch  <wk@g10code.com>
252
253         Implementation of the chain model.
254         
255         * gpgsm.h (struct rootca_flags_s): Define new members VALID and
256         CHAIN_MODEL.
257         * call-agent.c (gpgsm_agent_istrusted): Mark ROOTCA_FLAGS valid.
258         (istrusted_status_cb): Set CHAIN_MODEL.
259         * certchain.c (gpgsm_validate_chain): Replace LM alias by LISTMODE
260         and FP by LISTFP.
261         (gpgsm_validate_chain): Factor some code out to ...
262         (check_validity_period, ask_marktrusted): .. new.
263         (check_validity_cm_basic, check_validity_cm_main): New.
264         (do_validate_chain): New with all code from gpgsm_validate_chain.
265         New arg ROOTCA_FLAGS.
266         (gpgsm_validate_chain): Provide ROOTCA_FLAGS and fallback to chain
267         model.  Add RETFLAGS arg and changed all callers to pass NULL. Add
268         CHECKTIME arg and changed all callers to pass a nil value.
269         (has_validity_model_chain): New.
270         * verify.c (gpgsm_verify): Check for chain model and return as
271         part of the trust status.
272
273         * gpgsm.h (VALIDATE_FLAG_NO_DIRMNGR): New.
274         (VALIDATE_FLAG_NO_DIRMNGR): New.
275         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Use constant here.
276
277 2007-08-03  Werner Koch  <wk@g10code.com>
278
279         * keylist.c (list_cert_colon): Avoid duplicate listing of kludge
280         uids.
281
282         * verify.c (gpgsm_verify): Make STATUS_VERIFY return the hash and
283         pk algo.
284         * certcheck.c (gpgsm_check_cms_signature): Add arg R_PKALGO.
285
286 2007-08-02  Werner Koch  <wk@g10code.com>
287
288         * gpgsm.c (main): Factored GC_OPT_FLAGS out to gc-opt-flags.h.
289
290 2007-07-17  Werner Koch  <wk@g10code.com>
291
292         * gpgsm.c (main): Implement --default-key.
293         (main) <gpgconf-list>: Declare --default-key and --encrypt-to.
294
295 2007-07-16  Werner Koch  <wk@g10code.com>
296
297         * server.c (cmd_message): Use gnupg_fd_t to avoid dependecy on
298         newer assuan versions.
299
300 2007-07-12  Werner Koch  <wk@g10code.com>
301
302         * gpgsm.c (check_special_filename): Use translate_sys2libc_fd_int
303         when passing an int value.
304         * server.c (cmd_encrypt, cmd_decrypt, cmd_verify, cmd_import)
305         (cmd_export, cmd_message, cmd_genkey):  Translate file descriptors.
306         
307 2007-07-05  Werner Koch  <wk@g10code.com>
308
309         * Makefile.am (common_libs): Changed order of libs.
310
311 2007-07-04  Werner Koch  <wk@g10code.com>
312
313         * certchain.c (check_cert_policy): Remove extra checks for
314         GPG_ERR_NO_VALUE.  They are not needed since libksba 1.0.1.
315         * keylist.c (print_capabilities, list_cert_raw, list_cert_std): Ditto.
316         * certlist.c (cert_usage_p, cert_usage_p): Ditto.
317
318 2007-06-26  Werner Koch  <wk@g10code.com>
319
320         * gpgsm.c (main): Call gnupg_rl_initialize.
321         * Makefile.am (gpgsm_LDADD): Add LIBREADLINE and libgpgrl.a.
322
323 2007-06-25  Werner Koch  <wk@g10code.com>
324
325         * gpgsm.c (check_special_filename): Use translate_sys2libc_fd and
326         add new arg FOR_WRITE.  Change callers to pass new arg.
327
328 2007-06-24  Werner Koch  <wk@g10code.com>
329
330         * gpgsm.c (open_es_fwrite): Avoid the dup by using the new
331         es_fdopen_nc().  
332
333 2007-06-21  Werner Koch  <wk@g10code.com>
334
335         * certreqgen-ui.c: New.
336         * gpgsm.c (main): Let --gen-key call it.
337         * certreqgen.c (gpgsm_genkey): Add optional IN_STREAM arg and
338         adjusted caller.
339
340         * gpgsm.h (ctrl_t): Remove.  It is now declared in ../common/util.h.
341
342         * call-agent.c (start_agent): Factored almost all code out to
343         ../common/asshelp.c.
344
345 2007-06-20  Werner Koch  <wk@g10code.com>
346
347         * call-agent.c (start_agent) [W32]: Start the agent on the fly.
348
349 2007-06-18  Marcus Brinkmann  <marcus@g10code.de>
350
351         * gpgsm.c (main): Percent escape output of --gpgconf-list.
352
353 2007-06-14  Werner Koch  <wk@g10code.com>
354
355         * call-agent.c (start_agent): Use gnupg_module_name.
356         * call-dirmngr.c (start_dirmngr): Ditto.
357         * export.c (export_p12): Ditto.
358         * import.c (parse_p12): Ditto.
359         * gpgsm.c (run_protect_tool): Ditto.
360
361 2007-06-12  Werner Koch  <wk@g10code.com>
362
363         * gpgsm.c (main): Replace some calls by init_common_subsystems.
364         (main): Use gnupg_datadir.
365         * qualified.c (read_list): Use gnupg-datadir.
366
367 2007-06-11  Werner Koch  <wk@g10code.com>
368
369         * Makefile.am (common_libs): Use libcommaonstd macr.
370
371         * gpgsm.c (main) [W32]: Call pth_init.
372
373 2007-06-06  Werner Koch  <wk@g10code.com>
374
375         * qualified.c (gpgsm_not_qualified_warning) [!ENABLE_NLS]: Do not
376         define orig_codeset.
377         * certdump.c (gpgsm_format_keydesc) [!ENABLE_NLS]: Do not define
378         orig_codeset.
379         (format_name_writer): Define only if funopen et al is available.
380
381         * gpgsm.c (i18n_init): Remove.
382
383 2007-05-29  Werner Koch  <wk@g10code.com>
384
385         * export.c (gpgsm_p12_export): Print passphrase encoding info only
386         in PEM mode.
387
388 2007-05-18  Marcus Brinkmann  <marcus@g10code.de>
389
390         * qualified.c (gpgsm_qualified_consent,
391         gpgsm_not_qualified_warning): Free ORIG_CODESET on error.
392         * certdump.c (gpgsm_format_keydesc): Likewise.
393
394 2007-05-07  Werner Koch  <wk@g10code.com>
395
396         * certcheck.c (MY_GCRY_PK_ECDSA): New.
397
398 2007-04-20  Werner Koch  <wk@g10code.com>
399
400         * gpgsm.c (main): Parameterize failed versions check messages.
401
402 2007-04-19  Werner Koch  <wk@g10code.com>
403
404         * certcheck.c (do_encode_md): Add arg PKEY.  Add support for DSA2
405         and all ECDSA sizes.
406         (get_dsa_qbits): New.
407         (pk_algo_from_sexp): A key will never contain ecdsa as algorithm,
408         so remove that.
409
410 2007-04-18  Werner Koch  <wk@g10code.com>
411
412         * certcheck.c (do_encode_md): Support 160 bit ECDSA.
413
414 2007-04-13  Werner Koch  <wk@g10code.com>
415
416         * call-agent.c (start_agent): Don't use log_error when using the
417         fallback hack to start the agent.  This is bug 782.
418
419 2007-03-20  Werner Koch  <wk@g10code.com>
420
421         * fingerprint.c (gpgsm_get_fingerprint): Add caching.
422         (gpgsm_get_fingerprint_string): Use bin2hexcolon().
423         (gpgsm_get_fingerprint_hexstring): Use bin2hex and allocate only
424         as much memory as required.
425         (gpgsm_get_keygrip_hexstring): Use bin2hex.
426
427         * certchain.c (gpgsm_validate_chain): Keep track of the
428         certificate chain and reset the ephemeral flags.
429         * keydb.c (keydb_set_cert_flags): New args EPHEMERAL and MASK.
430         Changed caller to use a mask of ~0.  Return a proper error code if
431         the certificate is not available.
432
433         * gpgsm.c: Add option --p12-charset.
434         * gpgsm.h (struct opt): Add p12_charset. 
435         * export.c (popen_protect_tool): Use new option.
436
437 2007-03-19  Werner Koch  <wk@g10code.com>
438
439         Changes to let export and key listing use estream to help systems
440         without funopen.
441         
442         * keylist.c: Use estream in place of stdio functions.
443         * gpgsm.c (open_es_fwrite): New.
444         (main): Use it for the list commands.
445         * server.c (data_line_cookie_functions): New.
446         (data_line_cookie_write, data_line_cookie_close): New.
447         (do_listkeys): Use estream.
448
449         * certdump.c (gpgsm_print_serial): Changed to use estream.
450         (gpgsm_print_time): Ditto.
451         (pretty_es_print_sexp): New.
452         (gpgsm_es_print_name): New.
453         (print_dn_part): New arg STREAM.  Changed all callers.
454         (print_dn_parts): Ditto.
455         * certchain.c (gpgsm_validate_chain): Changed FP to type
456         estream_t.
457         (do_list, unknown_criticals, allowed_ca, check_cert_policy) 
458         (is_cert_still_valid): Ditto.
459
460         * export.c (gpgsm_export): New arg STREAM.
461         (do_putc, do_fputs): New.
462         (print_short_info): Allow printing to optional STREAM.
463         * server.c (cmd_export): Use stream.
464         * base64.c (do_putc, do_fputs): New.
465         (base64_writer_cb, base64_finish_write): Let them cope with an
466         alternate output function.
467         (plain_writer_cb): New.
468         (gpgsm_create_writer): New arg STREAM and call plain_writer_cb for
469         binary output to an estream.  Changed call callers.
470
471 2007-01-31  Werner Koch  <wk@g10code.com>
472
473         * gpgsm.c (main): Let --gen-key print a more informative error
474         message.
475
476 2007-01-25  Werner Koch  <wk@g10code.com>
477
478         * Makefile.am (gpgsm_LDADD): Add LIBICONV.  Noted by Billy Halsey.
479
480 2007-01-05  Werner Koch  <wk@g10code.com>
481
482         * certchain.c (unknown_criticals): Add subjectAltName.
483
484 2006-12-21  Werner Koch  <wk@g10code.com>
485
486         * gpgsm.c: Comment mtrace feature.
487
488 2006-12-21  Marcus Brinkmann  <marcus@g10code.de>
489
490         * certchain.c (gpgsm_basic_cert_check): Release SUBJECT.
491
492         * encrypt.c (encrypt_dek): Release S_CIPH.
493
494 2006-12-20  Marcus Brinkmann  <marcus@g10code.de>
495
496         * server.c (gpgsm_server): Release CTRL->server_local.
497
498         * base64.c: Add new members READER and WRITER in union U2.
499         (gpgsm_create_reader): Initialise CTX->u2.reader.
500         (gpgsm_destroy_reader): Invoke ksba_reader_release.  Return early
501         if CTX is NULL.
502         (gpgsm_create_writer): Initialise CTX->u2.writer.
503         (gpgsm_destroy_writer): Invoke ksba_writer_release.  Return early
504         if CTX is NULL.
505
506 2006-12-18  Marcus Brinkmann  <marcus@g10code.de>
507
508         * fingerprint.c (gpgsm_get_fingerprint): Close MD.
509
510 2006-11-24  Werner Koch  <wk@g10code.com>
511
512         * certdump.c (parse_dn_part): Take '#' as a special character only
513         at the beginning of a string.
514
515 2006-11-21  Werner Koch  <wk@g10code.com>
516
517         * certdump.c (my_funopen_hook_ret_t): New.
518         (format_name_writer): Use it for the return value.
519
520 2006-11-14  Werner Koch  <wk@g10code.com>
521
522         * server.c (skip_options): Skip leading spaces.
523         (has_option): Honor "--".
524         (cmd_export): Add option --data to do an inline export.  Skip all
525         options.
526
527         * certdump.c (gpgsm_fpr_and_name_for_status): New.
528         * verify.c (gpgsm_verify): Use it to print correct status messages.
529
530 2006-11-11  Werner Koch  <wk@g10code.com>
531
532         * server.c (skip_options): New.
533
534 2006-10-24  Marcus Brinkmann  <marcus@g10code.de>
535
536         * Makefile.am (AM_CFLAGS): Add $(LIBASSUAN_CFLAGS).
537
538 2006-10-23  Werner Koch  <wk@g10code.com>
539
540         * gpgsm.c (main): Remap common cipher algo names to their OIDs.
541         (main): New command --gpgconf-test.
542
543 2006-10-20  Werner Koch  <wk@g10code.com>
544
545         * keydb.c (classify_user_id): Parse keygrip for the '&' identifier.
546
547 2006-10-18  Werner Koch  <wk@g10code.com>
548
549         * keylist.c (list_cert_raw): Also test for GPG_ERR_NO_VALUE when
550         testing for GPG_ERR_NO_DATA.
551         * certlist.c (cert_usage_p, gpgsm_find_cert): Ditto.
552         * certchain.c (check_cert_policy): Ditto.
553
554         * keylist.c (list_cert_std, list_cert_raw): Print "none" for no
555         chain length available.
556
557 2006-10-17  Werner Koch  <wk@g10code.com>
558
559         * gpgsm.c: No need for pth.h.  
560         (main): or to init it. It used to be hack for W32.
561
562         * sign.c (gpgsm_get_default_cert): Changed to return only
563         certificates usable for signing.
564
565 2006-10-16  Werner Koch  <wk@g10code.com>
566
567         * certchain.c (already_asked_marktrusted) 
568         (set_already_asked_marktrusted): New.
569         (gpgsm_validate_chain) <not trusted>: Keep track of certificates
570         we already asked for.
571
572 2006-10-11  Werner Koch  <wk@g10code.com>
573
574         * certreqgen.c (proc_parameters, create_request): Allow for
575         creation directly from a card.
576         * call-agent.c (gpgsm_agent_readkey): New arg FROMCARD.
577         (gpgsm_scd_pksign): New.
578
579 2006-10-06  Werner Koch  <wk@g10code.com>
580
581         * Makefile.am (AM_CFLAGS): Use PTH version of libassuan.
582         (gpgsm_LDADD): Ditto.
583
584 2006-10-05  Werner Koch  <wk@g10code.com>
585
586         * certcheck.c (do_encode_md): Check that the has algo is valid.
587
588 2006-10-02  Marcus Brinkmann  <marcus@g10code.de>
589
590         * server.c (register_commands): New commands DUMPKEYS and
591         DUMPSECRETKEYS.
592         (cmd_dumpkeys, cmd_dumpsecretkeys): New functions.
593         (option_handler): Support with-key-data option.
594
595 2006-09-26  Werner Koch  <wk@g10code.com>
596
597         * certchain.c (gpgsm_validate_chain): More changes for the relax
598         feature.  Use certificate reference counting instead of the old
599         explicit tests. Added a missing free. 
600
601 2006-09-25  Werner Koch  <wk@g10code.com>
602
603         * gpgsm.h (struct rootca_flags_s): New.
604         * call-agent.c (istrusted_status_cb): New.
605         (gpgsm_agent_istrusted): New arg ROOTCA_FLAGS.
606         * keylist.c (list_cert_colon): Use dummy for new arg.
607         * certchain.c (gpgsm_validate_chain): Make use of the relax flag
608         for root certificates.
609         (unknown_criticals): Ignore a GPG_ERR_NO_VALUE.
610
611 2006-09-20  Werner Koch  <wk@g10code.com>
612
613         * gpgsm.c: Add alias command --dump-cert.
614
615         * Makefile.am:  Changes to allow parallel make runs.
616
617 2006-09-18  Werner Koch  <wk@g10code.com>
618
619         * gpgsm.c (main): Use this to import standard certificates.
620         * keydb.c (keydb_add_resource): New arg AUTO_CREATED.
621
622 2006-09-14  Werner Koch  <wk@g10code.com>
623
624         Replaced all call gpg_error_from_errno(errno) by
625         gpg_error_from_syserror().
626
627 2006-09-13  Werner Koch  <wk@g10code.com>
628
629         * keylist.c (list_internal_keys): Print marker line to FP and not
630         to stdout.
631
632         * gpgsm.c (main): All list key list commands now make ose of
633         --output. Cleaned up calls to list modes.  New command
634         --dump-chain.  Renamed --list-sigs to --list-chain and added an
635         alias for the old one.
636
637         * server.c (cmd_message): Changed to use assuan_command_parse_fd.
638         (option_handler): New option list-to-output.
639         (do_listkeys): Use it.
640
641 2006-09-06  Werner Koch  <wk@g10code.com>
642
643         * gpgsm.h (OUT_OF_CORE): Removed and changed all callers to
644         out_of_core.
645         (CTRL): Removed and changed everywhere to ctrl_t.
646         (CERTLIST): Ditto.
647
648         Replaced all Assuan error codes by libgpg-error codes.  Removed
649         all map_to_assuan_status and map_assuan_err.
650         
651         * gpgsm.c (main): Call assuan_set_assuan_err_source to have Assuan
652         switch to gpg-error codes.  
653         * server.c (set_error): Adjusted.
654
655 2006-08-29  Werner Koch  <wk@g10code.com>
656
657         * call-agent.c (gpgsm_agent_pkdecrypt): Allow decryption using
658         complete S-expressions as implemented by the current gpg-agent.
659
660         * gpgsm.c (main): Implement --output for encrypt, decrypt, sign
661         and export.
662
663 2006-07-03  Werner Koch  <wk@g10code.com>
664
665         * certreqgen.c (proc_parameters): Print the component label of a
666         faulty DN.
667
668 2006-06-26  Werner Koch  <wk@g10code.com>
669
670         * certdump.c (gpgsm_cert_log_name): New.
671         * certchain.c (is_cert_still_valid): Log the name of the certificate.
672
673 2006-06-20  Werner Koch  <wk@g10code.com>
674
675         * gpgsm.c (gpgsm_init_default_ctrl): Take care of the command line
676         option --include-certs.
677
678         * keylist.c (list_cert_raw): Print the certid.
679
680 2006-05-23  Werner Koch  <wk@g10code.com>
681
682         * keydb.c (hextobyte): Deleted as it is now defined in jnlib.
683
684         * Makefile.am (gpgsm_LDADD): Include ZLIBS.
685
686 2006-05-19  Marcus Brinkmann  <marcus@g10code.de>
687
688         * keydb.c (keydb_insert_cert): Do not lock here, but only check if
689         it is locked.
690         (keydb_store_cert): Lock here.
691
692         * keydb.h (keydb_delete): Accept new argument UNLOCK.
693         * keydb.c (keydb_delete): Likewise.  Only unlock if this is set.
694         * delete.c (delete_one): Add new argument to invocation of
695         keydb_delete.
696         
697 2006-05-15  Werner Koch  <wk@g10code.com>
698
699         * keylist.c (print_names_raw): Sanitize URI.
700
701 2006-03-21  Werner Koch  <wk@g10code.com>
702
703         * certchain.c (get_regtp_ca_info): New.
704         (allowed_ca): Use it.
705
706 2006-03-20  Werner Koch  <wk@g10code.com>
707
708         * qualified.c (gpgsm_is_in_qualified_list): New optional arg COUNTRY.
709
710 2006-02-17  Werner Koch  <wk@g10code.com>
711
712         * call-dirmngr.c (start_dirmngr): Print name of dirmngr to be started.
713
714 2005-11-23  Werner Koch  <wk@g10code.com>
715
716         * gpgsm.h: New member QUALSIG_APPROVAL.
717         * sign.c (gpgsm_sign): Print a warning if a certificate is not
718         qualified.
719         * qualified.c (gpgsm_qualified_consent): Include a note that this
720         is not approved software.
721         (gpgsm_not_qualified_warning): New.
722         * gpgsm.c (main): Prepared to print a note whether the software
723         has been approved.
724
725 2005-11-13  Werner Koch  <wk@g10code.com>
726
727         * call-agent.c (gpgsm_agent_get_confirmation): New.
728
729         * keylist.c (list_cert_std): Print qualified status.
730         * qualified.c: New.
731         * certchain.c (gpgsm_validate_chain): Check for qualified
732         certificates.
733
734         * certchain.c (gpgsm_basic_cert_check): Release keydb handle when
735         no-chain-validation is used.
736
737 2005-11-11  Werner Koch  <wk@g10code.com>
738
739         * keylist.c (print_capabilities): Print is_qualified status.
740
741 2005-10-28  Werner Koch  <wk@g10code.com>
742
743         * certdump.c (pretty_print_sexp): New.
744         (gpgsm_print_name2): Use it here.  This allows proper printing of
745         DNS names as used with server certificates.
746
747 2005-10-10  Werner Koch  <wk@g10code.com>
748
749         * keylist.c: Add pkaAdress OID as reference.
750
751 2005-10-08  Marcus Brinkmann  <marcus@g10code.de>
752
753         * Makefile.am (gpgsm_LDADD): Add ../gl/libgnu.a after
754         ../common/libcommon.a.
755
756 2005-09-13  Werner Koch  <wk@g10code.com>
757
758         * verify.c (gpgsm_verify): Print a note if the unknown algorithm
759         is MD2.
760         * sign.c (gpgsm_sign): Ditto.
761         * certcheck.c (gpgsm_check_cert_sig): Ditto.
762
763 2005-09-08  Werner Koch  <wk@g10code.com>
764
765         * export.c (popen_protect_tool): Add option --have-cert.  We
766         probably lost this option with 1.9.14 due to restructuring of
767         export.c.
768
769 2005-07-21  Werner Koch  <wk@g10code.com>
770
771         * gpgsm.c (main): New options --no-log-file and --debug-none.
772
773         * certreqgen.c (get_parameter, get_parameter_value): Add SEQ arg
774         to allow enumeration.  Changed all callers.
775         (create_request): Process DNS and URI parameters.
776
777 2005-07-20  Werner Koch  <wk@g10code.com>
778
779         * keylist.c (email_kludge): Reworked.
780
781         * certdump.c (gpgsm_print_serial, gpgsm_dump_serial): Cast printf
782         arg to unsigned.
783         * call-dirmngr.c (gpgsm_dirmngr_run_command): Ditto
784
785 2005-07-19  Werner Koch  <wk@g10code.com>
786
787         * fingerprint.c (gpgsm_get_certid): Cast printf arg to unsigned.
788         Bug accidently introduced while solving the #$%^& gcc
789         signed/unsigned char* warnings.
790
791 2005-06-15  Werner Koch  <wk@g10code.com>
792
793         * delete.c (delete_one): Changed FPR to unsigned.
794         * encrypt.c (encrypt_dek): Made ENCVAL unsigned.
795         (gpgsm_encrypt): Ditto.
796         * sign.c (gpgsm_sign): Made SIGVAL unsigned.
797         * base64.c (base64_reader_cb): Need to use some casting to get
798         around signed/unsigned char* warnings.
799         * certcheck.c (gpgsm_check_cms_signature): Ditto.
800         (gpgsm_create_cms_signature): Changed arg R_SIGVAL to unsigned char*.
801         (do_encode_md): Made NFRAME a size_t.
802         * certdump.c (gpgsm_print_serial): Fixed signed/unsigned warning.
803         (gpgsm_dump_serial): Ditto.
804         (gpgsm_format_serial): Ditto.
805         (gpgsm_dump_string): Ditto.
806         (gpgsm_dump_cert): Ditto.
807         (parse_dn_part): Ditto.
808         (gpgsm_print_name2): Ditto.
809         * keylist.c (email_kludge): Ditto.
810         * certreqgen.c (proc_parameters, create_request): Ditto.
811         (create_request): Ditto.
812         * call-agent.c (gpgsm_agent_pksign): Made arg R_BUF unsigned.
813         (struct cipher_parm_s): Made CIPHERTEXT unsigned.
814         (struct genkey_parm_s): Ditto.
815         * server.c (strcpy_escaped_plus): Made arg S signed char*.
816         * fingerprint.c (gpgsm_get_fingerprint): Made ARRAY unsigned.
817         (gpgsm_get_keygrip): Ditto.
818         * keydb.c (keydb_insert_cert): Made DIGEST unsigned.
819         (keydb_update_cert): Ditto.
820         (classify_user_id): Apply cast to signed/unsigned assignment.
821         (hextobyte): Ditto.
822
823 2005-06-01  Werner Koch  <wk@g10code.com>
824
825         * misc.c: Include setenv.h.
826
827 2005-04-21  Werner Koch  <wk@g10code.com>
828
829         * gpgsm.c: New options --{enable,disable}-trusted-cert-crl-check.
830         * certchain.c (gpgsm_validate_chain): Make use of it.
831
832         * certchain.c (gpgsm_validate_chain): Check revocations even for
833         expired certificates.  This is required because on signature
834         verification an expired key is fine whereas a revoked one is not.
835
836 2005-04-20  Werner Koch  <wk@g10code.com>
837
838         * Makefile.am (AM_CFLAGS): Add PTH_CFLAGS as noted by several folks.
839
840 2005-04-19  Werner Koch  <wk@g10code.com>
841
842         * certchain.c (check_cert_policy): Print the diagnostic for a open
843         failure of policies.txt only in verbose mode or when it is not
844         ENOENT.
845
846 2005-04-17  Werner Koch  <wk@g10code.com>
847
848         * call-dirmngr.c (inq_certificate): Add new inquire SENDCERT_SKI.
849         * certlist.c (gpgsm_find_cert): Add new arg KEYID and implement
850         this filter.  Changed all callers.
851
852         * certchain.c (find_up_search_by_keyid): New helper.
853         (find_up): Also try using the AKI.keyIdentifier.
854         (find_up_external): Ditto.
855
856 2005-04-15  Werner Koch  <wk@g10code.com>
857
858         * keylist.c (list_cert_raw): Print the subjectKeyIdentifier as
859         well as the keyIdentifier part of the authorityKeyIdentifier.
860
861 2005-03-31  Werner Koch  <wk@g10code.com>
862
863         * call-dirmngr.c (start_dirmngr): Use PATHSEP_C instead of ':'.
864         * call-agent.c (start_agent): Ditto.
865
866 2005-03-17  Werner Koch  <wk@g10code.com>
867
868         * certcheck.c: Fixed use of DBG_CRYPTO and DBG_X509.
869
870         * certchain.c (gpgsm_basic_cert_check): Dump certificates after a
871         failed gcry_pk_verify.
872         (find_up): Do an external lookup also for an authorityKeyIdentifier
873         lookup. Factored external lookup code out to ..
874         (find_up_external): .. new.
875
876 2005-03-03  Werner Koch  <wk@g10code.com>
877
878         * Makefile.am (gpgsm_LDADD): Added PTH_LIBS.  Noted by Kazu Yamamoto.
879
880 2005-01-13  Werner Koch  <wk@g10code.com>
881
882         * certreqgen.c (proc_parameters): Cast printf arg.
883
884 2004-12-22  Werner Koch  <wk@g10code.com>
885
886         * gpgsm.c (set_binary): New.
887         (main, open_read, open_fwrite): Use it.
888
889 2004-12-21  Werner Koch  <wk@g10code.com>
890
891         * gpgsm.c (main): Use default_homedir().
892         (main) [W32]: Default to disabled CRL checks.
893
894 2004-12-20  Werner Koch  <wk@g10code.com>
895
896         * call-agent.c (start_agent): Before starting a pipe server start
897         to connect to a server on the standard socket.  Use PATHSEP
898         * call-dirmngr.c (start_dirmngr): Use PATHSEP.
899
900         * import.c: Include unistd.h for dup and close.
901
902 2004-12-18  Werner Koch  <wk@g10code.com>
903
904         * gpgsm.h (map_assuan_err): Define in terms of
905         map_assuan_err_with_source.
906         * call-agent.c (start_agent): Pass error source to
907         send_pinentry_environment.
908
909 2004-12-17  Werner Koch  <wk@g10code.com>
910
911         * call-dirmngr.c (isvalid_status_cb, lookup_status_cb)
912         (run_command_status_cb): Return cancel status if gpgsm_status
913         returned an error.
914
915         * server.c (gpgsm_status, gpgsm_status2) 
916         (gpgsm_status_with_err_code): Return an error code.
917         (gpgsm_status2): Always call va_end().
918
919 2004-12-15  Werner Koch  <wk@g10code.com>
920
921         * call-dirmngr.c (lookup_status_cb): Send progress messages
922         upstream.
923         (isvalid_status_cb): Ditto.
924         (gpgsm_dirmngr_isvalid): Put CTRL into status CB parameters.
925         (gpgsm_dirmngr_run_command, run_command_status_cb): Pass CTRL to
926         status callback and handle PROGRESS.
927
928         * misc.c (setup_pinentry_env) [W32]: Don't use it.
929
930         * gpgsm.c (main) [W32]: Init Pth because we need it for the socket
931         operations and to resolve libassuan symbols.
932         (run_protect_tool) [W32]: Disable it.
933
934         * Makefile.am (gpgsm_LDADD): Move LIBASSUAN_LIBS more to the end.
935
936 2004-12-07  Werner Koch  <wk@g10code.com>
937
938         * Makefile.am (gpgsm_LDADD): Put libassuan before jnlib because
939         under W32 we need the w32 pth code from jnlib.
940
941         * misc.c (setup_pinentry_env) [W32]: Disabled.
942
943 2004-12-06  Werner Koch  <wk@g10code.com>
944
945         * gpgsm.c (run_protect_tool) [_WIN32]: Disabled.
946
947         * import.c (popen_protect_tool): Simplified by making use of
948         gnupg_spawn_process.
949         (parse_p12): Likewise, using gnupg_wait_process.
950         * export.c (popen_protect_tool): Ditto.
951         (export_p12): Ditto.
952
953         * keydb.c: Don't define DIRSEP_S here.
954
955 2004-12-02  Werner Koch  <wk@g10code.com>
956
957         * certchain.c (gpgsm_basic_cert_check): Dump certs with bad
958         signature for debugging.
959         (gpgsm_validate_chain): Ditto.
960
961 2004-11-29  Werner Koch  <wk@g10code.com>
962
963         * gpgsm.c (set_debug): Changed to use a globals DEBUG_LEVEL and
964         DEBUG_VALUE.
965         (main): Made DEBUG_LEVEL global and introduced DEBUG_VALUE.  This
966         now allows to add debug flags on top of a debug-level setting.
967
968 2004-11-23  Werner Koch  <wk@g10code.com>
969
970         * gpgsm.c: New option --prefer-system-dirmngr.
971         * call-dirmngr.c (start_dirmngr): Implement this option.
972
973 2004-10-22  Werner Koch  <wk@g10code.com>
974
975         * certreqgen.c (gpgsm_genkey): Remove the NEW from the certificate
976         request PEM header.  This is according to the Sphinx standard.
977
978 2004-10-08  Moritz Schulte  <moritz@g10code.com>
979
980         * certchain.c (gpgsm_validate_chain): Do not use keydb_new() in
981         case the no_chain_validation-return-short-cut is used (fixes
982         memory leak).
983
984 2004-10-04  Werner Koch  <wk@g10code.com>
985
986         * misc.c (setup_pinentry_env): Try hard to set a default for GPG_TTY.
987
988 2004-09-30  Werner Koch  <wk@g10code.com>
989
990         * gpgsm.c (i18n_init): Always use LC_ALL.
991
992         * certdump.c (gpgsm_format_name): Factored code out to ..
993         (gpgsm_format_name2): .. new.
994         (gpgsm_print_name): Factored code out to ..
995         (gpgsm_print_name2): .. new.
996         (print_dn_part): New arg TRANSLATE.  Changed all callers.
997         (print_dn_parts): Ditto.
998         (gpgsm_format_keydesc): Do not translate the SUBJECT; we require
999         it to stay UTF-8 but we still want to filter out bad control
1000         characters.
1001
1002         * Makefile.am: Adjusted for gettext 0.14.
1003
1004         * keylist.c (list_cert_colon): Make sure that the expired flag has
1005         a higher precedence than the invalid flag. 
1006
1007 2004-09-29  Werner Koch  <wk@g10code.com>
1008
1009         * import.c (parse_p12): Write an error status line for bad
1010         passphrases. Add new arg CTRL and changed caller.
1011         * export.c (export_p12): Likewise.
1012
1013 2004-09-14  Werner Koch  <wk@g10code.com>
1014
1015         * certchain.c (gpgsm_validate_chain): Give expired certificates a
1016         higher error precedence and don't bother to check any CRL in that
1017         case.
1018
1019 2004-08-24  Werner Koch  <wk@g10code.de>
1020
1021         * certlist.c: Fixed typo in ocsp OID.
1022
1023 2004-08-18  Werner Koch  <wk@g10code.de>
1024
1025         * certlist.c (gpgsm_cert_use_ocsp_p): New.
1026         (cert_usage_p): Support it here.
1027         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Use it here.
1028
1029 2004-08-17  Marcus Brinkmann  <marcus@g10code.de>
1030
1031         * import.c: Fix typo in last change.
1032
1033 2004-08-17  Werner Koch  <wk@g10code.de>
1034
1035         * import.c (check_and_store): Do a full validation if
1036         --with-validation is set.
1037
1038         * certchain.c (gpgsm_basic_cert_check): Print more detailed error
1039         messages.
1040         
1041         * certcheck.c (do_encode_md): Partly support DSA.  Add new arg
1042         PKALGO. Changed all callers to pass it.
1043         (pk_algo_from_sexp): New.
1044
1045 2004-08-16  Werner Koch  <wk@g10code.de>
1046
1047         * gpgsm.c: New option --fixed-passphrase.
1048         * import.c (popen_protect_tool): Pass it to the protect-tool.
1049
1050         * server.c (cmd_encrypt): Use DEFAULT_RECPLIST and not recplist
1051         for encrypt-to keys.
1052
1053 2004-08-06  Werner Koch  <wk@g10code.com>
1054
1055         * gpgsm.c: New option --with-ephemeral-keys.
1056         * keylist.c (list_internal_keys): Set it here.
1057         (list_cert_raw): And indicate those keys.  Changed all our callers
1058         to pass the new arg HD through.
1059
1060 2004-07-23  Werner Koch  <wk@g10code.de>
1061
1062         * certreqgen.c (proc_parameters): Do not allow key length below
1063         1024.
1064
1065 2004-07-22  Werner Koch  <wk@g10code.de>
1066
1067         * keylist.c (list_cert_raw): Print the keygrip.
1068
1069 2004-07-20  Werner Koch  <wk@gnupg.org>
1070
1071         * certchain.c (gpgsm_validate_chain): The trust check didn't
1072         worked anymore, probably due to the changes at 2003-03-04.  Fixed.
1073
1074 2004-06-06  Werner Koch  <wk@gnupg.org>
1075
1076         * certreqgen.c (get_parameter_uint, create_request): Create
1077         an extension for key usage when requested. 
1078
1079 2004-05-12  Werner Koch  <wk@gnupg.org>
1080
1081         * gpgsm.c (main): Install emergency_cleanup also as an atexit
1082         handler.
1083
1084         * verify.c (gpgsm_verify): Removed the separate error code
1085         handling for KSBA.  We use shared error codes anyway.
1086
1087         * export.c (export_p12): Removed debugging code.
1088
1089         * encrypt.c (gpgsm_encrypt): Put the session key in to secure memory.
1090
1091 2004-05-11  Werner Koch  <wk@gnupg.org>
1092
1093         * sign.c (gpgsm_sign): Include the error source in the final error
1094         message.
1095         * decrypt.c (gpgsm_decrypt): Ditto.
1096
1097         * fingerprint.c (gpgsm_get_key_algo_info): New.
1098         * sign.c (gpgsm_sign): Don't assume RSA in the status line.
1099         * keylist.c (list_cert_colon): Really print the algorithm and key
1100         length.
1101         (list_cert_raw, list_cert_std): Ditto.
1102         (list_cert_colon): Reorganized to be able to tell whether a root
1103         certificate is trusted.
1104
1105         * gpgsm.c: New option --debug-allow-core-dump.
1106
1107         * gpgsm.h (opt): Add member CONFIG_FILENAME.
1108         * gpgsm.c (main): Use it here instead of the local var.
1109
1110         * server.c (gpgsm_server): Print some additional information with
1111         the hello in verbose mode.
1112
1113 2004-04-30  Werner Koch  <wk@gnupg.org>
1114
1115         * import.c (check_and_store): Do not update the stats for hidden
1116         imports of issuer certs.
1117         (popen_protect_tool): Request statusmessages from the protect-tool.
1118         (parse_p12): Detect status messages. Add new arg STATS and update them.
1119         (print_imported_summary): Include secret key stats.
1120
1121 2004-04-28  Werner Koch  <wk@gnupg.org>
1122
1123         * gpgsm.c: New command --keydb-clear-some-cert-flags.
1124         * keydb.c (keydb_clear_some_cert_flags): New.
1125         (keydb_update_keyblock, keydb_set_flags): Change error code
1126         CONFLICT to NOT_LOCKED.
1127
1128 2004-04-26  Werner Koch  <wk@gnupg.org>
1129
1130         * gpgsm.c (main) <gpgconf>: Do not use /dev/null as default config
1131         filename.
1132
1133         * call-agent.c (gpgsm_agent_pksign, gpgsm_agent_pkdecrypt) 
1134         (gpgsm_agent_genkey, gpgsm_agent_istrusted) 
1135         (gpgsm_agent_marktrusted, gpgsm_agent_havekey) 
1136         (gpgsm_agent_passwd): Add new arg CTRL and changed all callers.
1137         (start_agent): New arg CTRL.  Send progress item when starting a
1138         new agent.
1139         * sign.c (gpgsm_get_default_cert, get_default_signer): New arg
1140         CTRL to be passed down to the agent function.
1141         * decrypt.c (prepare_decryption): Ditto.
1142         * certreqgen.c (proc_parameters, read_parameters): Ditto.
1143         * certcheck.c (gpgsm_create_cms_signature): Ditto.
1144
1145 2004-04-23  Werner Koch  <wk@gnupg.org>
1146
1147         * keydb.c (keydb_add_resource): Try to compress the file on init.
1148
1149         * keylist.c (oidtranstbl): New.  OIDs collected from several sources.
1150         (print_name_raw, print_names_raw, list_cert_raw): New.
1151         (gpgsm_list_keys): Check the dump mode and pass it down as
1152         necessary.
1153
1154 2004-04-22  Werner Koch  <wk@gnupg.org>
1155
1156         * gpgsm.c (main): New commands --dump-keys, --dump-external-keys,
1157         --dump-secret-keys.
1158
1159 2004-04-13  Werner Koch  <wk@gnupg.org>
1160
1161         * misc.c (setup_pinentry_env): New.
1162         * import.c (popen_protect_tool): Call it.
1163         * export.c (popen_protect_tool): Call it.
1164
1165 2004-04-08  Werner Koch  <wk@gnupg.org>
1166
1167         * decrypt.c (gpgsm_decrypt): Return GPG_ERR_NO_DATA if it is not a 
1168         encrypted message.
1169
1170 2004-04-07  Werner Koch  <wk@gnupg.org>
1171
1172         * gpgsm.c: New option --force-crl-refresh.
1173         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Pass option to dirmngr.
1174
1175 2004-04-05  Werner Koch  <wk@gnupg.org>
1176
1177         * server.c (get_status_string): Add STATUS_NEWSIG.
1178         * verify.c (gpgsm_verify): Print STATUS_NEWSIG for each signature.
1179
1180         * certchain.c (gpgsm_validate_chain) <gpgsm_cert_use_cer_p>: Do
1181         not just warn if a cert is not suitable; bail out immediately.
1182
1183 2004-04-01  Werner Koch  <wk@gnupg.org>
1184
1185         * call-dirmngr.c (isvalid_status_cb): New.
1186         (unhexify_fpr): New. Taken from ../g10/call-agent.c
1187         (gpgsm_dirmngr_isvalid): Add new arg CTRL, changed caller to pass
1188         it thru.  Detect need to check the respondert cert and do that.
1189         * certchain.c (gpgsm_validate_chain): Add new arg FLAGS.  Changed
1190         all callers.
1191
1192 2004-03-24  Werner Koch  <wk@gnupg.org>
1193
1194         * sign.c (gpgsm_sign): Include a short list of capabilities.
1195
1196 2004-03-17  Werner Koch  <wk@gnupg.org>
1197
1198         * gpgsm.c (main) <gpgconf>: Fixed default value quoting.
1199
1200 2004-03-16  Werner Koch  <wk@gnupg.org>
1201
1202         * gpgsm.c (main): Implemented --gpgconf-list.
1203
1204 2004-03-15  Werner Koch  <wk@gnupg.org>
1205
1206         * keylist.c (list_cert_colon): Hack to set the expired flag.
1207
1208 2004-03-09  Werner Koch  <wk@gnupg.org>
1209
1210         * gpgsm.c (main): Correctly intitialze USE_OCSP flag.
1211
1212         * keydb.c (keydb_delete): s/GPG_ERR_CONFLICT/GPG_ERR_NOT_LOCKED/
1213
1214 2004-03-04  Werner Koch  <wk@gnupg.org>
1215
1216         * call-dirmngr.c (gpgsm_dirmngr_isvalid): New arg ISSUER_CERT.
1217
1218         * certchain.c (is_cert_still_valid): New.  Code moved from ...
1219         (gpgsm_validate_chain): ... here because we now need to check at
1220         two places and at a later stage, so that we can pass the issuer
1221         cert down to the dirmngr.
1222
1223 2004-03-03  Werner Koch  <wk@gnupg.org>
1224
1225         * call-agent.c (start_agent): Replaced pinentry setup code by a
1226         call to a new common function.
1227
1228         * certdump.c (gpgsm_format_keydesc): Make sure the string is
1229         returned as utf-8.
1230
1231         * export.c (gpgsm_export): Make sure that we don't export more
1232         than one certificate.
1233
1234 2004-03-02  Werner Koch  <wk@gnupg.org>
1235
1236         * export.c (create_duptable, destroy_duptable)
1237         (insert_duptable): New.
1238         (gpgsm_export): Avoid duplicates.
1239
1240 2004-02-26  Werner Koch  <wk@gnupg.org>
1241
1242         * certchain.c (compare_certs): New.
1243         (gpgsm_validate_chain): Fixed infinite certificate checks after
1244         bad signatures.
1245
1246 2004-02-24  Werner Koch  <wk@gnupg.org>
1247
1248         * keylist.c (list_cert_colon): Print the fingerprint as the
1249         cert-id for root certificates.
1250
1251 2004-02-21  Werner Koch  <wk@gnupg.org>
1252
1253         * keylist.c (list_internal_keys): Return error codes.
1254         (list_external_keys, gpgsm_list_keys): Ditto.
1255         * server.c (do_listkeys): Ditto.
1256
1257         * gpgsm.c (main): Display a key description for --passwd.
1258         * call-agent.c (gpgsm_agent_passwd): New arg DESC.
1259
1260 2004-02-20  Werner Koch  <wk@gnupg.org>
1261
1262         * gpgsm.c (main): New option --debug-ignore-expiration.
1263         * certchain.c (gpgsm_validate_chain): Use it here.
1264
1265         * certlist.c (cert_usage_p): Apply extKeyUsage.
1266
1267 2004-02-19  Werner Koch  <wk@gnupg.org>
1268
1269         * export.c (export_p12, popen_protect_tool)
1270         (gpgsm_p12_export): New.
1271         * gpgsm.c (main): New command --export-secret-key-p12. 
1272
1273 2004-02-18  Werner Koch  <wk@gnupg.org>
1274
1275         * gpgsm.c (set_debug): Set the new --debug-level flags.
1276         (main): New option --gpgconf-list.  
1277         (main): Do not setup -u and -r keys when not required.
1278         (main): Setup the used character set.
1279
1280         * keydb.c (keydb_add_resource): Print a hint to start the
1281         gpg-agent.
1282
1283 2004-02-17  Werner Koch  <wk@gnupg.org>
1284
1285         * gpgsm.c: Fixed value parsing for --with-validation.
1286         * call-agent.c (start_agent): Ignore an empty GPG_AGENT_INFO.
1287         * call-dirmngr.c (start_dirmngr): Likewise for DIRMNGR_INFO.
1288
1289         * gpgsm.c: New option --with-md5-fingerprint.
1290         * keylist.c (list_cert_std): Print MD5 fpr.
1291
1292         * gpgsm.c: New options --with-validation.
1293         * server.c (option_handler): New option "with-validation".
1294         * keylist.c (list_cert_std, list_internal_keys): New args CTRL and
1295         WITH_VALIDATION. Changed callers to set it.
1296         (list_external_cb, list_external_keys): Pass CTRL to the callback.
1297         (list_cert_colon): Add arg CTRL.  Check validation if requested.
1298         * certchain.c (unknown_criticals, allowed_ca, check_cert_policy) 
1299         (gpgsm_validate_chain): New args LISTMODE and FP.
1300         (do_list): New helper for info output.
1301         (find_up): New arg FIND_NEXT.
1302         (gpgsm_validate_chain): After a bad signature try again with other
1303         CA certificates.
1304
1305         * import.c (print_imported_status): New arg NEW_CERT. Print
1306         additional STATUS_IMPORT_OK becuase that is what gpgme expects.
1307         (check_and_store): Always call above function after import.
1308         * server.c (get_status_string): Added STATUS_IMPORT_OK.
1309
1310 2004-02-13  Werner Koch  <wk@gnupg.org>
1311
1312         * certcheck.c (gpgsm_create_cms_signature): Format a description
1313         for use by the pinentry.
1314         * decrypt.c (gpgsm_decrypt): Ditto. Free HEXKEYGRIP.
1315         * certdump.c (format_name_cookie, format_name_writer) 
1316         (gpgsm_format_name): New.
1317         (gpgsm_format_serial): New.
1318         (gpgsm_format_keydesc): New.
1319         * call-agent.c (gpgsm_agent_pksign): New arg DESC.
1320         (gpgsm_agent_pkdecrypt): Ditto.
1321
1322         * encrypt.c (init_dek): Check for too weak algorithms.
1323
1324         * import.c (parse_p12, popen_protect_tool): New.
1325
1326         * base64.c (gpgsm_create_reader): New arg ALLOW_MULTI_PEM.
1327         Changed all callers.
1328         (base64_reader_cb): Handle it here.
1329         (gpgsm_reader_eof_seen): New.
1330         (base64_reader_cb): Set a flag for EOF.
1331         (simple_reader_cb): Ditto.
1332
1333 2004-02-12  Werner Koch  <wk@gnupg.org>
1334
1335         * gpgsm.h, gpgsm.c: New option --protect-tool-program.
1336         * gpgsm.c (run_protect_tool): Use it.
1337
1338 2004-02-11  Werner Koch  <wk@gnupg.org>
1339
1340         * Makefile.am (AM_CPPFLAGS): Pass directory constants via -D; this
1341         will allow to override directory names at make time.
1342
1343 2004-02-02  Werner Koch  <wk@gnupg.org>
1344
1345         * import.c (check_and_store): Import certificates even with
1346         missing issuer's cert.  Fixed an "depending on the verbose
1347         setting" bug.
1348
1349         * certchain.c (gpgsm_validate_chain): Mark revoked certs in the
1350         keybox.
1351
1352         * keylist.c (list_cert_colon): New arg VALIDITY; use it to print a
1353         revoked flag.
1354         (list_internal_keys): Retrieve validity flag.
1355         (list_external_cb): Pass 0 as validity flag.
1356         * keydb.c (keydb_get_flags, keydb_set_flags): New.
1357         (keydb_set_cert_flags): New.
1358         (lock_all): Return a proper error code.
1359         (keydb_lock): New.
1360         (keydb_delete): Don't lock but check that it has been locked.
1361         (keydb_update_keyblock): Ditto.
1362         * delete.c (delete_one): Take a lock.
1363
1364 2004-01-30  Werner Koch  <wk@gnupg.org>
1365
1366         * certchain.c (check_cert_policy): Fixed read error checking.
1367         (check_cert_policy): With no critical policies issue only a
1368         warning if the policy file does not exists.
1369
1370         * sign.c (add_certificate_list): Decrement N for the first cert.
1371
1372 2004-01-29  Werner Koch  <wk@gnupg.org>
1373
1374         * certdump.c (parse_dn_part): Map common OIDs to human readable
1375         labels.  Make sure that a value won't get truncated if it includes
1376         a Nul.
1377
1378 2004-01-28  Werner Koch  <wk@gnupg.org>
1379
1380         * certchain.c (gpgsm_validate_chain): Changed the message printed
1381         for an untrusted root certificate.
1382
1383 2004-01-27  Werner Koch  <wk@gnupg.org>
1384
1385         * certdump.c (parse_dn_part): Pretty print the nameDistinguisher OID.
1386         (print_dn_part): Do not delimit multiple RDN by " + ".  Handle
1387         multi-valued RDNs in a special way, i.e. in the order specified by
1388         the certificate.
1389         (print_dn_parts): Simplified. 
1390
1391 2004-01-16  Werner Koch  <wk@gnupg.org>
1392
1393         * sign.c (gpgsm_sign): Print an error message on all failures.
1394         * decrypt.c (gpgsm_decrypt): Ditto.
1395
1396 2003-12-17  Werner Koch  <wk@gnupg.org>
1397
1398         * server.c (gpgsm_server): Add arg DEFAULT_RECPLIST.
1399         (cmd_encrypt): Add all enrypt-to marked certs to the list.
1400         * encrypt.c (gpgsm_encrypt): Check that real recipients are
1401         available.
1402         * gpgsm.c (main): Make the --encrypt-to and --no-encrypt-to
1403         options work.  Pass the list of recients to gpgsm_server.
1404         * gpgsm.h (certlist_s): Add field IS_ENCRYPT_TO.
1405         (opt): Add NO_ENCRYPT_TO.
1406         * certlist.c (gpgsm_add_to_certlist): New arg IS_ENCRYPT_TO.
1407         Changed all callers and ignore duplicate entries.
1408         (is_cert_in_certlist): New.
1409         (gpgsm_add_cert_to_certlist): New.
1410
1411         * certdump.c (gpgsm_print_serial): Cleaned up cast use in strtoul.
1412         (gpgsm_dump_serial): Ditto.
1413
1414         * decrypt.c (gpgsm_decrypt): Replaced ERR by RC.
1415
1416 2003-12-16  Werner Koch  <wk@gnupg.org>
1417
1418         * gpgsm.c (main): Set the prefixes for assuan logging.
1419
1420         * sign.c (gpgsm_sign): Add validation checks for the default
1421         certificate.
1422
1423         * gpgsm.c: Add -k as alias for --list-keys and -K for
1424         --list-secret-keys.
1425
1426 2003-12-15  Werner Koch  <wk@gnupg.org>
1427
1428         * encrypt.c (init_dek): Use gry_create_nonce for the IV; there is
1429         not need for real strong random here and it even better protect
1430         the random bits used for the key.
1431
1432 2003-12-01  Werner Koch  <wk@gnupg.org>
1433
1434         * gpgsm.c, gpgsm.h: New options --{enable,disable}-ocsp.
1435         (gpgsm_init_default_ctrl): Set USE_OCSP to the default value.
1436         * certchain.c (gpgsm_validate_chain): Handle USE_OCSP.
1437         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Add arg USE_OCSP and
1438         proceed accordingly.
1439
1440 2003-11-19  Werner Koch  <wk@gnupg.org>
1441
1442         * verify.c (gpgsm_verify): Use "0" instead of an empty string for
1443         the VALIDSIG status.
1444
1445 2003-11-18  Werner Koch  <wk@gnupg.org>
1446
1447         * verify.c (gpgsm_verify): Fixed for changes API of gcry_md_info.
1448
1449         * certchain.c (unknown_criticals): Fixed an error code test.
1450
1451 2003-11-12  Werner Koch  <wk@gnupg.org>
1452
1453         Adjusted for API changes in Libksba.
1454
1455 2003-10-31  Werner Koch  <wk@gnupg.org>
1456
1457         * certchain.c (gpgsm_validate_chain): Changed to use ksba_isotime_t.
1458         * verify.c (strtimestamp_r, gpgsm_verify): Ditto.
1459         * sign.c (gpgsm_sign): Ditto.
1460         * keylist.c (print_time, list_cert_std, list_cert_colon): Ditto.
1461         * certdump.c (gpgsm_print_time, gpgsm_dump_time, gpgsm_dump_cert):
1462         Ditto.
1463
1464 2003-10-25  Werner Koch  <wk@gnupg.org>
1465
1466         * certreqgen.c (read_parameters): Fixed faulty of !spacep().
1467
1468 2003-08-20  Marcus Brinkmann  <marcus@g10code.de>
1469
1470         * encrypt.c (encode_session_key): Allocate enough space.  Cast key
1471         byte to unsigned char to prevent sign extension.
1472         (encrypt_dek): Check return value before error.
1473
1474 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
1475
1476         * encrypt.c (encode_session_key): Use new Libgcrypt interface.
1477         
1478 2003-07-31  Werner Koch  <wk@gnupg.org>
1479
1480         * Makefile.am (gpgsm_LDADD): Added INTLLIBS.
1481
1482 2003-07-29  Werner Koch  <wk@gnupg.org>
1483
1484         * gpgsm.c (main): Add secmem features and set the random seed file.
1485         (gpgsm_exit): Update the random seed file and enable debug output.
1486
1487 2003-07-27  Werner Koch  <wk@gnupg.org>
1488
1489         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
1490
1491 2003-06-24  Werner Koch  <wk@gnupg.org>
1492
1493         * server.c (gpgsm_status_with_err_code): New.
1494         * verify.c (gpgsm_verify): Use it here instead of the old
1495         tokenizing version.
1496
1497         * verify.c (strtimestamp): Renamed to strtimestamp_r
1498
1499         Adjusted for changes in the libgcrypt API. Some more fixes for the
1500         libgpg-error stuff.  
1501
1502 2003-06-04  Werner Koch  <wk@gnupg.org>
1503
1504         * call-agent.c (init_membuf,put_membuf,get_membuf): Removed.
1505         Include new membuf header and changed used type.
1506
1507         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
1508
1509 2003-06-03  Werner Koch  <wk@gnupg.org>
1510
1511         Changed all error codes in all files to the new libgpg-error scheme.
1512
1513         * gpgsm.h: Include gpg-error.h .
1514         * Makefile.am: Link with libgpg-error.
1515
1516 2003-04-29  Werner Koch  <wk@gnupg.org>
1517
1518         * Makefile.am: Use libassuan.  Don't override LDFLAGS anymore.
1519         * server.c (register_commands): Adjust for new Assuan semantics.
1520
1521 2002-12-03  Werner Koch  <wk@gnupg.org>
1522
1523         * call-agent.c (gpgsm_agent_passwd): New.
1524         * gpgsm.c (main): New command --passwd and --call-protect-tool
1525         (run_protect_tool): New.
1526
1527 2002-11-25  Werner Koch  <wk@gnupg.org>
1528
1529         * verify.c (gpgsm_verify): Handle content-type attribute. 
1530
1531 2002-11-13  Werner Koch  <wk@gnupg.org>
1532
1533         * call-agent.c (start_agent): Try to use $GPG_TTY instead of
1534         ttyname.  Changed ttyname to test stdin becuase it can be assumed
1535         that output redirection is more common that input redirection.
1536
1537 2002-11-12  Werner Koch  <wk@gnupg.org>
1538
1539         * gpgsm.c: New command --call-dirmngr. 
1540         * call-dirmngr.c (gpgsm_dirmngr_run_command)
1541         (run_command_inq_cb,run_command_cb)
1542         (run_command_status_cb): New.
1543
1544 2002-11-11  Werner Koch  <wk@gnupg.org>
1545
1546         * certcheck.c (gpgsm_check_cms_signature): Don't double free
1547         s_sig but free s_pkey at leave.
1548
1549 2002-11-10  Werner Koch  <wk@gnupg.org>
1550
1551         * gpgsm.c: Removed duplicate --list-secret-key entry.
1552
1553 2002-09-19  Werner Koch  <wk@gnupg.org>
1554
1555         * certcheck.c (gpgsm_check_cert_sig): Add cert hash debugging.
1556
1557         * certchain.c (find_up): Print info when the cert was not found 
1558         by the autorithyKeyIdentifier.
1559
1560 2002-09-03  Werner Koch  <wk@gnupg.org>
1561
1562         * gpgsm.c (main): Disable the internal libgcrypt locking.
1563
1564 2002-08-21  Werner Koch  <wk@gnupg.org>
1565
1566         * import.c (print_imported_summary): Cleaned up.  Print new
1567         not_imported value.
1568         (check_and_store): Update non_imported counter.
1569         (print_import_problem): New.
1570         (check_and_store): Print error status message.
1571         * server.c (get_status_string): Added STATUS_IMPORT_PROBLEM.
1572
1573 2002-08-20  Werner Koch  <wk@gnupg.org>
1574
1575         * gpgsm.c (main): Use the log file only in server mode.
1576
1577         * import.c (print_imported_summary): New.
1578         (check_and_store): Update the counters, take new argument.
1579         (import_one): Factored out core of gpgsm_import.
1580         (gpgsm_import): Print counters.
1581         (gpgsm_import_files): New.
1582         * gpgsm.c (main): Use the new function for import.
1583
1584 2002-08-19  Werner Koch  <wk@gnupg.org>
1585
1586         * decrypt.c (gpgsm_decrypt): Return a better error status token.
1587         * verify.c (gpgsm_verify): Don't error on messages with no signing
1588         time or no message digest.  This is only the case for messages
1589         without any signed attributes.
1590
1591 2002-08-16  Werner Koch  <wk@gnupg.org>
1592
1593         * certpath.c: Renamed to ..
1594         * certchain.c: this. Renamed all all other usages of "path" in the
1595         context of certificates to "chain".
1596
1597         * call-agent.c (learn_cb): Special treatment when the issuer
1598         certificate is missing.
1599
1600 2002-08-10  Werner Koch  <wk@gnupg.org>
1601
1602         * Makefile.am (INCLUDES): Add definition for localedir.
1603
1604         * keylist.c (list_cert_colon): Print the short fingerprint in the
1605         key ID field.
1606         * fingerprint.c (gpgsm_get_short_fingerprint): New.
1607         * verify.c (gpgsm_verify): Print more verbose info for a good
1608         signature.
1609
1610 2002-08-09  Werner Koch  <wk@gnupg.org>
1611
1612         * decrypt.c (prepare_decryption): Hack to detected already
1613         unpkcsedone keys.
1614
1615         * gpgsm.c (emergency_cleanup): New.
1616         (main): Initialize the signal handler.
1617
1618         * sign.c (gpgsm_sign): Reset the hash context for subsequent
1619         signers and release it at the end.
1620
1621 2002-08-05  Werner Koch  <wk@gnupg.org>
1622
1623         * server.c (cmd_signer): New command "SIGNER"
1624         (register_commands): Register it.
1625         (cmd_sign): Pass the signer list to gpgsm_sign.
1626         * certlist.c (gpgsm_add_to_certlist): Add SECRET argument, check
1627         for secret key if set and changed all callers.
1628         * sign.c (gpgsm_sign): New argument SIGNERLIST and implemt
1629         multiple signers.
1630         * gpgsm.c (main): Support more than one -u.
1631         
1632         * server.c (cmd_recipient): Return reason code 1 for No_Public_Key
1633         which is actually what gets returned from add_to_certlist.
1634         
1635 2002-07-26  Werner Koch  <wk@gnupg.org>
1636
1637         * certcheck.c (gpgsm_check_cert_sig): Implement proper cleanup.
1638         (gpgsm_check_cms_signature): Ditto.
1639
1640 2002-07-22  Werner Koch  <wk@gnupg.org>
1641
1642         * keydb.c (keydb_add_resource): Register a lock file.
1643         (lock_all, unlock_all): Implemented.
1644
1645         * delete.c: New.
1646         * gpgsm.c: Made --delete-key work.
1647         * server.c (cmd_delkeys): New.
1648         (register_commands): New command DELKEYS.
1649
1650         * decrypt.c (gpgsm_decrypt): Print a convenience note when RC2 is
1651         used and a STATUS_ERROR with the algorithm oid.
1652
1653 2002-07-03  Werner Koch  <wk@gnupg.org>
1654
1655         * server.c (gpgsm_status2): Insert a blank between all optional
1656         arguments when using assuan.
1657         * server.c (cmd_recipient): No more need for extra blank in constants.
1658         * import.c (print_imported_status): Ditto.
1659         * gpgsm.c (main): Ditto.
1660
1661 2002-07-02  Werner Koch  <wk@gnupg.org>
1662
1663         * verify.c (gpgsm_verify): Extend the STATUS_BADSIG line with
1664         the fingerprint.
1665
1666         * certpath.c (check_cert_policy): Don't use log_error to print a
1667         warning.
1668
1669         * keydb.c (keydb_store_cert): Add optional ar EXISTED and changed
1670         all callers.
1671         * call-agent.c (learn_cb): Print info message only for real imports.
1672
1673         * import.c (gpgsm_import): Moved duplicated code to ...
1674         (check_and_store): new function.  Added magic to import the entire
1675         chain. Print status only for real imports and moved printing code
1676         to ..
1677         (print_imported_status): New.
1678
1679         * call-dirmngr.c (gpgsm_dirmngr_isvalid): print status of dirmngr
1680         call in very verbose mode.
1681
1682         * gpgsm.c (main): Use the same error codes for STATUS_INV_RECP as
1683         with the server mode.
1684
1685 2002-06-29  Werner Koch  <wk@gnupg.org>
1686
1687         * gpgsm.c: New option --auto-issuer-key-retrieve.
1688         * certpath.c (find_up): Try to retrieve an issuer key from an
1689         external source and from the ephemeral key DB.
1690         (find_up_store_certs_cb): New.
1691
1692         * keydb.c (keydb_set_ephemeral): Does now return the old
1693         state.  Call the backend only when required.
1694
1695         * call-dirmngr.c (start_dirmngr): Use GNUPG_DEFAULT_DIRMNGR.
1696         (lookup_status_cb): Issue status only when CTRL is not NULL.
1697         (gpgsm_dirmngr_lookup): Document that CTRL is optional.
1698
1699         * call-agent.c (start_agent): Use GNUPG_DEFAULT_AGENT.
1700
1701 2002-06-28  Werner Koch  <wk@gnupg.org>
1702
1703         * server.c (cmd_recipient): Add more reason codes.
1704
1705 2002-06-27  Werner Koch  <wk@gnupg.org>
1706
1707         * certpath.c (gpgsm_basic_cert_check): Use
1708         --debug-no-path-validation to also bypass this basic check.
1709
1710         * gpgsm.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
1711
1712         * call-agent.c (start_agent): Create and pass the list of FD to
1713         keep in the child to assuan.
1714         * call-dirmngr.c (start_dirmngr): Ditto.
1715
1716 2002-06-26  Werner Koch  <wk@gnupg.org>
1717
1718         * import.c (gpgsm_import): Print an STATUS_IMPORTED.
1719
1720         * gpgsm.c: --debug-no-path-validation does not take an argument.
1721
1722 2002-06-25  Werner Koch  <wk@gnupg.org>
1723
1724         * certdump.c (print_dn_part): Always print a leading slash,
1725         removed NEED_DELIM arg and changed caller.
1726
1727         * export.c (gpgsm_export): Print LFs to FP and not stdout.
1728         (print_short_info): Ditto.  Make use of gpgsm_print_name.
1729
1730         * server.c (cmd_export): Use output-fd instead of data lines; this
1731         was actually the specified way.
1732
1733 2002-06-24  Werner Koch  <wk@gnupg.org>
1734
1735         * gpgsm.c: Removed duped help entry for --list-keys.
1736         
1737         * gpgsm.c, gpgsm.h: New option --debug-no-path-validation.
1738
1739         * certpath.c (gpgsm_validate_path): Use it here instead of the
1740         debug flag hack.
1741
1742         * certpath.c (check_cert_policy): Return No_Policy_Match if the
1743         policy file could not be opened.
1744
1745 2002-06-20  Werner Koch  <wk@gnupg.org>
1746
1747         * certlist.c (gpgsm_add_to_certlist): Fixed locating of a
1748         certificate with the required key usage.
1749
1750         * gpgsm.c (main): Fixed a segv when using --outfile without an
1751         argument.
1752
1753         * keylist.c (print_capabilities): Also check for non-repudiation
1754         and data encipherment.
1755         * certlist.c (cert_usage_p): Test for signing and encryption was
1756         swapped.  Add a case for certification usage, handle
1757         non-repudiation and data encipherment.
1758         (gpgsm_cert_use_cert_p): New.
1759         (gpgsm_add_to_certlist): Added a CTRL argument and changed all
1760         callers to pass it.
1761         * certpath.c (gpgsm_validate_path): Use it here to print a status
1762         message. Added a CTRL argument and changed all callers to pass it.
1763         * decrypt.c (gpgsm_decrypt): Print a status message for wrong key
1764         usage.
1765         * verify.c (gpgsm_verify): Ditto.
1766         * keydb.c (classify_user_id): Allow a colon delimited fingerprint.
1767
1768 2002-06-19  Werner Koch  <wk@gnupg.org>
1769
1770         * call-agent.c (learn_cb): Use log_info instead of log_error on
1771         successful import.
1772
1773         * keydb.c (keydb_set_ephemeral): New.
1774         (keydb_store_cert): New are ephemeral, changed all callers.
1775         * keylist.c (list_external_cb): Store cert as ephemeral.
1776         * export.c (gpgsm_export): Kludge to export epehmeral certificates.
1777
1778         * gpgsm.c (main): New command --list-external-keys.
1779         
1780 2002-06-17  Werner Koch  <wk@gnupg.org>
1781
1782         * certreqgen.c (read_parameters): Improved error handling.
1783         (gpgsm_genkey): Print error message.
1784
1785 2002-06-13  Werner Koch  <wk@gnupg.org>
1786
1787         * gpgsm.c (main): New option --log-file.
1788
1789 2002-06-12  Werner Koch  <wk@gnupg.org>
1790
1791         * call-dirmngr.c (lookup_status_cb): New.
1792         (gpgsm_dirmngr_lookup): Use the status CB.  Add new arg CTRL and
1793         changed caller to pass it.
1794
1795         * gpgsm.c (open_fwrite): New.
1796         (main): Allow --output for --verify.
1797
1798         * sign.c (hash_and_copy_data): New.
1799         (gpgsm_sign): Implemented normal (non-detached) signatures.
1800         * gpgsm.c (main): Ditto.
1801         
1802         * certpath.c (gpgsm_validate_path): Special error handling for
1803         no policy match.
1804
1805 2002-06-10  Werner Koch  <wk@gnupg.org>
1806
1807         * server.c (get_status_string): Add STATUS_ERROR.
1808
1809         * certpath.c (gpgsm_validate_path): Tweaked the error checking to 
1810         return error codes in a more sensitive way.
1811         * verify.c (gpgsm_verify): Send status TRUST_NEVER also for a bad
1812         CA certificate and when the certificate has been revoked.  Issue
1813         TRUST_FULLY even when the cert has expired.  Append an error token
1814         to these status lines.  Issue the new generic error status when a
1815         cert was not found and when leaving the function.
1816
1817 2002-06-04  Werner Koch  <wk@gnupg.org>
1818
1819         * gpgsm.c (main): New command --list-sigs
1820         * keylist.c (list_cert_std): New.  Use it whenever colon mode is
1821         not used.
1822         (list_cert_chain): New.
1823
1824 2002-05-31  Werner Koch  <wk@gnupg.org>
1825
1826         * gpgsm.c (main): Don't print the "go ahead" message for an
1827         invalid command.
1828
1829 2002-05-23  Werner Koch  <wk@gnupg.org>
1830
1831         * import.c (gpgsm_import): Add error messages.
1832
1833 2002-05-21  Werner Koch  <wk@gnupg.org>
1834
1835         * keylist.c (list_internal_keys): Renamed from gpgsm_list_keys.
1836         (list_external_keys): New.
1837         (gpgsm_list_keys): Dispatcher for above.
1838         * call-dirmngr.c (lookup_cb,pattern_from_strlist)
1839         (gpgsm_dirmngr_lookup): New.
1840         * server.c (option_handler): Handle new option --list-mode.
1841         (do_listkeys): Handle options and actually use the mode argument.
1842         (get_status_string): New code TRUNCATED.
1843
1844         * import.c (gpgsm_import): Try to identify the type of input and
1845         handle certs-only messages.
1846
1847 2002-05-14  Werner Koch  <wk@gnupg.org>
1848
1849         * gpgsm.c: New option --faked-system-time
1850         * sign.c (gpgsm_sign): And use it here.
1851         * certpath.c (gpgsm_validate_path): Ditto.
1852
1853 2002-05-03  Werner Koch  <wk@gnupg.org>
1854
1855         * certpath.c (gpgsm_validate_path): Added EXPTIME arg and changed
1856         all callers.
1857         * verify.c (gpgsm_verify): Tweaked usage of log_debug and
1858         log_error.  Return EXPSIG status and add expiretime to VALIDSIG.
1859
1860 2002-04-26  Werner Koch  <wk@gnupg.org>
1861
1862         * gpgsm.h (DBG_AGENT,DBG_AGENT_VALUE): Replaced by DBG_ASSUAN_*.
1863         Changed all users.
1864
1865         * call-agent.c (start_agent): Be more silent without -v.
1866         * call-dirmngr.c (start_dirmngr): Ditto.
1867
1868 2002-04-25  Werner Koch  <wk@gnupg.org>
1869
1870         * call-agent.c (start_agent): Make copies of old locales and check
1871         for setlocale.
1872
1873 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
1874
1875         * call-agent.c (start_agent): Fix error handling logic so the
1876         locale is always correctly reset.
1877
1878 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
1879
1880         * server.c (option_handler): Accept display, ttyname, ttytype,
1881         lc_ctype and lc_messages options.
1882         * gpgsm.c (main): Allocate memory for these options.
1883         * gpgsm.h (struct opt): Make corresponding members non-const.
1884
1885 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
1886
1887         * gpgsm.h (struct opt): New members display, ttyname, ttytype,
1888         lc_ctype, lc_messages.
1889         * gpgsm.c (enum cmd_and_opt_values): New members oDisplay,
1890         oTTYname, oTTYtype, oLCctype, oLCmessages.
1891         (opts): New entries for these options.
1892         (main): Handle these new options.
1893         * call-agent.c (start_agent): Set the various display and tty
1894         parameter after resetting.
1895
1896 2002-04-18  Werner Koch  <wk@gnupg.org>
1897
1898         * certreqgen.c (gpgsm_genkey): Write status output on success.
1899
1900 2002-04-15  Werner Koch  <wk@gnupg.org>
1901
1902         * gpgsm.c (main): Check ksba version.
1903
1904         * certpath.c (find_up): New to use the authorithKeyIdentifier.
1905         Use it in all other functions to locate the signing cert..
1906
1907 2002-04-11  Werner Koch  <wk@gnupg.org>
1908
1909         * certlist.c (cert_usable_p): New.
1910         (gpgsm_cert_use_sign_p,gpgsm_cert_use_encrypt_p): New.
1911         (gpgsm_cert_use_verify_p,gpgsm_cert_use_decrypt_p): New.
1912         (gpgsm_add_to_certlist): Check the key usage.
1913         * sign.c (gpgsm_sign): Ditto.
1914         * verify.c (gpgsm_verify): Print a message wehn an unsuitable
1915         certificate was used.
1916         * decrypt.c (gpgsm_decrypt): Ditto
1917         * keylist.c (print_capabilities): Determine values from the cert.
1918
1919 2002-03-28  Werner Koch  <wk@gnupg.org>
1920
1921         * keylist.c (list_cert_colon): Fixed listing of crt record; the
1922         issuer is not at the right place.  Print a chainingID.
1923         * certpath.c (gpgsm_walk_cert_chain): Be a bit more silent on
1924         common errors.
1925
1926 2002-03-21  Werner Koch  <wk@gnupg.org>
1927
1928         * export.c: New.
1929         * gpgsm.c: Add command --export.
1930         * server.c (cmd_export): New.
1931         
1932 2002-03-13  Werner Koch  <wk@gnupg.org>
1933
1934         * decrypt.c (gpgsm_decrypt): Allow multiple recipients.
1935
1936 2002-03-12  Werner Koch  <wk@gnupg.org>
1937
1938         * certpath.c (check_cert_policy): Print the policy list.
1939
1940         * verify.c (gpgsm_verify): Detect certs-only message.
1941
1942 2002-03-11  Werner Koch  <wk@gnupg.org>
1943
1944         * import.c (gpgsm_import): Print a notice about imported certificates
1945         when in verbose mode.
1946
1947         * gpgsm.c (main): Print INV_RECP status.
1948         * server.c (cmd_recipient): Ditto.
1949
1950         * server.c (gpgsm_status2): New.  Allows for a list of strings.
1951         (gpgsm_status): Divert to gpgsm_status2.
1952
1953         * encrypt.c (gpgsm_encrypt): Don't use a default key when no
1954         recipients are given.  Print a NO_RECP status.
1955
1956 2002-03-06  Werner Koch  <wk@gnupg.org>
1957
1958         * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to
1959         (do_listkeys): new.  Add pattern parsing.
1960
1961         * keylist.c (gpgsm_list_keys): Handle selection pattern.
1962
1963         * gpgsm.c: New command --learn-card
1964         * call-agent.c (learn_cb,gpgsm_agent_learn): New.
1965
1966         * gpgsm.c (main): Print error messages for non-implemented commands.
1967
1968         * base64.c (base64_reader_cb): Use case insensitive compare of the
1969         Content-Type string to detect plain base-64.
1970
1971 2002-03-05  Werner Koch  <wk@gnupg.org>
1972
1973         * gpgsm.c, gpgsm.h: Add local_user.
1974         * sign.c (gpgsm_get_default_cert): New.
1975         (get_default_signer): Use the new function if local_user is not
1976         set otherwise used that value.
1977         * encrypt.c (get_default_recipient): Removed.
1978         (gpgsm_encrypt): Use gpgsm_get_default_cert.
1979
1980         * verify.c (gpgsm_verify): Better error text for a bad signature
1981         found by comparing the hashs.
1982
1983 2002-02-27  Werner Koch  <wk@gnupg.org>
1984
1985         * call-dirmngr.c, call-agent.c: Add 2 more arguments to all uses
1986         of assuan_transact.
1987
1988 2002-02-25  Werner Koch  <wk@gnupg.org>
1989
1990         * server.c (option_handler): Allow to use -2 for "send all certs
1991         except the root cert".
1992         * sign.c (add_certificate_list): Implement it here.
1993         * certpath.c (gpgsm_is_root_cert): New.
1994
1995 2002-02-19  Werner Koch  <wk@gnupg.org>
1996
1997         * certpath.c (check_cert_policy): New.
1998         (gpgsm_validate_path): And call it from here.
1999         * gpgsm.c (main): New options --policy-file,
2000         --disable-policy-checks and --enable-policy-checks.
2001         * gpgsm.h (opt): Added policy_file, no_policy_checks.
2002
2003 2002-02-18  Werner Koch  <wk@gnupg.org>
2004
2005         * certpath.c (gpgsm_validate_path): Ask the agent to add the
2006         certificate into the trusted list.
2007         * call-agent.c (gpgsm_agent_marktrusted): New.
2008
2009 2002-02-07  Werner Koch  <wk@gnupg.org>
2010
2011         * certlist.c (gpgsm_add_to_certlist): Check that the specified
2012         name identifies a certificate unambiguously.
2013         (gpgsm_find_cert): Ditto.
2014
2015         * server.c (cmd_listkeys): Check that the data stream is available.
2016         (cmd_listsecretkeys): Ditto.
2017         (has_option): New.
2018         (cmd_sign): Fix ambiguousity in option recognition.
2019
2020         * gpgsm.c (main): Enable --logger-fd.
2021
2022         * encrypt.c (gpgsm_encrypt): Increased buffer size for better
2023         performance.
2024
2025         * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from
2026         the agent.
2027
2028         * keylist.c (list_cert_colon): Filter out control characters.
2029
2030 2002-02-06  Werner Koch  <wk@gnupg.org>
2031
2032         * decrypt.c (gpgsm_decrypt): Bail out after an decryption error.
2033
2034         * server.c (reset_notify): Close input and output FDs.
2035         (cmd_encrypt,cmd_decrypt,cmd_verify,cmd_sign.cmd_import)
2036         (cmd_genkey): Close the FDs and release the recipient list even in
2037         the error case.
2038
2039 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
2040
2041         * sign.c (gpgsm_sign): Do not release certificate twice.
2042
2043 2002-01-29  Werner Koch  <wk@gnupg.org>
2044
2045         * call-agent.c (gpgsm_agent_havekey): New.
2046         * keylist.c (list_cert_colon): New arg HAVE_SECRET, print "crs"
2047         when we know that the secret key is available.
2048         (gpgsm_list_keys): New arg MODE, check whether a secret key is
2049         available.  Changed all callers.
2050         * gpgsm.c (main): New command --list-secret-keys.
2051         * server.c (cmd_listsecretkeys): New.
2052         (cmd_listkeys): Return secret keys with "crs" record.
2053
2054 2002-01-28  Werner Koch  <wk@gnupg.org>
2055
2056         * certreqgen.c (create_request): Store the email address in the req.
2057
2058 2002-01-25  Werner Koch  <wk@gnupg.org>
2059
2060         * gpgsm.c (main): Disable core dumps.
2061
2062         * sign.c (add_certificate_list): New.
2063         (gpgsm_sign): Add the certificates to the CMS object.
2064         * certpath.c (gpgsm_walk_cert_chain): New.
2065         * gpgsm.h (server_control_s): Add included_certs.
2066         * gpgsm.c: Add option --include-certs.
2067         (gpgsm_init_default_ctrl): New.
2068         (main): Call it.
2069         * server.c (gpgsm_server): Ditto.
2070         (option_handler): Support --include-certs.
2071
2072 2002-01-23  Werner Koch  <wk@gnupg.org>
2073
2074         * certpath.c (gpgsm_validate_path): Print the DN of a missing issuer.
2075         * certdump.c (gpgsm_dump_string): New.
2076         (print_dn): Replaced by above.
2077
2078 2002-01-22  Werner Koch  <wk@gnupg.org>
2079
2080         * certpath.c (unknown_criticals): New.
2081         (allowed_ca): New.
2082         (gpgsm_validate_path): Check validity, CA attribute, path length
2083         and unknown critical extensions.
2084
2085 2002-01-21  Werner Koch  <wk@gnupg.org>
2086
2087         * gpgsm.c: Add option --enable-crl-checks.
2088
2089         * call-agent.c (start_agent): Implemented socket based access.
2090         * call-dirmngr.c (start_dirmngr): Ditto.
2091
2092 2002-01-20  Werner Koch  <wk@gnupg.org>
2093
2094         * server.c (option_handler): New.
2095         (gpgsm_server): Register it with assuan.
2096
2097 2002-01-19  Werner Koch  <wk@gnupg.org>
2098
2099         * server.c (gpgsm_server): Use assuan_deinit_server and setup
2100         assuan logging if enabled.
2101         * call-agent.c (inq_ciphertext_cb): Don't show the session key in
2102         an Assuan log file.
2103
2104         * gpgsm.c (my_strusage): Take bugreport address from configure.ac
2105
2106 2002-01-15  Werner Koch  <wk@gnupg.org>
2107
2108         * import.c (gpgsm_import): Just do a basic cert check before
2109         storing it.
2110         * certpath.c (gpgsm_basic_cert_check): New.
2111
2112         * keydb.c (keydb_store_cert): New.
2113         * import.c (store_cert): Removed and change all caller to use
2114         the new function.
2115         * verify.c (store_cert): Ditto.
2116
2117         * certlist.c (gpgsm_add_to_certlist): Validate the path
2118
2119         * certpath.c (gpgsm_validate_path): Check the trust list.
2120         * call-agent.c (gpgsm_agent_istrusted): New.
2121
2122 2002-01-14  Werner Koch  <wk@gnupg.org>
2123
2124         * call-dirmngr.c (inq_certificate): Changed for new interface semantic.
2125         * certlist.c (gpgsm_find_cert): New.
2126
2127 2002-01-13  Werner Koch  <wk@gnupg.org>
2128
2129         * fingerprint.c (gpgsm_get_certid): Print the serial and not the
2130         hash after the dot.
2131
2132 2002-01-11  Werner Koch  <wk@gnupg.org>
2133
2134         * call-dirmngr.c: New.
2135         * certpath.c (gpgsm_validate_path): Check the CRL here.
2136         * fingerprint.c (gpgsm_get_certid): New.
2137         * gpgsm.c: New options --dirmngr-program and --disable-crl-checks.
2138
2139 2002-01-10  Werner Koch  <wk@gnupg.org>
2140
2141         * base64.c (gpgsm_create_writer): Allow to set the object name
2142
2143 2002-01-08  Werner Koch  <wk@gnupg.org>
2144
2145         * keydb.c (spacep): Removed because it is now in util.c
2146
2147         * server.c (cmd_genkey): New.
2148         * certreqgen.c: New.  The parameter handling code has been taken
2149         from gnupg/g10/keygen.c version 1.0.6.
2150         * call-agent.c (gpgsm_agent_genkey): New.
2151
2152 2002-01-02  Werner Koch  <wk@gnupg.org>
2153
2154         * server.c (rc_to_assuan_status): Removed and changed all callers
2155         to use map_to_assuan_status.
2156
2157 2001-12-20  Werner Koch  <wk@gnupg.org>
2158
2159         * verify.c (gpgsm_verify): Implemented non-detached signature
2160         verification.  Add OUT_FP arg, initialize a writer and changed all
2161         callers.
2162         * server.c (cmd_verify): Pass an out_fp if one has been set.
2163
2164         * base64.c (base64_reader_cb): Try to detect an S/MIME body part.
2165
2166         * certdump.c (print_sexp): Renamed to gpgsm_dump_serial, made
2167         global.
2168         (print_time): Renamed to gpgsm_dump_time, made global.
2169         (gpgsm_dump_serial): Take a real S-Expression as argument and
2170         print the first item.
2171         * keylist.c (list_cert_colon): Ditto.
2172         * keydb.c (keydb_search_issuer_sn): Ditto.
2173         * decrypt.c (print_integer_sexp): Removed and made callers 
2174         use gpgsm_dump_serial.
2175         * verify.c (print_time): Removed, made callers use gpgsm_dump_time.
2176         
2177 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
2178
2179         * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
2180
2181 2001-12-18  Werner Koch  <wk@gnupg.org>
2182
2183         * verify.c (print_integer_sexp): Renamed from print_integer and
2184         print the serial number according to the S-Exp rules.
2185         * decrypt.c (print_integer_sexp): Ditto.
2186
2187 2001-12-17  Werner Koch  <wk@gnupg.org>
2188
2189         * keylist.c (list_cert_colon): Changed for new return value of
2190         get_serial.
2191         * keydb.c (keydb_search_issuer_sn): Ditto.
2192         * certcheck.c (gpgsm_check_cert_sig): Likewise for other S-Exp
2193         returingin functions.
2194         * fingerprint.c (gpgsm_get_keygrip): Ditto.
2195         * encrypt.c (encrypt_dek): Ditto
2196         * certcheck.c (gpgsm_check_cms_signature): Ditto
2197         * decrypt.c (prepare_decryption): Ditto.
2198         * call-agent.c (gpgsm_agent_pkdecrypt): Removed arg ciphertextlen,
2199         use KsbaSexp type and calculate the length.
2200
2201         * certdump.c (print_sexp): Remaned from print_integer, changed caller.
2202
2203         * Makefile.am: Use the LIBGCRYPT and LIBKSBA variables.
2204
2205         * fingerprint.c (gpgsm_get_keygrip): Use the new
2206         gcry_pk_get_keygrip to calculate the grip - note the algorithm and
2207         therefore the grip values changed.
2208
2209 2001-12-15  Werner Koch  <wk@gnupg.org>
2210
2211         * certcheck.c (gpgsm_check_cms_signature): Removed the faked-key
2212         kludge.
2213         (gpgsm_create_cms_signature): Removed the commented fake key
2214         code.  This makes the function pretty simple.
2215
2216         * gpgsm.c (main): Renamed the default key database to "keyring.kbx".
2217
2218         * decrypt.c (gpgsm_decrypt): Write STATUS_DECRYPTION_*.
2219         * sign.c (gpgsm_sign): Write a STATUS_SIG_CREATED.
2220
2221 2001-12-14  Werner Koch  <wk@gnupg.org>
2222
2223         * keylist.c (list_cert_colon): Kludge to show an email address
2224         encoded in the subject's DN.
2225
2226         * verify.c (gpgsm_verify): Add hash debug helpers
2227         * sign.c (gpgsm_sign): Ditto.
2228
2229         * base64.c (base64_reader_cb): Reset the linelen when we need to
2230         skip the line and adjusted test; I somehow forgot about DeMorgan.
2231
2232         * server.c (cmd_encrypt,cmd_decrypt,cmd_sign,cmd_verify) 
2233         (cmd_import): Close the FDs on success.
2234         (close_message_fd): New.
2235         (input_notify): Setting autodetect_encoding to 0 after initializing
2236         it to 0 is pretty pointless.  Easy to fix.
2237
2238         * gpgsm.c (main): New option --debug-wait n, so that it is
2239         possible to attach gdb when used in server mode.
2240
2241         * sign.c (get_default_signer): Use keydb_classify_name here.
2242
2243 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
2244
2245         * call-agent.c (LINELENGTH): Removed.
2246         (gpgsm_agent_pksign): Use ASSUAN_LINELENGTH, not LINELENGTH.
2247         (gpgsm_agent_pkdecrypt): Likewise.
2248
2249 2001-12-13  Werner Koch  <wk@gnupg.org>
2250
2251         * keylist.c (list_cert_colon): Print alternative names of subject
2252         and a few other values.
2253
2254 2001-12-12  Werner Koch  <wk@gnupg.org>
2255
2256         * gpgsm.c (main): New options --assume-{armor,base64,binary}. 
2257         * base64.c (base64_reader_cb): Fixed non-autodetection mode.
2258
2259 2001-12-04  Werner Koch  <wk@gnupg.org>
2260
2261         * call-agent.c (read_from_agent): Check for inquire responses.
2262         (request_reply): Handle them using a new callback arg, changed all
2263         callers.
2264         (gpgsm_agent_pkdecrypt): New.
2265
2266 2001-11-27  Werner Koch  <wk@gnupg.org>
2267
2268         * base64.c: New.  Changed all other functions to use this instead
2269         of direct creation of ksba_reader/writer.
2270         * gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
2271
2272 2001-11-26  Werner Koch  <wk@gnupg.org>
2273
2274         * gpgsm.c: New option --agent-program
2275         * call-agent.c (start_agent): Allow to override the default path
2276         to the agent.
2277
2278         * keydb.c (keydb_add_resource): Create keybox
2279
2280         * keylist.c (gpgsm_list_keys): Fixed non-server keylisting.
2281
2282         * server.c (rc_to_assuan_status): New.  Use it for all commands.
2283
2284         
2285  Copyright 2001, 2002, 2003, 2004, 2005, 2006,
2286            2007, 2008 Free Software Foundation, Inc.
2287
2288  This file is free software; as a special exception the author gives
2289  unlimited permission to copy and/or distribute it, with or without
2290  modifications, as long as this notice is preserved.
2291
2292  This file is distributed in the hope that it will be useful, but
2293  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
2294  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.