* import.c (gpgsm_import): Add error messages.
[gnupg.git] / sm / ChangeLog
1 2002-05-23  Werner Koch  <wk@gnupg.org>
2
3         * import.c (gpgsm_import): Add error messages.
4
5 2002-05-21  Werner Koch  <wk@gnupg.org>
6
7         * keylist.c (list_internal_keys): Renamed from gpgsm_list_keys.
8         (list_external_keys): New.
9         (gpgsm_list_keys): Dispatcher for above.
10         * call-dirmngr.c (lookup_cb,pattern_from_strlist)
11         (gpgsm_dirmngr_lookup): New.
12         * server.c (option_handler): Handle new option --list-mode.
13         (do_listkeys): Handle options and actually use the mode argument.
14         (get_status_string): New code TRUNCATED.
15
16         * import.c (gpgsm_import): Try to identify the type of input and
17         handle certs-only messages.
18
19 2002-05-14  Werner Koch  <wk@gnupg.org>
20
21         * gpgsm.c: New option --faked-system-time
22         * sign.c (gpgsm_sign): And use it here.
23         * certpath.c (gpgsm_validate_path): Ditto.
24
25 2002-05-03  Werner Koch  <wk@gnupg.org>
26
27         * certpath.c (gpgsm_validate_path): Added EXPTIME arg and changed
28         all callers.
29         * verify.c (gpgsm_verify): Tweaked usage of log_debug and
30         log_error.  Return EXPSIG status and add expiretime to VALIDSIG.
31
32 2002-04-26  Werner Koch  <wk@gnupg.org>
33
34         * gpgsm.h (DBG_AGENT,DBG_AGENT_VALUE): Replaced by DBG_ASSUAN_*.
35         Changed all users.
36
37         * call-agent.c (start_agent): Be more silent without -v.
38         * call-dirmngr.c (start_dirmngr): Ditto.
39
40 2002-04-25  Werner Koch  <wk@gnupg.org>
41
42         * call-agent.c (start_agent): Make copies of old locales and check
43         for setlocale.
44
45 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
46
47         * call-agent.c (start_agent): Fix error handling logic so the
48         locale is always correctly reset.
49
50 2002-04-25  Marcus Brinkmann  <marcus@g10code.de>
51
52         * server.c (option_handler): Accept display, ttyname, ttytype,
53         lc_ctype and lc_messages options.
54         * gpgsm.c (main): Allocate memory for these options.
55         * gpgsm.h (struct opt): Make corresponding members non-const.
56
57 2002-04-24  Marcus Brinkmann  <marcus@g10code.de>
58
59         * gpgsm.h (struct opt): New members display, ttyname, ttytype,
60         lc_ctype, lc_messages.
61         * gpgsm.c (enum cmd_and_opt_values): New members oDisplay,
62         oTTYname, oTTYtype, oLCctype, oLCmessages.
63         (opts): New entries for these options.
64         (main): Handle these new options.
65         * call-agent.c (start_agent): Set the various display and tty
66         parameter after resetting.
67
68 2002-04-18  Werner Koch  <wk@gnupg.org>
69
70         * certreqgen.c (gpgsm_genkey): Write status output on success.
71
72 2002-04-15  Werner Koch  <wk@gnupg.org>
73
74         * gpgsm.c (main): Check ksba version.
75
76         * certpath.c (find_up): New to use the authorithKeyIdentifier.
77         Use it in all other functions to locate the signing cert..
78
79 2002-04-11  Werner Koch  <wk@gnupg.org>
80
81         * certlist.c (cert_usable_p): New.
82         (gpgsm_cert_use_sign_p,gpgsm_cert_use_encrypt_p): New.
83         (gpgsm_cert_use_verify_p,gpgsm_cert_use_decrypt_p): New.
84         (gpgsm_add_to_certlist): Check the key usage.
85         * sign.c (gpgsm_sign): Ditto.
86         * verify.c (gpgsm_verify): Print a message wehn an unsuitable
87         certificate was used.
88         * decrypt.c (gpgsm_decrypt): Ditto
89         * keylist.c (print_capabilities): Determine values from the cert.
90
91 2002-03-28  Werner Koch  <wk@gnupg.org>
92
93         * keylist.c (list_cert_colon): Fixed listing of crt record; the
94         issuer is not at the right place.  Print a chainingID.
95         * certpath.c (gpgsm_walk_cert_chain): Be a bit more silent on
96         common errors.
97
98 2002-03-21  Werner Koch  <wk@gnupg.org>
99
100         * export.c: New.
101         * gpgsm.c: Add command --export.
102         * server.c (cmd_export): New.
103         
104 2002-03-13  Werner Koch  <wk@gnupg.org>
105
106         * decrypt.c (gpgsm_decrypt): Allow multiple recipients.
107
108 2002-03-12  Werner Koch  <wk@gnupg.org>
109
110         * certpath.c (check_cert_policy): Print the policy list.
111
112         * verify.c (gpgsm_verify): Detect certs-only message.
113
114 2002-03-11  Werner Koch  <wk@gnupg.org>
115
116         * import.c (gpgsm_import): Print a notice about imported certificates
117         when in verbose mode.
118
119         * gpgsm.c (main): Print INV_RECP status.
120         * server.c (cmd_recipient): Ditto.
121
122         * server.c (gpgsm_status2): New.  Allows for a list of strings.
123         (gpgsm_status): Divert to gpgsm_status2.
124
125         * encrypt.c (gpgsm_encrypt): Don't use a default key when no
126         recipients are given.  Print a NO_RECP status.
127
128 2002-03-06  Werner Koch  <wk@gnupg.org>
129
130         * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to
131         (do_listkeys): new.  Add pattern parsing.
132
133         * keylist.c (gpgsm_list_keys): Handle selection pattern.
134
135         * gpgsm.c: New command --learn-card
136         * call-agent.c (learn_cb,gpgsm_agent_learn): New.
137
138         * gpgsm.c (main): Print error messages for non-implemented commands.
139
140         * base64.c (base64_reader_cb): Use case insensitive compare of the
141         Content-Type string to detect plain base-64.
142
143 2002-03-05  Werner Koch  <wk@gnupg.org>
144
145         * gpgsm.c, gpgsm.h: Add local_user.
146         * sign.c (gpgsm_get_default_cert): New.
147         (get_default_signer): Use the new function if local_user is not
148         set otherwise used that value.
149         * encrypt.c (get_default_recipient): Removed.
150         (gpgsm_encrypt): Use gpgsm_get_default_cert.
151
152         * verify.c (gpgsm_verify): Better error text for a bad signature
153         found by comparing the hashs.
154
155 2002-02-27  Werner Koch  <wk@gnupg.org>
156
157         * call-dirmngr.c, call-agent.c: Add 2 more arguments to all uses
158         of assuan_transact.
159
160 2002-02-25  Werner Koch  <wk@gnupg.org>
161
162         * server.c (option_handler): Allow to use -2 for "send all certs
163         except the root cert".
164         * sign.c (add_certificate_list): Implement it here.
165         * certpath.c (gpgsm_is_root_cert): New.
166
167 2002-02-19  Werner Koch  <wk@gnupg.org>
168
169         * certpath.c (check_cert_policy): New.
170         (gpgsm_validate_path): And call it from here.
171         * gpgsm.c (main): New options --policy-file,
172         --disable-policy-checks and --enable-policy-checks.
173         * gpgsm.h (opt): Added policy_file, no_policy_checks.
174
175 2002-02-18  Werner Koch  <wk@gnupg.org>
176
177         * certpath.c (gpgsm_validate_path): Ask the agent to add the
178         certificate into the trusted list.
179         * call-agent.c (gpgsm_agent_marktrusted): New.
180
181 2002-02-07  Werner Koch  <wk@gnupg.org>
182
183         * certlist.c (gpgsm_add_to_certlist): Check that the specified
184         name identifies a certificate unambiguously.
185         (gpgsm_find_cert): Ditto.
186
187         * server.c (cmd_listkeys): Check that the data stream is available.
188         (cmd_listsecretkeys): Ditto.
189         (has_option): New.
190         (cmd_sign): Fix ambiguousity in option recognition.
191
192         * gpgsm.c (main): Enable --logger-fd.
193
194         * encrypt.c (gpgsm_encrypt): Increased buffer size for better
195         performance.
196
197         * call-agent.c (gpgsm_agent_pksign): Check the S-Exp received from
198         the agent.
199
200         * keylist.c (list_cert_colon): Filter out control characters.
201
202 2002-02-06  Werner Koch  <wk@gnupg.org>
203
204         * decrypt.c (gpgsm_decrypt): Bail out after an decryption error.
205
206         * server.c (reset_notify): Close input and output FDs.
207         (cmd_encrypt,cmd_decrypt,cmd_verify,cmd_sign.cmd_import)
208         (cmd_genkey): Close the FDs and release the recipient list even in
209         the error case.
210
211 2002-02-01  Marcus Brinkmann  <marcus@g10code.de>
212
213         * sign.c (gpgsm_sign): Do not release certificate twice.
214
215 2002-01-29  Werner Koch  <wk@gnupg.org>
216
217         * call-agent.c (gpgsm_agent_havekey): New.
218         * keylist.c (list_cert_colon): New arg HAVE_SECRET, print "crs"
219         when we know that the secret key is available.
220         (gpgsm_list_keys): New arg MODE, check whether a secret key is
221         available.  Changed all callers.
222         * gpgsm.c (main): New command --list-secret-keys.
223         * server.c (cmd_listsecretkeys): New.
224         (cmd_listkeys): Return secret keys with "crs" record.
225
226 2002-01-28  Werner Koch  <wk@gnupg.org>
227
228         * certreqgen.c (create_request): Store the email address in the req.
229
230 2002-01-25  Werner Koch  <wk@gnupg.org>
231
232         * gpgsm.c (main): Disable core dumps.
233
234         * sign.c (add_certificate_list): New.
235         (gpgsm_sign): Add the certificates to the CMS object.
236         * certpath.c (gpgsm_walk_cert_chain): New.
237         * gpgsm.h (server_control_s): Add included_certs.
238         * gpgsm.c: Add option --include-certs.
239         (gpgsm_init_default_ctrl): New.
240         (main): Call it.
241         * server.c (gpgsm_server): Ditto.
242         (option_handler): Support --include-certs.
243
244 2002-01-23  Werner Koch  <wk@gnupg.org>
245
246         * certpath.c (gpgsm_validate_path): Print the DN of a missing issuer.
247         * certdump.c (gpgsm_dump_string): New.
248         (print_dn): Replaced by above.
249
250 2002-01-22  Werner Koch  <wk@gnupg.org>
251
252         * certpath.c (unknown_criticals): New.
253         (allowed_ca): New.
254         (gpgsm_validate_path): Check validity, CA attribute, path length
255         and unknown critical extensions.
256
257 2002-01-21  Werner Koch  <wk@gnupg.org>
258
259         * gpgsm.c: Add option --enable-crl-checks.
260
261         * call-agent.c (start_agent): Implemented socket based access.
262         * call-dirmngr.c (start_dirmngr): Ditto.
263
264 2002-01-20  Werner Koch  <wk@gnupg.org>
265
266         * server.c (option_handler): New.
267         (gpgsm_server): Register it with assuan.
268
269 2002-01-19  Werner Koch  <wk@gnupg.org>
270
271         * server.c (gpgsm_server): Use assuan_deinit_server and setup
272         assuan logging if enabled.
273         * call-agent.c (inq_ciphertext_cb): Don't show the session key in
274         an Assuan log file.
275
276         * gpgsm.c (my_strusage): Take bugreport address from configure.ac
277
278 2002-01-15  Werner Koch  <wk@gnupg.org>
279
280         * import.c (gpgsm_import): Just do a basic cert check before
281         storing it.
282         * certpath.c (gpgsm_basic_cert_check): New.
283
284         * keydb.c (keydb_store_cert): New.
285         * import.c (store_cert): Removed and change all caller to use
286         the new function.
287         * verify.c (store_cert): Ditto.
288
289         * certlist.c (gpgsm_add_to_certlist): Validate the path
290
291         * certpath.c (gpgsm_validate_path): Check the trust list.
292         * call-agent.c (gpgsm_agent_istrusted): New.
293
294 2002-01-14  Werner Koch  <wk@gnupg.org>
295
296         * call-dirmngr.c (inq_certificate): Changed for new interface semantic.
297         * certlist.c (gpgsm_find_cert): New.
298
299 2002-01-13  Werner Koch  <wk@gnupg.org>
300
301         * fingerprint.c (gpgsm_get_certid): Print the serial and not the
302         hash after the dot.
303
304 2002-01-11  Werner Koch  <wk@gnupg.org>
305
306         * call-dirmngr.c: New.
307         * certpath.c (gpgsm_validate_path): Check the CRL here.
308         * fingerprint.c (gpgsm_get_certid): New.
309         * gpgsm.c: New options --dirmngr-program and --disable-crl-checks.
310
311 2002-01-10  Werner Koch  <wk@gnupg.org>
312
313         * base64.c (gpgsm_create_writer): Allow to set the object name
314
315 2002-01-08  Werner Koch  <wk@gnupg.org>
316
317         * keydb.c (spacep): Removed because it is now in util.c
318
319         * server.c (cmd_genkey): New.
320         * certreqgen.c: New.  The parameter handling code has been taken
321         from gnupg/g10/keygen.c version 1.0.6.
322         * call-agent.c (gpgsm_agent_genkey): New.
323
324 2002-01-02  Werner Koch  <wk@gnupg.org>
325
326         * server.c (rc_to_assuan_status): Removed and changed all callers
327         to use map_to_assuan_status.
328
329 2001-12-20  Werner Koch  <wk@gnupg.org>
330
331         * verify.c (gpgsm_verify): Implemented non-detached signature
332         verification.  Add OUT_FP arg, initialize a writer and changed all
333         callers.
334         * server.c (cmd_verify): Pass an out_fp if one has been set.
335
336         * base64.c (base64_reader_cb): Try to detect an S/MIME body part.
337
338         * certdump.c (print_sexp): Renamed to gpgsm_dump_serial, made
339         global.
340         (print_time): Renamed to gpgsm_dump_time, made global.
341         (gpgsm_dump_serial): Take a real S-Expression as argument and
342         print the first item.
343         * keylist.c (list_cert_colon): Ditto.
344         * keydb.c (keydb_search_issuer_sn): Ditto.
345         * decrypt.c (print_integer_sexp): Removed and made callers 
346         use gpgsm_dump_serial.
347         * verify.c (print_time): Removed, made callers use gpgsm_dump_time.
348         
349 2001-12-19  Marcus Brinkmann  <marcus@g10code.de>
350
351         * call-agent.c (start_agent): Add new argument to assuan_pipe_connect.
352
353 2001-12-18  Werner Koch  <wk@gnupg.org>
354
355         * verify.c (print_integer_sexp): Renamed from print_integer and
356         print the serial number according to the S-Exp rules.
357         * decrypt.c (print_integer_sexp): Ditto.
358
359 2001-12-17  Werner Koch  <wk@gnupg.org>
360
361         * keylist.c (list_cert_colon): Changed for new return value of
362         get_serial.
363         * keydb.c (keydb_search_issuer_sn): Ditto.
364         * certcheck.c (gpgsm_check_cert_sig): Likewise for other S-Exp
365         returingin functions.
366         * fingerprint.c (gpgsm_get_keygrip): Ditto.
367         * encrypt.c (encrypt_dek): Ditto
368         * certcheck.c (gpgsm_check_cms_signature): Ditto
369         * decrypt.c (prepare_decryption): Ditto.
370         * call-agent.c (gpgsm_agent_pkdecrypt): Removed arg ciphertextlen,
371         use KsbaSexp type and calculate the length.
372
373         * certdump.c (print_sexp): Remaned from print_integer, changed caller.
374
375         * Makefile.am: Use the LIBGCRYPT and LIBKSBA variables.
376
377         * fingerprint.c (gpgsm_get_keygrip): Use the new
378         gcry_pk_get_keygrip to calculate the grip - note the algorithm and
379         therefore the grip values changed.
380
381 2001-12-15  Werner Koch  <wk@gnupg.org>
382
383         * certcheck.c (gpgsm_check_cms_signature): Removed the faked-key
384         kludge.
385         (gpgsm_create_cms_signature): Removed the commented fake key
386         code.  This makes the function pretty simple.
387
388         * gpgsm.c (main): Renamed the default key database to "keyring.kbx".
389
390         * decrypt.c (gpgsm_decrypt): Write STATUS_DECRYPTION_*.
391         * sign.c (gpgsm_sign): Write a STATUS_SIG_CREATED.
392
393 2001-12-14  Werner Koch  <wk@gnupg.org>
394
395         * keylist.c (list_cert_colon): Kludge to show an email address
396         encoded in the subject's DN.
397
398         * verify.c (gpgsm_verify): Add hash debug helpers
399         * sign.c (gpgsm_sign): Ditto.
400
401         * base64.c (base64_reader_cb): Reset the linelen when we need to
402         skip the line and adjusted test; I somehow forgot about DeMorgan.
403
404         * server.c (cmd_encrypt,cmd_decrypt,cmd_sign,cmd_verify) 
405         (cmd_import): Close the FDs on success.
406         (close_message_fd): New.
407         (input_notify): Setting autodetect_encoding to 0 after initializing
408         it to 0 is pretty pointless.  Easy to fix.
409
410         * gpgsm.c (main): New option --debug-wait n, so that it is
411         possible to attach gdb when used in server mode.
412
413         * sign.c (get_default_signer): Use keydb_classify_name here.
414
415 2001-12-14  Marcus Brinkmann  <marcus@g10code.de>
416
417         * call-agent.c (LINELENGTH): Removed.
418         (gpgsm_agent_pksign): Use ASSUAN_LINELENGTH, not LINELENGTH.
419         (gpgsm_agent_pkdecrypt): Likewise.
420
421 2001-12-13  Werner Koch  <wk@gnupg.org>
422
423         * keylist.c (list_cert_colon): Print alternative names of subject
424         and a few other values.
425
426 2001-12-12  Werner Koch  <wk@gnupg.org>
427
428         * gpgsm.c (main): New options --assume-{armor,base64,binary}. 
429         * base64.c (base64_reader_cb): Fixed non-autodetection mode.
430
431 2001-12-04  Werner Koch  <wk@gnupg.org>
432
433         * call-agent.c (read_from_agent): Check for inquire responses.
434         (request_reply): Handle them using a new callback arg, changed all
435         callers.
436         (gpgsm_agent_pkdecrypt): New.
437
438 2001-11-27  Werner Koch  <wk@gnupg.org>
439
440         * base64.c: New.  Changed all other functions to use this instead
441         of direct creation of ksba_reader/writer.
442         * gpgsm.c (main): Set ctrl.auto_encoding unless --no-armor is used.
443
444 2001-11-26  Werner Koch  <wk@gnupg.org>
445
446         * gpgsm.c: New option --agent-program
447         * call-agent.c (start_agent): Allow to override the default path
448         to the agent.
449
450         * keydb.c (keydb_add_resource): Create keybox
451
452         * keylist.c (gpgsm_list_keys): Fixed non-server keylisting.
453
454         * server.c (rc_to_assuan_status): New.  Use it for all commands.
455
456         
457  Copyright 2001, 2002 Free Software Foundation, Inc.
458
459  This file is free software; as a special exception the author gives
460  unlimited permission to copy and/or distribute it, with or without
461  modifications, as long as this notice is preserved.
462
463  This file is distributed in the hope that it will be useful, but
464  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
465  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.