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