Add a manual section for card-stored certificates.
[scute.git] / TODO
1 # Emacs, please get me into -*- org -*- mode.
2
3 * Manual:
4 ** Some FIXME's which need attention.
5 ** The pictures in info output do not exist.
6
7 * Bugs or misfeatures:
8 ** Mozilla presents the other certificates in "Websites".  Only the
9    first one is presented in the certicate manager under "Personal".
10 ** Mozilla does not unload the right security token!!!
11 ** Duplicate certificates should be removed from the object list (this
12    can occur when including all certificate chains).
13 ** Windows: Find thread-safe replacement for localtime_r and timegm.
14
15 * Missing features:
16 ** Add canonical gnupg logging module.
17 ** Mozilla ignores the CKA_TRUSTED attribute to certificates, so
18    exporting the information from GPGSM (ISTRUSTED) will not be
19    useful.  It's unclear if this can be improved in a meaningful way.
20
21 * Could be done better:
22 ** Search for grip/fingerprint directly instead iterating over all
23    keys with GPGSM?
24
25 * Standard ambiguities, or non-conformance in the applications:
26 ** If the token is removed, the current sessions are closed.  If then
27    a new token is inserted, and the application calls C_OpenSession, a
28    previously used session handle may be reused.  It is not clear what
29    behaviour the standard specifies in this case.
30
31 ** Mozilla NSS has this comment (and relies on the assumption):
32   "check to see if the module has added new slots. PKCS 11 v2.20
33   allows for modules to add new slots, but never remove them. Slots
34   cannot be added between a call to C_GetSlotLlist(Flag, NULL,
35   &count) and the subsequent C_GetSlotList(flag, &data, &count) so
36   that the array doesn't accidently grow on the caller. It is
37   permissible for the slots to increase between successive calls with
38   NULL to get the size."
39
40   My reading of the spec is quite different.  I do not think it does
41   say that the slot list can not shrink, at least it does not say
42   explicitely.  Maybe it is a tacit assumption, because the interface
43   is obviously broken if the list shrinks.  However, the spec says:
44
45   "All slots which C_GetSlotList reports must be able to be queried as
46   valid slots by C_GetSlotInfo. Furthermore, the set of slots
47   accessible through a Cryptoki library is checked at the time that
48   C_GetSlotList, for list length prediction (NULL pSlotList argument)
49   is called. If an application calls C_GetSlotList with a non-NULL
50   pSlotList, and then the user adds or removes a hardware device, the
51   changed slot list will only be visible and effective if
52   C_GetSlotList is called again with NULL. Even if C_GetSlotList is
53   successfully called this way, it may or may not be the case that
54   the changed slot list will be successfully recognized depending on
55   the library implementation. On some platforms, or earlier PKCS11
56   compliant libraries, it may be necessary to successfully call
57   C_Initialize or to restart the entire system."
58
59   Note the phrase "user adds or removes a hardware device" and "the
60   changed slot list".  This implies that removal of a hardware device
61   could lead to a shrinking slot list.  If this is true, then the note
62   in the NSS code is incorrect, and the NSS code will break if a
63   driver shrinks the slot list.
64
65   However, as long as the assumption is made, we have to comply.
66
67 * Website:
68 ** Border picture width constant hard-coded in CSS.
69 * Copyright notice
70 Copyright 2006 g10 Code GmbH
71
72 This file is free software; as a special exception the author gives
73 unlimited permission to copy and/or distribute it, with or without
74 modifications, as long as this notice is preserved.
75
76 This file is distributed in the hope that it will be useful, but
77 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
78 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
79 PURPOSE.