gpgme 0.3.3 questions

Werner Koch wk@gnupg.org
Fri Sep 21 11:41:01 2001


On Fri, 21 Sep 2001 09:51:53 +0200, Stephane Corthesy said:


> - Can subkeys have fingerprints?
The do have fingerprints but they are rarely useful.
> - How are two keys equal? Can we compare them using fingerprint?
> What makes them unique?
Comparing fingerprints is okay.
> - How are two GpgmeTrustItem equal? Can we compare them using their
> GPGME_ATTR_KEYID attribute?
Please ignore the TrustItem stuff for now. It is not yet well defined.
> - Which GpgmeData types can be read/written?
All.
> - GpgmeData read callback: can the callback return no data, but
> without being at EOF?
* and the number actually read in @nread. It may return 0 in @nread * if there are no bytes currently available. To indicate EOF the
> - gpgme_data_read(_data, NULL, 0, &aReadLength): "Returns the number
> of bytes available and does not move the read pointer.".
> - Does aReadLength return the total number of bytes it can read,
> or the number of bytes it read, or the number of bytes still to be
> read?
The number of bytes still available for read, after a rewind this should be the entire number of bytes avalable.
> - Can it return Gpgme_EOF_error?
Yes to indicate that there are no more bytes to read. nread will also be set to 0 in that case.
> - gpgme_release_context() "releases all resources": what are these
> resources? Keys, trustItems, datas?
Everything you can access using that context.
> - GpgmeContext passphrase callback: can we expect to always have
> description on three lines? "TRY_AGAIN" or "ENTER", userID or "[User
> ID hint missing]" (does it mean that keyID was not included?), ???
> (what is it?) or "[passphrase info missing]", always unlocalized.
Currently 3 lines, in future you might see more lines. The hint lines are not localized and are useful for a quick and dirty implementation. Those "missing" notices are probably due to gpg problems Don't put to much work into this, because eventually GpgAgent will take care of passphrase stuff.
> - GpgmeContext progress callback: what is the type parameter? When
> is the callback used? On key generation only?
That is the same letter as printed during key generation. It will be used in future for more operations than key generation.
> - gpgme_strerror(): is it meant to be localized in future versions?
Yes, that makes sense.
> - After gpgme_op_import(), how can we get imported keys?
To you want some notices about which keys are imported?
> - Does gpgme_op_trustlist_next() really return GPGME_EOF when it has
> finished enumeration?
It should, but well I may have to change things. Don't spend too much time on it yet.
> - GpgmeKey misses two functions: gpgme_key_subkeys_count() and
> gpgme_key_userids_count(). We cannot base counts on results returned
> by gpgme_key_get_ulong_attr() or gpgme_key_get_string_attr(), because
You can ask for attributes which do return valid informations. I will add attributes to get the count.
> - Can subkeys be secret? If YES, then gpgme_key_get_ulong_attr() and
> gpgme_key_get_string_attr() return only main key secretness.
Yes but if a main key is secret, the subkeys are also secret.
> - GpgmeData: currently there is no way to get data without it to be
> released (gpgme_data_release_and_get_mem()).
Use gpgme_data_read().
> - gpgme_set_textmode(): comment is outdated, because RFC2015 is no
> longer valid, and has been replaced by RFC3156, in which you no
> longer need to use textmode.
But is does not do any harm. I have added a remark on 3156.
> - gpgme misses a way to edit keys
It is on my todo list.
> - It would be nice to be able to give other options to gpg with
> gpgme, like throwKeyID, etc. (important for mails with BCC)
I would not do a --throw-keyid for BCCs because the visible recipients get a clue that it is encoded for n other recipients - better encrypt it for BCCs separately.
> - What is the roadmap for future versions of gpgme? I really like it!!
Depends on some future developments - I can tell you more in about 8 days. [Bugs noted]
> Finally, I needed to patch a file to make gpgme run tests: modify
> tests/mkdemodirs:

> < [ -d $name ] && rm -r $name
>> [ -d $name ] && rm -r $name || true
Done. Werner -- Werner Koch Omnis enim res, quae dando non deficit, dum habetur g10 Code GmbH et non datur, nondum habetur, quomodo habenda est. Privacy Solutions -- Augustinus