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