gpgme 0.3.3 questions

Werner Koch wk at
Fri Sep 21 12:41:01 CEST 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?


> - 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



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

More information about the Gnupg-devel mailing list