~vcs-imports-ii/gpgme/master

1264 by Werner Koch
Add new functions to import and export keys specified by gpgme_key_t.
1
Hey Emacs, this is -*- org -*- mode!
265 by Marcus Brinkmann
doc/
2
1312 by Marcus Brinkmann
2009-11-10 Marcus Brinkmann <marcus@g10code.de>
3
* Document all the new stuff.
4
* Fix the remaining UI Server problems:
5
** VERIFY --silent support.
6
** ENCRYPT/DECRYPT/VERIFY/SIGN reset the engine, shouldn't be done with UISERVER?
7
1250 by Marcus Brinkmann
assuan/
8
* IMPORTANT
9
** When using descriptor passing, we need to set the fd to blocking before
10
   issueing simple commands, because we are mixing synchronous
11
   commands into potentially asynchronous operations.
12
** Might want to implement nonblock for w32 native backend!  Right now,
13
   we block reading the next line with assuan.
14
756 by Marcus Brinkmann
Add item about result structures.
15
* Before release:
817 by Werner Koch
* acinclude.m4: Add AM_PATH_GPG_ERROR.
16
** Some gpg tests fail with gpg 1.3.4-cvs (gpg/t-keylist-sig)
828 by Marcus Brinkmann
Add note about key signature notations.
17
   The test is currently disabled there and in gpg/t-import.
1022 by Marcus Brinkmann
Update some items.
18
** When gpg supports it, write binary subpackets directly,
19
   and parse SUBPACKET status lines.
1028 by Werner Koch
Add a test for expired subkeys
20
225 by Marcus Brinkmann
New items about various things.
21
* ABI's to break:
1296 by Marcus Brinkmann
Some additions.
22
** Old opassuan interface.
1269 by Marcus Brinkmann
2009-06-18 Marcus Brinkmann <marcus@g10code.de>
23
** Implementation: Remove support for old style error codes in
24
   conversion.c::_gpgme_map_gnupg_error.
991 by Marcus Brinkmann
2005-08-26 Marcus Brinkmann <marcus@g10code.de>
25
** gpgme_edit_cb_t: Add "processed" return argument
26
   (see edit.c::command_handler).
762 by Marcus Brinkmann
Update information about todo items.
27
** I/O and User Data could be made extensible.  But this can be done
28
   without breaking the ABI hopefully.
1269 by Marcus Brinkmann
2009-06-18 Marcus Brinkmann <marcus@g10code.de>
29
** All enums should be replaced by ints and simple macros for
30
   maximum compatibility.
654 by Marcus Brinkmann
2003-04-25 Marcus Brinkmann <marcus@g10code.de>
31
** Compatibility interfaces that can be removed in future versions:
32
*** gpgme_data_new_from_filepart
33
*** gpgme_data_new_from_file
34
*** gpgme_data_new_with_read_cb
35
*** gpgme_data_rewind
677 by Marcus Brinkmann
doc/
36
*** gpgme_op_import_ext
37
*** gpgme_get_sig_key
38
*** gpgme_get_sig_ulong_attr
39
*** gpgme_get_sig_string_attr
40
*** GPGME_SIG_STAT_*
41
*** gpgme_get_sig_status
682 by Marcus Brinkmann
Add items.
42
*** gpgme_trust_item_release
43
*** gpgme_trust_item_get_string_attr
44
*** gpgme_trust_item_get_ulong_attr
703 by Marcus Brinkmann
2003-05-18 Marcus Brinkmann <marcus@g10code.de>
45
*** gpgme_attr_t
46
*** All Gpgme* typedefs.
225 by Marcus Brinkmann
New items about various things.
47
946 by Marcus Brinkmann
Update.
48
405 by Marcus Brinkmann
Updates.
49
* Thread support:
775 by Marcus Brinkmann
2003-08-18 Marcus Brinkmann <marcus@g10code.de>
50
** When GNU Pth supports sendmsg/recvmsg, wrap them properly.
814 by Werner Koch
(parse_timestamp): Detect ISO 8601 timestamps and try
51
** Without timegm (3) support our ISO time parser is not thread safe.
817 by Werner Koch
* acinclude.m4: Add AM_PATH_GPG_ERROR.
52
   There is a configure time warning, though.
405 by Marcus Brinkmann
Updates.
53
507 by Werner Koch
Added some feature requests.
54
* New features:
1197 by Marcus Brinkmann
doc/
55
** Flow control for data objects.
56
   Currently, gpgme_data_t objects are assumed to be blocking.  To
