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