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