57
   break this assumption, we need either (A) a way for an user I/O
58
   callback to store the current operation in a continuation that can
59
   be resumed later.  While the continuation exists, file descriptors
60
   associated with this operation must be removed from their
61
   respective event loop.  or (B) a way for gpgme data objects to be
62
   associated with a waitable object, that can be registered with the
63
   user event loop.  Neither is particularly simple.
1006 by Marcus Brinkmann
doc/
64
** Extended notation support.  When gpg supports arbitrary binary
65
   notation data, provide a user interface for that.
507 by Werner Koch
Added some feature requests.
66
** notification system
622 by Marcus Brinkmann
Add some items, remove obsolete item about pipemode.
67
   We need a simple notification system, probably a simple callback
507 by Werner Koch
Added some feature requests.
68
   with a string and some optional arguments.  This is for example
814 by Werner Koch
(parse_timestamp): Detect ISO 8601 timestamps and try
69
   required to notify an application of a changed smartcard, The
507 by Werner Koch
Added some feature requests.
70
   application can then do whatever is required.  There are other
71
   usages too.  This notfication system should be independent of any
72
   contextes of course.
1264 by Werner Koch
Add new functions to import and export keys specified by gpgme_key_t.
73
74
   Not sure whether this is still required.  GPGME_PROTOCOL_ASSUAN is
75
   sufficient for this.
76
507 by Werner Koch
Added some feature requests.
77
** --learn-code support
78
   This might be integrated with import. we still need to work out how
1264 by Werner Koch
Add new functions to import and export keys specified by gpgme_key_t.
79
   to learn a card when gpg and gpgsm have support for smartcards.  In
80
   GPA we currently invoke gpg directly.
81
694 by Marcus Brinkmann
Update items.
82
** Might need a stat() for data objects and use it for length param to gpg.
700 by Marcus Brinkmann
Add item.
83
** Implement support for photo ids.
1013 by Marcus Brinkmann
Update some items.
84
** Allow selection of subkeys
85
** Allow to return time stamps in ISO format
86
  This allows us to handle years later than 2037 properly.  With the
87
  time_t interface they are all mapped to 2037-12-31
700 by Marcus Brinkmann
Add item.
88
** New features requested by our dear users, but rejected or left for
89
   later consideration:
1013 by Marcus Brinkmann
Update some items.
90
*** Allow to export secret keys.
91
    Rejected because this is conceptually flawed.  Secret keys on a
92
    smart card can not be exported, for example.
1264 by Werner Koch
Add new functions to import and export keys specified by gpgme_key_t.
93
    May eventually e supproted with a keywrapping system.
700 by Marcus Brinkmann
Add item.
94
*** Selecting the key ring, setting the version or comment in output.
95
    Rejected because the naive implementation is engine specific, the
96
    configuration is part of the engine's configuration or readily
97
    worked around in a different way
98
*** Selecting the symmetric cipher.
99
*** Exchanging keys with key servers.
894 by Marcus Brinkmann
Add item about gpgme.m4.
100
225 by Marcus Brinkmann
New items about various things.
101
* Documentation
694 by Marcus Brinkmann
Update items.
102
** Document validity and trust issues.
1021 by Marcus Brinkmann
Update some items.
103
** In gpgme.texi: Register callbacks under the right letter in the index.
225 by Marcus Brinkmann
New items about various things.
104
105
* Engines
668 by Marcus Brinkmann
Add some items to do.
106
** Do not create/destroy engines, but create engine and then reset it.
107
   Internally the reset operation still spawns a new engine process,
108
   but this can be replaced with a reset later.  Also, be very sure to
700 by Marcus Brinkmann
Add item.
109
   release everything properly at a reset and at an error.  Think hard
110
   about where to guarantee what (ie, what happens if start fails, are
111
   the fds unregistered immediately - i think so?)
1092 by Marcus Brinkmann
2006-12-17 Marcus Brinkmann <marcus@g10code.de>
112
   Note that we need support in gpgsm to set include-certs to default
1296 by Marcus Brinkmann
Some additions.
113
   as RESET does not reset it, also for no_encrypt_to and probably
114
   other options.
1269 by Marcus Brinkmann
2009-06-18 Marcus Brinkmann <marcus@g10code.de>
115
** Optimize the case where a data object has an underlying fd we can pass
791 by Marcus Brinkmann
Update release list.
116
   directly to the engine.  This will be automatic with socket I/O and
117
   descriptor passing.
