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