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