diff options
| -rw-r--r-- | TODO | 152 | 
1 files changed, 80 insertions, 72 deletions
| @@ -158,25 +158,25 @@ Hey Emacs, this is -*- org -*- mode!  * Thread support:    :PROPERTIES: -  :CUSTOM_ID:  +  :CUSTOM_ID: threads    :END:  ** When GNU Pth supports sendmsg/recvmsg, wrap them properly.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: wrap-oth     :END:  ** Without timegm (3) support our ISO time parser is not thread safe.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: time-threads     :END:     There is a configure time warning, though.  * New features:    :PROPERTIES: -  :CUSTOM_ID:  +  :CUSTOM_ID: new-features    :END:  ** Flow control for data objects.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: flow-control-is-not-a-euphemism-for-an-s-bend     :END:     Currently, gpgme_data_t objects are assumed to be blocking.  To     break this assumption, we need either (A) a way for an user I/O @@ -188,12 +188,12 @@ Hey Emacs, this is -*- org -*- mode!     user event loop.  Neither is particularly simple.  ** Extended notation support.  When gpg supports arbitrary binary     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: extended-notation     :END:     notation data, provide a user interface for that.  ** notification system     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: notification-system     :END:     We need a simple notification system, probably a simple callback     with a string and some optional arguments.  This is for example @@ -207,7 +207,7 @@ Hey Emacs, this is -*- org -*- mode!  ** --learn-code support     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: learn-code     :END:     This might be integrated with import. we still need to work out how     to learn a card when gpg and gpgsm have support for smartcards.  In @@ -215,72 +215,72 @@ Hey Emacs, this is -*- org -*- mode!  ** Might need a stat() for data objects and use it for length param to gpg.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: stat-data     :END:  ** Implement support for photo ids.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: photo-id     :END:  ** Allow selection of subkeys     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: subkey-selection     :END:  ** Allow to return time stamps in ISO format     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: iso-format-datetime     :END:    This allows us to handle years later than 2037 properly.  With the    time_t interface they are all mapped to 2037-12-31  ** New features requested by our dear users, but rejected or left for     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: feature-requests     :END:     later consideration:  *** Allow to export secret keys.      :PROPERTIES: -    :CUSTOM_ID:  +    :CUSTOM_ID: export-secret-keys      :END:      Rejected because this is conceptually flawed.  Secret keys on a      smart card can not be exported, for example.      May eventually e supproted with a keywrapping system.  *** Selecting the key ring, setting the version or comment in output.      :PROPERTIES: -    :CUSTOM_ID:  +    :CUSTOM_ID: select-keyring-version      :END:      Rejected because the naive implementation is engine specific, the      configuration is part of the engine's configuration or readily      worked around in a different way  *** Selecting the symmetric cipher.      :PROPERTIES: -    :CUSTOM_ID:  +    :CUSTOM_ID: symmetric-cipher-selection      :END:  *** Exchanging keys with key servers.      :PROPERTIES: -    :CUSTOM_ID:  +    :CUSTOM_ID: key-server-exchange      :END:  * Documentation    :PROPERTIES: -  :CUSTOM_ID:  +  :CUSTOM_ID: documentation    :END: -** Document validity and trust issues. +** TODO Document validity and trust issues.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: valid-trust-issues     :END:  ** In gpgme.texi: Register callbacks under the right letter in the index.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: gpgme-texi     :END:  * Engines    :PROPERTIES: -  :CUSTOM_ID:  +  :CUSTOM_ID: engines    :END:  ** Do not create/destroy engines, but create engine and then reset it.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: reset-engine-is-not-quite-just-ignition     :END:     Internally the reset operation still spawns a new engine process,     but this can be replaced with a reset later.  Also, be very sure to @@ -292,27 +292,27 @@ Hey Emacs, this is -*- org -*- mode!     other options.  ** Optimize the case where a data object has an underlying fd we can pass     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: optimus-data-cousin-of-optimus-prime     :END:     directly to the engine.  This will be automatic with socket I/O and     descriptor passing.  ** Move code common to all engines up from gpg to engine.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: move-code-common-to-engines-out-of-gpg     :END:  ** engine operations can return General Error on unknown protocol     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: general-error-looking-to-be-court-martialled     :END:     (it's an internal error, as select_protocol checks already).  ** When server mode is implemented properly, more care has to be taken to     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: server-mode     :END:     release all resources on error (for example to free assuan_cmd). -** op_import_keys and op_export_keys have a limit ion the number of keys. +** op_import_keys and op_export_keys have a limit in the number of keys.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: import-export-problems     :END:     This is because we pass them in gpg via the command line and gpgsm     via an assuan control line.  We should pipe them instead and maybe @@ -321,15 +321,15 @@ Hey Emacs, this is -*- org -*- mode!  * GPG breakage:    :PROPERTIES: -  :CUSTOM_ID:  +  :CUSTOM_ID: gpg-breakage    :END:  ** gpg 1.4.2 lacks error reporting if sign/encrypt with revoked key.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: gpg-classic-lacks-stuff     :END:  ** gpg 1.4.2 does crappy error reporting (namely none at all) when     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: gpg-classic-problems-but-do-we-care     :END:     smart card is missing for sign operation:      [GNUPG:] CARDCTRL 4 @@ -339,12 +339,12 @@ Hey Emacs, this is -*- org -*- mode!      gpg: test: sign+encrypt failed: general error  ** Without agent and with wrong passphrase, gpg 1.4.2 enters into an     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: recursive-gpg-classic     :END:     infinite loop.  ** Use correct argv[0]     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: correct-argv     :END:     In rungpg.c:build_argv we use        argv[argc] = strdup ("gpg"); /* argv[0] */ @@ -353,95 +353,95 @@ Hey Emacs, this is -*- org -*- mode!  * Operations    :PROPERTIES: -  :CUSTOM_ID:  +  :CUSTOM_ID: operations-are-not-surgical    :END:  ** Include cert values -2, -1, 0 and 1 should be defined as macros.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: certified-macros     :END:  ** If an operation failed, make sure that the result functions don't return     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: operation-failure     :END:     corrupt partial information. !!!     NOTE: The EOF status handler is not called in this case !!!  ** Verify must not fail on NODATA premature if auto-key-retrieval failed.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: autobot-key-retrieval     :END:     It should not fail silently if it knows there is an error. !!!  ** All operations: Better error reporting. !!     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: better-reporting-not-like-fox-news     :END:  ** Export status handler need much more work. !!!     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: export-status-handler     :END:  ** Import should return a useful error when one happened.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: import-useful-stuff-even-wrong-stuff     :END:  *** Import does not take notice of NODATA status report.      :PROPERTIES: -    :CUSTOM_ID:  +    :CUSTOM_ID: import-no-data      :END:  *** When GPGSM does issue IMPORT_OK status reports, make sure to check for      :PROPERTIES: -    :CUSTOM_ID:  +    :CUSTOM_ID: gpgsm-import-ok      :END:      them in tests/gpgs m/t-import.c.  ** Verify can include info about version/algo/class, but currently     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: verify-class     :END:     this is only available for gpg, not gpgsm.  ** Return ENC_TO output in verify result.  Again, this is not available     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: return-to-enc     :END:     for gpgsm.  ** Genkey should return something more useful than General_Error.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: general-key-assumed-command-from-general-error     :END:  ** If possible, use --file-setsize to set the file size for proper progress     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: file-setsize     :END:     callback handling.  Write data interface for file size.  ** Optimize the file descriptor list, so the number of open fds is     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: optimus-descriptus-younger-brother-of-optimus-prime     :END:     always known easily.  ** Encryption: It should be verified that the behaviour for partially untrusted     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: only-mostly-dead-means-partially-alive     :END:     recipients is correct.  ** When GPG issues INV_something for invalid signers, catch them.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: invalid-sig     :END:  * Error Values    :PROPERTIES: -  :CUSTOM_ID:  +  :CUSTOM_ID: error-value    :END:  ** Map ASSUAN/GpgSM ERR error values in a better way than is done now. !!     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: map-ass-error     :END:  ** Some error values should identify the source more correctly (mostly error     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: source-errors     :END:     values derived from status messages).  ** In rungpg.c we need to check the version of the engine     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: rungpg-c-engine-ver     :END:     This requires a way to get the cached version number from the     engine layer. @@ -449,35 +449,35 @@ Hey Emacs, this is -*- org -*- mode!  * Tests    :PROPERTIES: -  :CUSTOM_ID:  +  :CUSTOM_ID: tests    :END: -** Write a fake gpg-agent so that we can supply known passphrases to +** TODO Write a fake gpg-agent so that we can supply known passphrases to     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: test-fake-gpg-agent     :END:     gpgsm and setup the configuration files to use the agent.  Without     this we are testing a currently running gpg-agent which is not a     clever idea. !  ** t-data     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: test-data     :END:  *** Test gpgme_data_release_and_get_mem.      :PROPERTIES: -    :CUSTOM_ID:  +    :CUSTOM_ID: test-gpgme-data-release-mem      :END:  *** Test gpgme_data_seek for invalid types.      :PROPERTIES: -    :CUSTOM_ID:  +    :CUSTOM_ID: test-gpgme-data-seek      :END:  ** t-keylist     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: test-keylist     :END:     Write a test for ext_keylist.  ** Test reading key signatures.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: test-key-sig     :END: @@ -487,7 +487,7 @@ Hey Emacs, this is -*- org -*- mode!    :END:  ** Tracepoints should be added at: Every public interface enter/leave,     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: tracepoint-pub-int     :END:     before and in every callback, at major decision points, at every     internal data point which might easily be observed by the outside @@ -500,10 +500,11 @@ Hey Emacs, this is -*- org -*- mode!     decrypt-verify.c delete.c edit.c encrypt.c encrypt-sign.c export.c     genkey.c import.c key.c keylist.c passphrase.c progress.c signers.c     sig-notation.c trust-item.c trustlist.c verify.c -** Handle malloc and vasprintf errors.  But decide first if they should be +** TODO Handle malloc and vasprintf errors.  But decide first if they should be     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: malloc-vasprintf     :END: +        ignored (and logged with 255?!), or really be assertions. ! @@ -511,13 +512,13 @@ Hey Emacs, this is -*- org -*- mode!    :PROPERTIES:    :CUSTOM_ID:     :END: -** Make sure everything is cleaned correctly (esp. test area). +** TODO Make sure everything is cleaned correctly (esp. test area).     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: clean-tests     :END: -** Enable AC_CONFIG_MACRO_DIR and bump up autoconf version requirement. +** TODO Enable AC_CONFIG_MACRO_DIR and bump up autoconf version requirement.     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: autoconf-macros     :END:     (To fix "./autogen.sh; ./configure --enable-maintainer-mode; touch     configure.ac; make").  Currently worked around with ACLOCAL_AMFLAGS??? @@ -525,11 +526,11 @@ Hey Emacs, this is -*- org -*- mode!  * Error checking     :PROPERTIES: -  :CUSTOM_ID:  +  :CUSTOM_ID: error-checking    :END: -** engine-gpgsm, with-validation +** TODO engine-gpgsm, with-validation     :PROPERTIES: -   :CUSTOM_ID:  +   :CUSTOM_ID: gpgsm-validation     :END:     Add error checking some time after releasing a new gpgsm. @@ -559,6 +560,13 @@ Hey Emacs, this is -*- org -*- mode!     See the more detailed notes on this in the [[lang/python/docs/TODO.org][python TODO]]. +** TODO GPGME installation and package management guide +   :PROPERTIES: +   :CUSTOM_ID: package-management +   :END: + +   Write a guide/best practices for maintainers of GPGME packages with +   third party package management systems.  Copyright 2004, 2005, 2018 g10 Code GmbH | 
