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