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