225 by Marcus Brinkmann
New items about various things.
118
** Move code common to all engines up from gpg to engine.
119
** engine operations can return General Error on unknown protocol
120
   (it's an internal error, as select_protocol checks already).
294 by Marcus Brinkmann
doc/
121
** When server mode is implemented properly, more care has to be taken to
694 by Marcus Brinkmann
Update items.
122
   release all resources on error (for example to free assuan_cmd).
1264 by Werner Koch
Add new functions to import and export keys specified by gpgme_key_t.
123
** op_import_keys and op_export_keys have a limit ion the number of keys.
124
   This is because we pass them in gpg via the command line and gpgsm
125
   via an assuan control line.  We should pipe them instead and maybe
126
   change gpg/gpgsm to not put them in memory.
127
1067 by Marcus Brinkmann
2006-07-06 Marcus Brinkmann <marcus@g10code.de>
128
* GPG breakage:
129
** gpg 1.4.2 lacks error reporting if sign/encrypt with revoked key.
130
** gpg 1.4.2 does crappy error reporting (namely none at all) when
131
   smart card is missing for sign operation:
132
    [GNUPG:] CARDCTRL 4
133
    gpg: selecting openpgp failed: ec=6.110
134
    gpg: signing failed: general error
135
    [GNUPG:] BEGIN_ENCRYPTION 2 10
136
    gpg: test: sign+encrypt failed: general error
137
** Without agent and with wrong passphrase, gpg 1.4.2 enters into an
138
   infinite loop.
1095 by Werner Koch
/
139
** Use correct argv[0]
140
   In rungpg.c:build_argv we use
141
      argv[argc] = strdup ("gpg"); /* argv[0] */
142
   This should be changed to take the real file name used in account.
143
105 by Marcus Brinkmann
add some more items
144
237 by Marcus Brinkmann
Some more items.
145
* Operations
1067 by Marcus Brinkmann
2006-07-06 Marcus Brinkmann <marcus@g10code.de>
146
** Include cert values -2, -1, 0 and 1 should be defined as macros.
756 by Marcus Brinkmann
Add item about result structures.
147
** If an operation failed, make sure that the result functions don't return
148
   corrupt partial information. !!!
775 by Marcus Brinkmann
2003-08-18 Marcus Brinkmann <marcus@g10code.de>
149
   NOTE: The EOF status handler is not called in this case !!!
780 by Marcus Brinkmann
Document some more problems.
150
** Verify must not fail on NODATA premature if auto-key-retrieval failed.
151
   It should not fail silently if it knows there is an error. !!!
152
** All operations: Better error reporting. !!
565 by Marcus Brinkmann
gpgme/
153
** Export status handler need much more work. !!!
258 by Marcus Brinkmann
doc/
154
** Import should return a useful error when one happened.
668 by Marcus Brinkmann
Add some items to do.
155
*** Import does not take notice of NODATA status report.
780 by Marcus Brinkmann
Document some more problems.
156
*** When GPGSM does issue IMPORT_OK status reports, make sure to check for
157
    them in tests/gpgs m/t-import.c.
762 by Marcus Brinkmann
Update information about todo items.
158
** Verify can include info about version/algo/class, but currently
159
   this is only available for gpg, not gpgsm.
160
** Return ENC_TO output in verify result.  Again, this is not available
161
   for gpgsm.
258 by Marcus Brinkmann
doc/
162
** Genkey should return something more useful than General_Error.
746 by Marcus Brinkmann
Update.
163
** If possible, use --file-setsize to set the file size for proper progress
762 by Marcus Brinkmann
Update information about todo items.
164
   callback handling.  Write data interface for file size.
622 by Marcus Brinkmann
Add some items, remove obsolete item about pipemode.
165
** Optimize the file descriptor list, so the number of open fds is
694 by Marcus Brinkmann
Update items.
166
   always known easily.
700 by Marcus Brinkmann
Add item.
167
** Encryption: It should be verified that the behaviour for partially untrusted
168
   recipients is correct.
699 by Marcus Brinkmann
Add items.
169
** When GPG issues INV_something for invalid signers, catch them.
268 by Marcus Brinkmann
Update some items.
170
215 by Marcus Brinkmann
2001-12-21 Marcus Brinkmann <marcus@g10code.de>
171
* Error Values
384 by Marcus Brinkmann
2002-05-09 Marcus Brinkmann <marcus@g10code.de>
172
** Map ASSUAN/GpgSM ERR error values in a better way than is done now. !!
731 by Marcus Brinkmann
doc/
173
** Some error values should identify the source more correctly (mostly error
174
   values derived from status messages).
1201 by Werner Koch
Support --locate-keys feature of gpg.
175
** In rungpg.c we need to check the version of the engine
176
   This requires a way to get the cached version number from the
177
   engine layer.
178
215 by Marcus Brinkmann
2001-12-21 Marcus Brinkmann <marcus@g10code.de>
179
81 by Marcus Brinkmann
2001-10-22 Marcus Brinkmann <marcus@g10code.de>
180
* Tests
302 by Marcus Brinkmann
doc/
181
** Write a fake gpg-agent so that we can supply known passphrases to
182
   gpgsm and setup the configuration files to use the agent.  Without
183
   this we are testing a currently running gpg-agent which is not a
384 by Marcus Brinkmann
2002-05-09 Marcus Brinkmann <marcus@g10code.de>
184
   clever idea. !
81 by Marcus Brinkmann
2001-10-22 Marcus Brinkmann <marcus@g10code.de>
185
** t-data
82 by Marcus Brinkmann
FIx last change (grr, didn't want to check in the version I checked in).
186
*** Test gpgme_data_release_and_get_mem.
694 by Marcus Brinkmann
Update items.
187
*** Test gpgme_data_seek for invalid types.
859 by Werner Koch
* gpgme.h: Add GPGME_STATUS_NEWSIG.
188
** t-keylist
189
   Write a test for ext_keylist.
1022 by Marcus Brinkmann
Update some items.
190
** Test reading key signatures.
81 by Marcus Brinkmann
2001-10-22 Marcus Brinkmann <marcus@g10code.de>
191
378 by Marcus Brinkmann
Add some items and comments.
192
* Debug
1132 by Marcus Brinkmann
Add item for tracepoints.
193
** Tracepoints should be added at: Every public interface enter/leave,
194
   before and in every callback, at major decision points, at every
195
   internal data point which might easily be observed by the outside
196
   (system handles).  We also trace handles and I/O support threads in
197
   the w32 implementation because that's fragile code.
198
   Files left to do:
199
   data-fd.c data-mem.c data-stream.c data-user.c debug.c rungpg.c
200
   engine.c engine-gpgsm.c funopen.c w32-glib-io.c wait.c
201
   wait-global.c wait-private.c wait-user.c op-support.c decrypt.c
202
   decrypt-verify.c delete.c edit.c encrypt.c encrypt-sign.c export.c
203
   genkey.c import.c key.c keylist.c passphrase.c progress.c signers.c
204
   sig-notation.c trust-item.c trustlist.c verify.c
378 by Marcus Brinkmann
Add some items and comments.
205
** Handle malloc and vasprintf errors.  But decide first if they should be
384 by Marcus Brinkmann
2002-05-09 Marcus Brinkmann <marcus@g10code.de>
206
   ignored (and logged with 255?!), or really be assertions. !
378 by Marcus Brinkmann
Add some items and comments.
207
199 by Marcus Brinkmann
New item about make clean.
208
* Build suite
209
** Make sure everything is cleaned correctly (esp. test area).
915 by Marcus Brinkmann
Add entry about AC_CONFIG_MACRO_DIR.
210
** Enable AC_CONFIG_MACRO_DIR and bump up autoconf version requirement.
211
   (To fix "./autogen.sh; ./configure --enable-maintainer-mode; touch
959 by Marcus Brinkmann
Remove some obsolete entries.
212
   configure.ac; make").  Currently worked around with ACLOCAL_AMFLAGS???
837 by Werner Koch
* gpgme.texi (Key Listing Mode): Doc KEYLIST_MODE_VALIDATE.
213
214
* Error checking 
215
** engine-gpgsm, with-validation
959 by Marcus Brinkmann
Remove some obsolete entries.
216
   Add error checking some time after releasing a new gpgsm.
949 by Marcus Brinkmann
2004-12-07 Marcus Brinkmann <marcus@g10code.de>
217
218
1013 by Marcus Brinkmann
Update some items.
219
Copyright 2004, 2005 g10 Code GmbH
949 by Marcus Brinkmann
2004-12-07 Marcus Brinkmann <marcus@g10code.de>
220
221
This file is free software; as a special exception the author gives
222
unlimited permission to copy and/or distribute it, with or without
223
modifications, as long as this notice is preserved.
224
225
This file is distributed in the hope that it will be useful, but
226
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
227
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
228
PURPOSE.