2001-03-28 Werner Koch * gpapa.c (gpapa_extract_fingerprint): No warning when tehre are more fields in gpg's output. Just check for the minimum required number of fields. Note: the parsing code does not seem to be correct. (extract_key): Ditto. * gpapapublickey.c (extract_sig): Ditto Tue Feb 27 10:10:03 CET 2001 Jan-Oliver Wagner * util.c: removed stpcpy() which is already in jnlib/stringhelp.c Mon 26 Feb 2001 23:10 Peter Gerwinski * debug.c, gpgme.h, io.h, posix-io.c, rungpg.c, rungpg.h, util.c, w32-io.c, wait.c, wait.h: GPGME upgrade. * wait.c (_gpgme_wait_on_condition): mark GPAPA-specific code with "#ifdef GPAPA". Thu 15 Feb 2001 18:51 Peter Gerwinski * gpapa.c (gpapa_refresh_public_keyring): refresh the secret keyring, too, because the secret key objects also refer to the GpapaKey subobjects in the public keyring. (gpapa_create_key_pair): no more need to refresh the secret keyring explicitly. (gpapa_update_trust_database, gpapa_import_keys): refresh the public keyring afterwards. Wed 14 Feb 2001 26:14 Peter Gerwinski * gpapa.c (linecallback_refresh_sec): merge the GpapaKey subobjects of public and secret keys. * gpapakey.c (gpapa_key_set_expiry_date): note the new expiration date in the key object. * gpapapublickey.c (gpapa_public_key_set_ownertrust): note the new ownertrust in the key object. (gpapa_public_key_sign): answer "YES" two times - for all user IDs and for signing; enforce reloading of the key's signatures. (gpapa_public_key_release_sigs): new function. (gpapa_public_key_release): use gpapa_public_key_release_sigs(). * gpapasecretkey.c (gpapa_secret_key_delete): refresh the public key ring first, so the GpapaKey subobjects can be merged. (gpapa_secret_key_release): do _not_ gpapa_key_release (key->key) because key->key is owned by the public key object now. Wed 14 Feb 2001 23:24 Peter Gerwinski * gpapapublickey.c (gpapa_public_key_delete): pass "YES" as a command. (I wonder how this could ever have worked without this ...)-: * gpapasecretkey.c (gpapa_secret_key_delete): update the public keyring, too. Tue 13 Feb 2001 29:45 Peter Gerwinski * all files: s/gchar/char/g, GCSsified. * gpapa.c (release_public_keyring, release_secret_keyring, compare_public_keys, compare_secret_keys, gpapa_extract_fingerprint): new functions. (extract_key): recognize (even false) quoted colons. (linecallback_refresh_pub, linecallback_id_pub, linecallback_refresh_sec, linecallback_id_sec): report status errors. since GPG has `--with-fingerprint' now, get the fingerprints here. (gpapa_refresh_public_keyring): pass `--with-fingerprint'; sort the public key ring alphabetically. (gpapa_get_public_key_count): refresh only if absolutely necessary. (gpapa_get_public_key_by_ID, gpapa_get_public_key_by_userID, gpapa_get_secret_key_by_ID, gpapa_get_secret_key_by_userID): return the key from the key list. (gpapa_release_public_key, gpapa_release_secret_key): removed; these are now (again) methods of the public/secret key objects. (gpapa_refresh_secret_keyring): sort the secret key ring alphabetically. (gpapa_load_options, gpapa_save_options): removed. (gpapa_fini): release keyrings. * gpapafile.c (linecallback_check_gpg_status): new function. (linecallback_get_status, linecallback_get_signatures, gpapa_file_sign, gpapa_file_encrypt, gpapa_file_encrypt_and_sign, gpapa_file_protect, gpapa_file_decrypt): report status errors. (gpapa_file_get_status): check explicitly whether the file exists and is a regular file. * gpapaintern.c (gpapa_report_error_status): new function. (gpapa_call_gnupg): reset the counter of STATUS_NODATA reports. * gpapakey.c (gpapa_key_set_expiry_date): use g_strdup_printf(). * gpapapublickey.c (linecallback_fingerprint, gpapa_public_key_set_ownertrust): use extract_fingerprint(). (linecallback_fingerprint): report status errors. (gpapa_public_key_release): new (old) function. * gpapasecretkey.c (gpapa_secret_key_create_revocation): no need to {s|g_strdup}_printf(). (gpapa_secret_key_release): new function. 2001-02-13 Bernhard Herzog * Makefile.am (libgpapa_a_SOURCES): Add sema.h * gpapafile.c (gpapa_file_get_status): Fix wrong gpgargv index. Sun 11 Feb 2001 26:42 Peter Gerwinski * gpapa.c (gpapa_create_key_pair): handle empty comments; explicitly add the `--batch' option. * gpapaintern.c (gpapa_call_gnupg): add the `--batch' option only when there are no commands. Otherwise, gpg complains about deletion of secret keys which cannot be done in batch mode. * gpapasecretkey.c (gpapa_secret_key_delete): give a "YES" command; also delete the public key. * rungpg.c (build_argv): never add the `--batch' option; let the caller do this. * wait.c (_gpgme_wait_on_condition): do not consider `c->cancel'. In fact `c' is not really a `GpgmeCtx'. Fri 9 Feb 2001 19:05 Peter Gerwinski * posix-sema.c, w32-sema.c, sema.h, debug.c: new files (from GPGME). Fri 9 Feb 2001 11:05 Peter Gerwinski * context.h, data.c, gpgme.c, gpgme.h, ops.h, posix-io.c, rungpg.c, rungpg.h, util.c, util.h, w32-io.c, wait.c, gpgme_types.h: updated to current GPGME. * sema.h: new file (from GPGME). 2001-02-07 Bernhard Herzog * gpapatest.c (test_expiry): Add a dummy passphrase to make gpapatest compile with the changes in gpapakey.c * gpapakey.h (gpapa_key_set_expiry_date): * gpapakey.c (gpapa_key_set_expiry_date): Add the password parameter and pass it to gpg also treat a NULL date properly as "never expire" Mon 29 Jan 2001 25:14 Peter Gerwinski All files: updated copyright notices. * gpapa.c (gpapa_create_key_pair): cosmetical changes. * gpapaintern.c (gpapa_call_gnupg): more debugging output; pass the commands on fd 0 rather than on a special fd. For whatever reason, this works (at least on a Linux-based systems) while the other doesn't. * gpapatest.c (test_genkey): cosmetical changes. (test_gpapa_key_set_expiry_date): renamed to `test_expiry'. (main) call `test_expiry' on keyword "expiry". 2001-01-29 Bernhard Herzog * Makefile.am (libgpapa_a_SOURCES): Correct the filename of status-table.h and add context.h so that make dist works again Sat 27 Jan 2001 27:42 Peter Gerwinski * gpapaintern.c (line_handler, status_handler): added debug output. (command_handler): trying to use this for passing a passphrase. (gpapa_call_gnupg): explicitly use `--command-fd' and `--passphrase-fd' instead of relying on the GPGME callbacks. * gpapatest.c (linecallback): fixed parameters to use GPGME status codes. (main): report `argv[0]' instead of "foo" in callback messages. * posix-io.c (_gpgme_io_spawn): more debugging messages. * rungpg.c (build_argv): more debugging messages. Fri 26 Jan 2001 18:46 Peter Gerwinski * gpapa.c (gpapa_create_key_pair): initialize `commands'. * gpapafile.c (status_check): do not clear the buffer. The strings will be needed. * gpgme_types.h: #define GPG_PATH only if not already defined. Tue 23 Jan 2001 11:12 Peter Gerwinski * w32-io.c (_gpgme_io_spawn): use `nul' instead of `/dev/nul'. Mon 22 Jan 2001 29:24 Peter Gerwinski * gpapapublickey.c (linecallback_get_signatures): do not treat the self-signature specially. * gpapatest.c (main): initialize with GPG_PROGRAM from `../gpgdefs.h' rather than with a constant path. * gpgme_types.h (GPG_PATH): redefined to use GPAPA's path to the gpg program as specified in gpapa_init(). 2001-01-18 Werner Koch * gpapaintern.c, util.c (stpcpy): Removed. * w32-io.c (stpcpy): New. Tue 16 Jan 2001 23:25 Jan van Heys Peter Gerwinski Copied relevant files from GPGME. * Makefile.am: added new files. Mon 15 Jan 2001 28:30 Peter Gerwinski Re-wrote the GnuPG communication layer to use GPGME. * Makefile.am: (gpapatest_LDADD): added `-lgpgme'. * gpapa.c: (top level): let "gpapa.h" include the standard headers. (linecallback_refresh_pub): parameter list changed according to the new requirements of gpapa_call_gnupg(); body changed accordingly. (linecallback_refresh_sec): likewise. (linecallback_id_sec): likewise. (linecallback_export_ownertrust): likewise. * gpapa.h: include standard headers. * gpapafile.c: (top level): let "gpapa.h" include the standard headers. (linecallback_get_status): parameter list changed (see above). (status_check): pass status as a GpgStatusCode rather than a char*. (linecallback_get_signatures): parameter list changed (see above). * gpapaintern.c: rewritten. Use functions from GPGME for communication with GnuPG. (stpcpy): new function. * gpapaintern.h: (NO_STATUS): constant to indicate that something is _not_ a GPG status code. @@@@ This must be kept in sync with GPGME! * gpapapublickey.c: (linecallback_fingerprint): parameter list changed (see above). (linecallback_get_signatures): likewise. Cosmetical changes (GCS, etc.) in other files. 2000-12-20 Werner Koch Applied patches from Jan's tarball dated 2000-12-18. Mon 18 Dec 2000 Jan van Heys Peter Gerwinski * gpapa.c: (gpapa_get_public_key_by_userID): new function. (gpapa_get_secret_key_by_userID): new function. (gpapa_create_key_pair): return the created public and secret keys. * gpapakey.c: (gpapa_key_set_expiry_date): function implemented. * gpapapublickey.c: (gpapa_public_key_get_keytrust), (gpapa_public_key_get_ownertrust): handle case 'q'. (gpapa_public_key_set_ownertrust): function implemented. (gpapa_public_key_delete): added confirmation to `gpg' call. * gpapasecretkey.c: (gpapa_secret_key_delete): added confirmation to `gpg' call. (gpapa_secret_key_create_revocation): function implemented. * gpapatest.c: (test_genkey), (test_gpapa_key_set_expiry_date): new functions. (main): call new functions. Wed 25 Oct 2000 16:42 Jan van Heys Peter Gerwinski * gpapaintern.c: introduced "#define TEST_PASSPHRASE" hack to provide a dummy passphrase "test" for testing purposes. (spawn_gnupg): close the input pipe after writing the commands to it. (handle_status, handle_output_line): fixed bug which caused incomplete lines to jam the pipe i/o. * gpapa.c (gpapa_create_key_pair): function implemented. * gpapapublickey.c (gpapa_public_key_sign): function implemented. 2000-09-01 Werner Koch * gpapafile.c (status_check): Avoid extra allocation and made function more stable. * gpapaintern.c: The whole thing has been restructed. 2000-08-30 Werner Koch * gpapaintern.c (spawn_gnupg): New. Started to rework the GnuPG invocation stuff for easier debugging of Windows problem. 2000-07-31 16:35:40 Werner Koch (wk@habibti.openit.de) * gpapaintern.c (gpapa_call_gnupg) [MINGW32]: SetHandleInformation() is not available under Windows9[58]; so we do not print the error message. Fixed a stupid SEGV problem with fprintf. 2000-07-10 18:11:21 Werner Koch (wk@habibti.openit.de) * build-dll, README: New. * gpapatest.c [MINGW32]: Implement xmalloc etc. here 2000-05-25 17:51:21 Werner Koch (wk@habibti.openit.de) * gpapa.c (gpapa_init): Add gpg parameter. (gpapa_private_get_gpg_program): New. * gpapaintern.c (gpapa_call_gnupg): Use this new function. 2000-05-16 19:53:49 Werner Koch (wk@habibti.openit.de) Ran "indent -gnu -sc" on all source files. 2000-05-16 17:38:06 Werner Koch (wk@habibti.openit.de) * gpapaintern.c (gpapa_call_gnupg) [MINGW32]: Some stuff works now. 2000-05-11 16:54:10 Werner Koch (wk@habibti.openit.de) * gpapaintern.c (gpapa_call_gnupg) [MINGW32]: Dummy code for W32. Excluded one header for W32. 10 May 2000 26:56 Peter Gerwinski All non-interactive parts of the public and secret key editors work. Encrypting, decrypting, and signing files works. 2000-05-02 19:45:30 Werner Koch (wk@habibti.openit.de) Replaced all concat() by xstrcat2(). Replaced some parameters named index by idx to avoid compiler warnings due to the index(3). 2000-05-02 18:32:57 Werner Koch (wk@habibti.openit.de) * Makefile.am: New. Included the config.h as the header of each .c file. Removed the libiberty.h header. Wed 26 Apr 2000 26:07 Peter Gerwinski * gpapa.c: re-implemented key ring extraction to keep them in memory. This is much faster for now but does not scale well and must be replaced by something more sophisticated in the future. Wed 26 Apr 2000 12:53 Peter Gerwinski * m: create an `.a'. * upload: new file. Wed 26 Apr 2000 10:10 Peter Gerwinski * gpapaintern.c: gpapa_call_gnupg(): get the passphrase as an additional parameter instead of using a callback. Tue 25 Apr 2000 26:25 Peter Gerwinski Signing works. * gpapaintern.c: gpapa_call_gnupg() can handle passphrases. In fact for the way it is implemented, the callback is not necessary. Do we want to keep it? Tue 25 Apr 2000 14:00 Peter Gerwinski Getting information about keys works, including fingerprints and such, but not including signatures and such. Sun 23 Apr 2000 28:00 Peter Gerwinski * gpapaintern.c: gpapa_call_gnupg() works. Sat 22 Apr 2000 Peter Gerwinski Started implementing. Thu 20 Apr 2000 Markus Gerwinski Finished design. Tue 18 Apr 2000 Markus Gerwinski Started with design. Created the name "GPAPA". Wed 5 Apr 2000 Markus Gerwinski Wrote down requirements. Tu 16 May 2000 Markus Gerwinski - Did a lot of major changes in the header of gpapa_create_key_pair. - Detached methods set_expiry_date and set_expiry_time from class GpapaSecretKey and attached them to GpapaKey.