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