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