(parse_dn_part): Pretty print the nameDistinguisher OID.
[gnupg.git] / sm / ChangeLog
1 2004-01-27  Werner Koch  <wk@gnupg.org>
2
3         * certdump.c (parse_dn_part): Pretty print the nameDistinguisher OID.
4         (print_dn_part): Do not delimit multiple RDN by " + ".  Handle
5         multi-valued RDNs in a special way, i.e. in the order specified by
6         the certificate.
7         (print_dn_parts): Simplified. 
8
9 2004-01-16  Werner Koch  <wk@gnupg.org>
10
11         * sign.c (gpgsm_sign): Print an error message on all failures.
12         * decrypt.c (gpgsm_decrypt): Ditto.
13
14 2003-12-17  Werner Koch  <wk@gnupg.org>
15
16         * server.c (gpgsm_server): Add arg DEFAULT_RECPLIST.
17         (cmd_encrypt): Add all enrypt-to marked certs to the list.
18         * encrypt.c (gpgsm_encrypt): Check that real recipients are
19         available.
20         * gpgsm.c (main): Make the --encrypt-to and --no-encrypt-to
21         options work.  Pass the list of recients to gpgsm_server.
22         * gpgsm.h (certlist_s): Add field IS_ENCRYPT_TO.
23         (opt): Add NO_ENCRYPT_TO.
24         * certlist.c (gpgsm_add_to_certlist): New arg IS_ENCRYPT_TO.
25         Changed all callers and ignore duplicate entries.
26         (is_cert_in_certlist): New.
27         (gpgsm_add_cert_to_certlist): New.
28
29         * certdump.c (gpgsm_print_serial): Cleaned up cast use in strtoul.
30         (gpgsm_dump_serial): Ditto.
31
32         * decrypt.c (gpgsm_decrypt): Replaced ERR by RC.
33
34 2003-12-16  Werner Koch  <wk@gnupg.org>
35
36         * gpgsm.c (main): Set the prefixes for assuan logging.
37
38         * sign.c (gpgsm_sign): Add validation checks for the default
39         certificate.
40
41         * gpgsm.c: Add -k as alias for --list-keys and -K for
42         --list-secret-keys.
43
44 2003-12-15  Werner Koch  <wk@gnupg.org>
45
46         * encrypt.c (init_dek): Use gry_create_nonce for the IV; there is
47         not need for real strong random here and it even better protect
48         the random bits used for the key.
49
50 2003-12-01  Werner Koch  <wk@gnupg.org>
51
52         * gpgsm.c, gpgsm.h: New options --{enable,disable}-ocsp.
53         (gpgsm_init_default_ctrl): Set USE_OCSP to the default value.
54         * certchain.c (gpgsm_validate_chain): Handle USE_OCSP.
55         * call-dirmngr.c (gpgsm_dirmngr_isvalid): Add arg USE_OCSP and
56         proceed accordingly.
57
58 2003-11-19  Werner Koch  <wk@gnupg.org>
59
60         * verify.c (gpgsm_verify): Use "0" instead of an empty string for
61         the VALIDSIG status.
62
63 2003-11-18  Werner Koch  <wk@gnupg.org>
64
65         * verify.c (gpgsm_verify): Fixed for changes API of gcry_md_info.
66
67         * certchain.c (unknown_criticals): Fixed an error code test.
68
69 2003-11-12  Werner Koch  <wk@gnupg.org>
70
71         Adjusted for API changes in Libksba.
72
73 2003-10-31  Werner Koch  <wk@gnupg.org>
74
75         * certchain.c (gpgsm_validate_chain): Changed to use ksba_isotime_t.
76         * verify.c (strtimestamp_r, gpgsm_verify): Ditto.
77         * sign.c (gpgsm_sign): Ditto.
78         * keylist.c (print_time, list_cert_std, list_cert_colon): Ditto.
79         * certdump.c (gpgsm_print_time, gpgsm_dump_time, gpgsm_dump_cert):
80         Ditto.
81
82 2003-10-25  Werner Koch  <wk@gnupg.org>
83
84         * certreqgen.c (read_parameters): Fixed faulty of !spacep().
85
86 2003-08-20  Marcus Brinkmann  <marcus@g10code.de>
87
88         * encrypt.c (encode_session_key): Allocate enough space.  Cast key
89         byte to unsigned char to prevent sign extension.
90         (encrypt_dek): Check return value before error.
91
92 2003-08-14  Timo Schulz  <twoaday@freakmail.de>
93
94         * encrypt.c (encode_session_key): Use new Libgcrypt interface.
95         
96 2003-07-31  Werner Koch  <wk@gnupg.org>
97
98         * Makefile.am (gpgsm_LDADD): Added INTLLIBS.
99
100 2003-07-29  Werner Koch  <wk@gnupg.org>
101
102         * gpgsm.c (main): Add secmem features and set the random seed file.
103         (gpgsm_exit): Update the random seed file and enable debug output.
104
105 2003-07-27  Werner Koch  <wk@gnupg.org>
106
107         Adjusted for gcry_mpi_print and gcry_mpi_scan API change.
108
109 2003-06-24  Werner Koch  <wk@gnupg.org>
110
111         * server.c (gpgsm_status_with_err_code): New.
112         * verify.c (gpgsm_verify): Use it here instead of the old
113         tokenizing version.
114
115         * verify.c (strtimestamp): Renamed to strtimestamp_r
116
117         Adjusted for changes in the libgcrypt API. Some more fixes for the
118         libgpg-error stuff.  
119
120 2003-06-04  Werner Koch  <wk@gnupg.org>
121
122         * call-agent.c (init_membuf,put_membuf,get_membuf): Removed.
123         Include new membuf header and changed used type.
124
125         Renamed error codes from INVALID to INV and removed _ERROR suffixes.
126
127 2003-06-03  Werner Koch  <wk@gnupg.org>
128
129         Changed all error codes in all files to the new libgpg-error scheme.
130
131         * gpgsm.h: Include gpg-error.h .
132         * Makefile.am: Link with libgpg-error.
133
134 2003-04-29  Werner Koch  <wk@gnupg.org>
135
136         * Makefile.am: Use libassuan.  Don't override LDFLAGS anymore.
137         * server.c (register_commands): Adjust for new Assuan semantics.
138
139 2002-12-03  Werner Koch  <wk@gnupg.org>
140
141         * call-agent.c (gpgsm_agent_passwd): New.
142         * gpgsm.c (main): New command --passwd and --call-protect-tool
143         (run_protect_tool): New.
144
145 2002-11-25  Werner Koch  <wk@gnupg.org>
146
147         * verify.c (gpgsm_verify): Handle content-type attribute. 
148
149 2002-11-13  Werner Koch  <wk@gnupg.org>
150
151         * call-agent.c (start_agent): Try to use $GPG_TTY instead of
152         ttyname.  Changed ttyname to test stdin becuase it can be assumed
153         that output redirection is more common that input redirection.
154
155 2002-11-12  Werner Koch  <wk@gnupg.org>
156
157         * gpgsm.c: New command --call-dirmngr. 
158         * call-dirmngr.c (gpgsm_dirmngr_run_command)
159         (run_command_inq_cb,run_command_cb)
160         (run_command_status_cb): New.
161
162 2002-11-11  Werner Koch  <wk@gnupg.org>
163
164         * certcheck.c (gpgsm_check_cms_signature): Don't double free
165         s_sig but free s_pkey at leave.
166
167 2002-11-10  Werner Koch  <wk@gnupg.org>
168
169         * gpgsm.c: Removed duplicate --list-secret-key entry.
170
171 2002-09-19  Werner Koch  <wk@gnupg.org>
172
173         * certcheck.c (gpgsm_check_cert_sig): Add cert hash debugging.
174
175         * certchain.c (find_up): Print info when the cert was not found 
176         by the autorithyKeyIdentifier.
177
178 2002-09-03  Werner Koch  <wk@gnupg.org>
179
180         * gpgsm.c (main): Disable the internal libgcrypt locking.
181
182 2002-08-21  Werner Koch  <wk@gnupg.org>
183
184         * import.c (print_imported_summary): Cleaned up.  Print new
185         not_imported value.
186         (check_and_store): Update non_imported counter.
187         (print_import_problem): New.
188         (check_and_store): Print error status message.
189         * server.c (get_status_string): Added STATUS_IMPORT_PROBLEM.
190
191 2002-08-20  Werner Koch  <wk@gnupg.org>
192
193         * gpgsm.c (main): Use the log file only in server mode.
194
195         * import.c (print_imported_summary): New.
196         (check_and_store): Update the counters, take new argument.
197         (import_one): Factored out core of gpgsm_import.
198         (gpgsm_import): Print counters.
199         (gpgsm_import_files): New.
200         * gpgsm.c (main): Use the new function for import.
201
202 2002-08-19  Werner Koch  <wk@gnupg.org>
203
204         * decrypt.c (gpgsm_decrypt): Return a better error status token.
205         * verify.c (gpgsm_verify): Don't error on messages with no signing
206         time or no message digest.  This is only the case for messages
207         without any signed attributes.
208
209 2002-08-16  Werner Koch  <wk@gnupg.org>
210
211         * certpath.c: Renamed to ..
212         * certchain.c: this. Renamed all all other usages of "path" in the
213         context of certificates to "chain".
214
215         * call-agent.c (learn_cb): Special treatment when the issuer
216         certificate is missing.
217
218 2002-08-10  Werner Koch  <wk@gnupg.org>
219
220         * Makefile.am (INCLUDES): Add definition for localedir.
221
222         * keylist.c (list_cert_colon): Print the short fingerprint in the
223         key ID field.
224         * fingerprint.c (gpgsm_get_short_fingerprint): New.
225         * verify.c (gpgsm_verify): Print more verbose info for a good
226         signature.
227
228 2002-08-09  Werner Koch  <wk@gnupg.org>
229
230         * decrypt.c (prepare_decryption): Hack to detected already
231         unpkcsedone keys.
232
233         * gpgsm.c (emergency_cleanup): New.
234         (main): Initialize the signal handler.
235
236         * sign.c (gpgsm_sign): Reset the hash context for subsequent
237         signers and release it at the end.
238
239 2002-08-05  Werner Koch  <wk@gnupg.org>
240
241         * server.c (cmd_signer): New command "SIGNER"
242         (register_commands): Register it.
243         (cmd_sign): Pass the signer list to gpgsm_sign.
244         * certlist.c (gpgsm_add_to_certlist): Add SECRET argument, check
245         for secret key if set and changed all callers.
246         * sign.c (gpgsm_sign): New argument SIGNERLIST and implemt
247         multiple signers.
248         * gpgsm.c (main): Support more than one -u.
249         
250         * server.c (cmd_recipient): Return reason code 1 for No_Public_Key
251         which is actually what gets returned from add_to_certlist.
252         
253 2002-07-26  Werner Koch  <wk@gnupg.org>
254
255         * certcheck.c (gpgsm_check_cert_sig): Implement proper cleanup.
256         (gpgsm_check_cms_signature): Ditto.
257
258 2002-07-22  Werner Koch  <wk@gnupg.org>
259
260         * keydb.c (keydb_add_resource): Register a lock file.
261         (lock_all, unlock_all): Implemented.
262
263         * delete.c: New.
264         * gpgsm.c: Made --delete-key work.
265         * server.c (cmd_delkeys): New.
266         (register_commands): New command DELKEYS.
267
268         * decrypt.c (gpgsm_decrypt): Print a convenience note when RC2 is
269         used and a STATUS_ERROR with the algorithm oid.
270
271 2002-07-03  Werner Koch  <wk@gnupg.org>
272
273         * server.c (gpgsm_status2): Insert a blank between all optional
274         arguments when using assuan.
275         * server.c (cmd_recipient): No more need for extra blank in constants.
276         * import.c (print_imported_status): Ditto.
277         * gpgsm.c (main): Ditto.
278
279 2002-07-02  Werner Koch  <wk@gnupg.org>
280
281         * verify.c (gpgsm_verify): Extend the STATUS_BADSIG line with
282         the fingerprint.
283
284         * certpath.c (check_cert_policy): Don't use log_error to print a
285         warning.
286
287         * keydb.c (keydb_store_cert): Add optional ar EXISTED and changed
288         all callers.
289         * call-agent.c (learn_cb): Print info message only for real imports.
290
291         * import.c (gpgsm_import): Moved duplicated code to ...
292         (check_and_store): new function.  Added magic to import the entire
293         chain. Print status only for real imports and moved printing code
294         to ..
295         (print_imported_status): New.
296
297         * call-dirmngr.c (gpgsm_dirmngr_isvalid): print status of dirmngr
298         call in very verbose mode.
299
300         * gpgsm.c (main): Use the same error codes for STATUS_INV_RECP as
301         with the server mode.
302
303 2002-06-29  Werner Koch  <wk@gnupg.org>
304
305         * gpgsm.c: New option --auto-issuer-key-retrieve.
306         * certpath.c (find_up): Try to retrieve an issuer key from an
307         external source and from the ephemeral key DB.
308         (find_up_store_certs_cb): New.
309
310         * keydb.c (keydb_set_ephemeral): Does now return the old
311         state.  Call the backend only when required.
312
313         * call-dirmngr.c (start_dirmngr): Use GNUPG_DEFAULT_DIRMNGR.
314         (lookup_status_cb): Issue status only when CTRL is not NULL.
315         (gpgsm_dirmngr_lookup): Document that CTRL is optional.
316
317         * call-agent.c (start_agent): Use GNUPG_DEFAULT_AGENT.
318
319 2002-06-28  Werner Koch  <wk@gnupg.org>
320
321         * server.c (cmd_recipient): Add more reason codes.
322
323 2002-06-27  Werner Koch  <wk@gnupg.org>
324
325         * certpath.c (gpgsm_basic_cert_check): Use
326         --debug-no-path-validation to also bypass this basic check.
327
328         * gpgsm.c (main): Use GNUPG_DEFAULT_HOMEDIR constant.
329
330         * call-agent.c (start_agent): Create and pass the list of FD to
331         keep in the child to assuan.
332         * call-dirmngr.c (start_dirmngr): Ditto.
333
334 2002-06-26  Werner Koch  <wk@gnupg.org>
335
336         * import.c (gpgsm_import): Print an STATUS_IMPORTED.
337
338         * gpgsm.c: --debug-no-path-validation does not take an argument.
339
340 2002-06-25  Werner Koch  <wk@gnupg.org>
341
342         * certdump.c (print_dn_part): Always print a leading slash,
343         removed NEED_DELIM arg and changed caller.
344
345         * export.c (gpgsm_export): Print LFs to FP and not stdout.
346         (print_short_info): Ditto.  Make use of gpgsm_print_name.
347
348         * server.c (cmd_export): Use output-fd instead of data lines; this
349         was actually the specified way.
350
351 2002-06-24  Werner Koch  <wk@gnupg.org>
352
353         * gpgsm.c: Removed duped help entry for --list-keys.
354         
355         * gpgsm.c, gpgsm.h: New option --debug-no-path-validation.
356
357         * certpath.c (gpgsm_validate_path): Use it here instead of the
358         debug flag hack.
359
360         * certpath.c (check_cert_policy): Return No_Policy_Match if the
361         policy file could not be opened.
362
363 2002-06-20  Werner Koch  <wk@gnupg.org>
364
365         * certlist.c (gpgsm_add_to_certlist): Fixed locating of a
366         certificate with the required key usage.
367
368         * gpgsm.c (main): Fixed a segv when using --outfile without an
369         argument.
370
371         * keylist.c (print_capabilities): Also check for non-repudiation
372         and data encipherment.
373         * certlist.c (cert_usage_p): Test for signing and encryption was
374         swapped.  Add a case for certification usage, handle
375         non-repudiation and data encipherment.
376         (gpgsm_cert_use_cert_p): New.
377         (gpgsm_add_to_certlist): Added a CTRL argument and changed all
378         callers to pass it.
379         * certpath.c (gpgsm_validate_path): Use it here to print a status
380         message. Added a CTRL argument and changed all callers to pass it.
381         * decrypt.c (gpgsm_decrypt): Print a status message for wrong key
382         usage.
383         * verify.c (gpgsm_verify): Ditto.
384         * keydb.c (classify_user_id): Allow a colon delimited fingerprint.
385
386 2002-06-19  Werner Koch  <wk@gnupg.org>
387
388         * call-agent.c (learn_cb): Use log_info instead of log_error on
389         successful import.
390
391         * keydb.c (keydb_set_ephemeral): New.
392         (keydb_store_cert): New are ephemeral, changed all callers.
393         * keylist.c (list_external_cb): Store cert as ephemeral.
394         * export.c (gpgsm_export): Kludge to export epehmeral certificates.
395
396         * gpgsm.c (main): New command --list-external-keys.
397         
398 2002-06-17  Werner Koch  <wk@gnupg.org>
399
400         * certreqgen.c (read_parameters): Improved error handling.
401         (gpgsm_genkey): Print error message.
402
403 2002-06-13  Werner Koch  <wk@gnupg.org>
404
405         * gpgsm.c (main): New option --log-file.
406
407 2002-06-12  Werner Koch  <wk@gnupg.org>
408
409         * call-dirmngr.c (lookup_status_cb): New.
410         (gpgsm_dirmngr_lookup): Use the status CB.  Add new arg CTRL and
411         changed caller to pass it.
412
413         * gpgsm.c (open_fwrite): New.
414         (main): Allow --output for --verify.
415
416         * sign.c (hash_and_copy_data): New.
417         (gpgsm_sign): Implemented normal (non-detached) signatures.
418         * gpgsm.c (main): Ditto.
419         
420         * certpath.c (gpgsm_validate_path): Special error handling for
421         no policy match.
422
423 2002-06-10  Werner Koch  <wk@gnupg.org>
424
425         * server.c (get_status_string): Add STATUS_ERROR.
426
427         * certpath.c (gpgsm_validate_path): Tweaked the error checking to 
428         return error codes in a more sensitive way.
429         * verify.c (gpgsm_verify): Send status TRUST_NEVER also for a bad
430         CA certificate and when the certificate has been revoked.  Issue
431         TRUST_FULLY even when the cert has expired.  Append an error token
432         to these status lines.  Issue the new generic error status when a
433         cert was not found and when leaving the function.
434
435 2002-06-04  Werner Koch  <wk@gnupg.org>
436
437         * gpgsm.c (main): New command --list-sigs
438         * keylist.c (list_cert_std): New.  Use it whenever colon mode is
439         not used.
440         (list_cert_chain): New.
441
442 2002-05-31  Werner Koch  <wk@gnupg.org>
443
444         * gpgsm.c (main): Don't print the "go ahead" message for an
445         invalid command.
446
447 2002-05-23  Werner Koch  <wk@gnupg.org>
448
449         * import.c (gpgsm_import): Add error messages.
450
451 2002-05-21  Werner Koch  <wk@gnupg.org>
452
453         * keylist.c (list_internal_keys): Renamed from gpgsm_list_keys.
454         (list_external_keys): New.
455         (gpgsm_list_keys): Dispatcher for above.
456         * call-dirmngr.c (lookup_cb,pattern_from_strlist)
457         (gpgsm_dirmngr_lookup): New.
458         * server.c (option_handler): Handle new option --list-mode.
459         (do_listkeys): Handle options and actually use the mode argument.
460         (get_status_string): New code TRUNCATED.
461
462         * import.c (gpgsm_import): Try to identify the type of input and
463         handle certs-only messages.
464
465 2002-05-14  Werner Koch  <wk@gnupg.org>
466
467         * gpgsm.c: New option --faked-system-time
468         * sign.c (gpgsm_sign): And use it here.
469         * certpath.c (gpgsm_validate_path): Ditto.
470
471 2002-05-03  Werner Koch  <wk@gnupg.org>
472
473         * certpath.c (gpgsm_validate_path): Added EXPTIME arg and changed
474         all callers.
475         * verify.c (gpgsm_verify): Tweaked usage of log_debug and
476         log_error.  Return EXPSIG status and add expiretime to VALIDSIG.
477
478 2002-04-26  Werner Koch  <wk@gnupg.org>
479
480         * gpgsm.h (DBG_AGENT,DBG_AGENT_VALUE): Replaced by DBG_ASSUAN_*.
481         Changed all users.
482
483         * call-agent.c (start_agent): Be more silent without -v.
484         * call-dirmngr.c (start_dirmngr): Ditto.
485
486 2002-04-25  Werner Koch  <wk@gnupg.org>
487
488         * call-agent.c (start_agent): Make copies of old locales and check
489         for setlocale.
490
491 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
492
493         * call-agent.c (start_agent): Fix error handling logic so the
494         locale is always correctly reset.
495
496 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
497
498         * server.c (option_handler): Accept display, ttyname, ttytype,
499         lc_ctype and lc_messages options.
500         * gpgsm.c (main): Allocate memory for these options.
501         * gpgsm.h (struct opt): Make corresponding members non-const.
502
503 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
504
505         * gpgsm.h (struct opt): New members display, ttyname, ttytype,
506         lc_ctype, lc_messages.
507         * gpgsm.c (enum cmd_and_opt_values): New members oDisplay,
508         oTTYname, oTTYtype, oLCctype, oLCmessages.
509         (opts): New entries for these options.
510         (main): Handle these new options.
511         * call-agent.c (start_agent): Set the various display and tty
512         parameter after resetting.
513
514 2002-04-18  Werner Koch  <wk@gnupg.org>
515
516         * certreqgen.c (gpgsm_genkey): Write status output on success.
517
518 2002-04-15  Werner Koch  <wk@gnupg.org>
519
520         * gpgsm.c (main): Check ksba version.
521
522         * certpath.c (find_up): New to use the authorithKeyIdentifier.
523         Use it in all other functions to locate the signing cert..
524
525 2002-04-11  Werner Koch  <wk@gnupg.org>
526
527         * certlist.c (cert_usable_p): New.
528         (gpgsm_cert_use_sign_p,gpgsm_cert_use_encrypt_p): New.
529         (gpgsm_cert_use_verify_p,gpgsm_cert_use_decrypt_p): New.
530         (gpgsm_add_to_certlist): Check the key usage.
531         * sign.c (gpgsm_sign): Ditto.
532         * verify.c (gpgsm_verify): Print a message wehn an unsuitable
533         certificate was used.
534         * decrypt.c (gpgsm_decrypt): Ditto
535         * keylist.c (print_capabilities): Determine values from the cert.
536
537 2002-03-28  Werner Koch  <wk@gnupg.org>
538
539         * keylist.c (list_cert_colon): Fixed listing of crt record; the
540         issuer is not at the right place.  Print a chainingID.
541         * certpath.c (gpgsm_walk_cert_chain): Be a bit more silent on
542         common errors.
543
544 2002-03-21  Werner Koch  <wk@gnupg.org>
545
546         * export.c: New.
547         * gpgsm.c: Add command --export.
548         * server.c (cmd_export): New.
549         
550 2002-03-13  Werner Koch  <wk@gnupg.org>
551
552         * decrypt.c (gpgsm_decrypt): Allow multiple recipients.
553
554 2002-03-12  Werner Koch  <wk@gnupg.org>
555
556         * certpath.c (check_cert_policy): Print the policy list.
557
558         * verify.c (gpgsm_verify): Detect certs-only message.
559
560 2002-03-11  Werner Koch  <wk@gnupg.org>
561
562         * import.c (gpgsm_import): Print a notice about imported certificates
563         when in verbose mode.
564
565         * gpgsm.c (main): Print INV_RECP status.
566         * server.c (cmd_recipient): Ditto.
567
568         * server.c (gpgsm_status2): New.  Allows for a list of strings.
569         (gpgsm_status): Divert to gpgsm_status2.
570
571         * encrypt.c (gpgsm_encrypt): Don't use a default key when no
572         recipients are given.  Print a NO_RECP status.
573
574 2002-03-06  Werner Koch  <wk@gnupg.org>
575
576         * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to
577         (do_listkeys): new.  Add pattern parsing.
578
579         * keylist.c (gpgsm_list_keys): Handle selection pattern.
580
581         * gpgsm.c: New command --learn-card
582         * call-agent.c (learn_cb,gpgsm_agent_learn): New.
583
584         * gpgsm.c (main): Print error messages for non-implemented commands.
585
586         * base64.c (base64_reader_cb): Use case insensitive compare of the
587         Content-Type string to detect plain base-64.
588
589 2002-03-05  Werner Koch  <wk@gnupg.org>
590
591         * gpgsm.c, gpgsm.h: Add local_user.
592         * sign.c (gpgsm_get_default_cert): New.
593         (get_default_signer): Use the new function if local_user is not
594         set otherwise used that value.
595         * encrypt.c (get_default_recipient): Removed.
596         (gpgsm_encrypt): Use gpgsm_get_default_cert.
597
598         * verify.c (gpgsm_verify): Better error text for a bad signature
599         found by comparing the hashs.
600
601 2002-02-27  Werner Koch  <wk@gnupg.org>
602
603         * call-dirmngr.c, call-agent.c: Add 2 more arguments to all uses
604         of assuan_transact.
605
606 2002-02-25  Werner Koch  <wk@gnupg.org>
607
608         * server.c (option_handler): Allow to use -2 for "send all certs
609         except the root cert".
610         * sign.c (add_certificate_list): Implement it here.
611         * certpath.c (gpgsm_is_root_cert): New.
612
613 2002-02-19  Werner Koch  <wk@gnupg.org>
614
615         * certpath.c (check_cert_policy): New.
616         (gpgsm_validate_path): And call it from here.
617         * gpgsm.c (main): New options --policy-file,
618         --disable-policy-checks and --enable-policy-checks.
619         * gpgsm.h (opt): Added policy_file, no_policy_checks.
620
621 2002-02-18  Werner Koch  <wk@gnupg.org>
622
623         * certpath.c (gpgsm_validate_path): Ask the agent to add the
624         certificate into the trusted list.
625         * call-agent.c (gpgsm_agent_marktrusted): New.
626
627 2002-02-07  Werner Koch  <wk@gnupg.org>
628
629         * certlist.c (gpgsm_add_to_certlist): Check that the specified
630         name identifies a certificate unambiguously.
631         (gpgsm_find_cert): Ditto.
632
633         * server.c (cmd_listkeys): Check that the data stream is available.
634         (cmd_listsecretkeys): Ditto.
635         (has_option): New.
636         (cmd_sign): Fix ambiguousity in option recognition.
637
638         * gpgsm.c (main): Enable --logger-fd.
639
640         * encrypt.c (gpgsm_encrypt): Increased buffer size for better
641         performance.
642
643         * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from
644         the agent.
645
646         * keylist.c (list_cert_colon): Filter out control characters.
647
648 2002-02-06  Werner Koch  <wk@gnupg.org>
649
650         * decrypt.c (gpgsm_decrypt): Bail out after an decryption error.
651
652         * server.c (reset_notify): Close input and output FDs.
653         (cmd_encrypt,cmd_decrypt,cmd_verify,cmd_sign.cmd_import)
654         (cmd_genkey): Close the FDs and release the recipient list even in
655         the error case.
656
657 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
658
659         * sign.c (gpgsm_sign): Do not release certificate twice.
660
661 2002-01-29  Werner Koch  <wk@gnupg.org>
662
663         * call-agent.c (gpgsm_agent_havekey): New.
664         * keylist.c (list_cert_colon): New arg HAVE_SECRET, print "crs"
665         when we know that the secret key is available.
666         (gpgsm_list_keys): New arg MODE, check whether a secret key is
667         available.  Changed all callers.
668         * gpgsm.c (main): New command --list-secret-keys.
669         * server.c (cmd_listsecretkeys): New.
670         (cmd_listkeys): Return secret keys with "crs" record.
671
672 2002-01-28  Werner Koch  <wk@gnupg.org>
673
674         * certreqgen.c (create_request): Store the email address in the req.
675
676 2002-01-25  Werner Koch  <wk@gnupg.org>
677
678         * gpgsm.c (main): Disable core dumps.
679
680         * sign.c (add_certificate_list): New.
681         (gpgsm_sign): Add the certificates to the CMS object.
682         * certpath.c (gpgsm_walk_cert_chain): New.
683         * gpgsm.h (server_control_s): Add included_certs.
684         * gpgsm.c: Add option --include-certs.
685         (gpgsm_init_default_ctrl): New.
686         (main): Call it.
687         * server.c (gpgsm_server): Ditto.
688         (option_handler): Support --include-certs.
689
690 2002-01-23  Werner Koch  <wk@gnupg.org>
691
692         * certpath.c (gpgsm_validate_path): Print the DN of a missing issuer.
693         * certdump.c (gpgsm_dump_string): New.
694         (print_dn): Replaced by above.
695
696 2002-01-22  Werner Koch  <wk@gnupg.org>
697
698         * certpath.c (unknown_criticals): New.
699         (allowed_ca): New.
700         (gpgsm_validate_path): Check validity, CA attribute, path length
701         and unknown critical extensions.
702
703 2002-01-21  Werner Koch  <wk@gnupg.org>
704
705         * gpgsm.c: Add option --enable-crl-checks.
706
707         * call-agent.c (start_agent): Implemented socket based access.
708         * call-dirmngr.c (start_dirmngr): Ditto.
709
710 2002-01-20  Werner Koch  <wk@gnupg.org>
711
712         * server.c (option_handler): New.
713         (gpgsm_server): Register it with assuan.
714
715 2002-01-19  Werner Koch  <wk@gnupg.org>
716
717         * server.c (gpgsm_server): Use assuan_deinit_server and setup
718         assuan logging if enabled.
719         * call-agent.c (inq_ciphertext_cb): Don't show the session key in
720         an Assuan log file.
721
722         * gpgsm.c (my_strusage): Take bugreport address from configure.ac
723
724 2002-01-15  Werner Koch  <wk@gnupg.org>
725
726         * import.c (gpgsm_import): Just do a basic cert check before
727         storing it.
728         * certpath.c (gpgsm_basic_cert_check): New.
729
730         * keydb.c (keydb_store_cert): New.
731         * import.c (store_cert): Removed and change all caller to use
732         the new function.
733         * verify.c (store_cert): Ditto.
734
735         * certlist.c (gpgsm_add_to_certlist): Validate the path
736
737         * certpath.c (gpgsm_validate_path): Check the trust list.
738         * call-agent.c (gpgsm_agent_istrusted): New.
739
740 2002-01-14  Werner Koch  <wk@gnupg.org>
741
742         * call-dirmngr.c (inq_certificate): Changed for new interface semantic.
743         * certlist.c (gpgsm_find_cert): New.
744
745 2002-01-13  Werner Koch  <wk@gnupg.org>
746
747         * fingerprint.c (gpgsm_get_certid): Print the serial and not the
748         hash after the dot.
749
750 2002-01-11  Werner Koch  <wk@gnupg.org>
751
752         * call-dirmngr.c: New.
753         * certpath.c (gpgsm_validate_path): Check the CRL here.
754         * fingerprint.c (gpgsm_get_certid): New.
755         * gpgsm.c: New options --dirmngr-program and --disable-crl-checks.
756
757 2002-01-10  Werner Koch  <wk@gnupg.org>
758
759         * base64.c (gpgsm_create_writer): Allow to set the object name
760
761 2002-01-08  Werner Koch  <wk@gnupg.org>
762
763         * keydb.c (spacep): Removed because it is now in util.c
764
765         * server.c (cmd_genkey): New.
766         * certreqgen.c: New.  The parameter handling code has been taken
767         from gnupg/g10/keygen.c version 1.0.6.
768         * call-agent.c (gpgsm_agent_genkey): New.
769
770 2002-01-02  Werner Koch  <wk@gnupg.org>
771
772         * server.c (rc_to_assuan_status): Removed and changed all callers
773         to use map_to_assuan_status.
774
775 2001-12-20  Werner Koch  <wk@gnupg.org>
776
777         * verify.c (gpgsm_verify): Implemented non-detached signature
778         verification.  Add OUT_FP arg, initialize a writer and changed all
779         callers.
780         * server.c (cmd_verify): Pass an out_fp if one has been set.
781
782         * base64.c (base64_reader_cb): Try to detect an S/MIME body part.
783
784         * certdump.c (print_sexp): Renamed to gpgsm_dump_serial, made
785         global.
786         (print_time): Renamed to gpgsm_dump_time, made global.
787         (gpgsm_dump_serial): Take a real S-Expression as argument and
788         print the first item.
789         * keylist.c (list_cert_colon): Ditto.
790         * keydb.c (keydb_search_issuer_sn): Ditto.
791         * decrypt.c (print_integer_sexp): Removed and made callers 
792         use gpgsm_dump_serial.
793         * verify.c (print_time): Removed, made callers use gpgsm_dump_time.
794         
795 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
796
797         * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
798
799 2001-12-18  Werner Koch  <wk@gnupg.org>
800
801         * verify.c (print_integer_sexp): Renamed from print_integer and
802         print the serial number according to the S-Exp rules.
803         * decrypt.c (print_integer_sexp): Ditto.
804
805 2001-12-17  Werner Koch  <wk@gnupg.org>
806
807         * keylist.c (list_cert_colon): Changed for new return value of
808         get_serial.
809         * keydb.c (keydb_search_issuer_sn): Ditto.
810         * certcheck.c (gpgsm_check_cert_sig): Likewise for other S-Exp
811         returingin functions.
812         * fingerprint.c (gpgsm_get_keygrip): Ditto.
813         * encrypt.c (encrypt_dek): Ditto
814         * certcheck.c (gpgsm_check_cms_signature): Ditto
815         * decrypt.c (prepare_decryption): Ditto.
816         * call-agent.c (gpgsm_agent_pkdecrypt): Removed arg ciphertextlen,
817         use KsbaSexp type and calculate the length.
818
819         * certdump.c (print_sexp): Remaned from print_integer, changed caller.
820
821         * Makefile.am: Use the LIBGCRYPT and LIBKSBA variables.
822
823         * fingerprint.c (gpgsm_get_keygrip): Use the new
824         gcry_pk_get_keygrip to calculate the grip - note the algorithm and
825         therefore the grip values changed.
826
827 2001-12-15  Werner Koch  <wk@gnupg.org>
828
829         * certcheck.c (gpgsm_check_cms_signature): Removed the faked-key
830         kludge.
831         (gpgsm_create_cms_signature): Removed the commented fake key
832         code.  This makes the function pretty simple.
833
834         * gpgsm.c (main): Renamed the default key database to "keyring.kbx".
835
836         * decrypt.c (gpgsm_decrypt): Write STATUS_DECRYPTION_*.
837         * sign.c (gpgsm_sign): Write a STATUS_SIG_CREATED.
838
839 2001-12-14  Werner Koch  <wk@gnupg.org>
840
841         * keylist.c (list_cert_colon): Kludge to show an email address
842         encoded in the subject's DN.
843
844         * verify.c (gpgsm_verify): Add hash debug helpers
845         * sign.c (gpgsm_sign): Ditto.
846
847         * base64.c (base64_reader_cb): Reset the linelen when we need to
848         skip the line and adjusted test; I somehow forgot about DeMorgan.
849
850         * server.c (cmd_encrypt,cmd_decrypt,cmd_sign,cmd_verify) 
851         (cmd_import): Close the FDs on success.
852         (close_message_fd): New.
853         (input_notify): Setting autodetect_encoding to 0 after initializing
854         it to 0 is pretty pointless.  Easy to fix.
855
856         * gpgsm.c (main): New option --debug-wait n, so that it is
857         possible to attach gdb when used in server mode.
858
859         * sign.c (get_default_signer): Use keydb_classify_name here.
860
861 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
862
863         * call-agent.c (LINELENGTH): Removed.
864         (gpgsm_agent_pksign): Use ASSUAN_LINELENGTH, not LINELENGTH.
865         (gpgsm_agent_pkdecrypt): Likewise.
866
867 2001-12-13  Werner Koch  <wk@gnupg.org>
868
869         * keylist.c (list_cert_colon): Print alternative names of subject
870         and a few other values.
871
872 2001-12-12  Werner Koch  <wk@gnupg.org>
873
874         * gpgsm.c (main): New options --assume-{armor,base64,binary}. 
875         * base64.c (base64_reader_cb): Fixed non-autodetection mode.
876
877 2001-12-04  Werner Koch  <wk@gnupg.org>
878
879         * call-agent.c (read_from_agent): Check for inquire responses.
880         (request_reply): Handle them using a new callback arg, changed all
881         callers.
882         (gpgsm_agent_pkdecrypt): New.
883
884 2001-11-27  Werner Koch  <wk@gnupg.org>
885
886         * base64.c: New.  Changed all other functions to use this instead
887         of direct creation of ksba_reader/writer.
888         * gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
889
890 2001-11-26  Werner Koch  <wk@gnupg.org>
891
892         * gpgsm.c: New option --agent-program
893         * call-agent.c (start_agent): Allow to override the default path
894         to the agent.
895
896         * keydb.c (keydb_add_resource): Create keybox
897
898         * keylist.c (gpgsm_list_keys): Fixed non-server keylisting.
899
900         * server.c (rc_to_assuan_status): New.  Use it for all commands.
901
902         
903  Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
904
905  This file is free software; as a special exception the author gives
906  unlimited permission to copy and/or distribute it, with or without
907  modifications, as long as this notice is preserved.
908
909  This file is distributed in the hope that it will be useful, but
910  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
911  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.