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