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