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