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