doc/
2003-07-31 Marcus Brinkmann <marcus@g10code.de> * gpgme.texi (Listing Keys): Document GPG_ERR_AMBIGUOUS_NAME for gpgme_get_key. gpgme/ 2003-07-31 Marcus Brinkmann <marcus@g10code.de> * keylist.c (gpgme_get_key): Check if there is more than one key listed, and return GPG_ERR_AMBIGUOUS_NAME in that case.
This commit is contained in:
parent
6bb0790d97
commit
82f7a68aa2
12
NEWS
12
NEWS
@ -1,3 +1,15 @@
|
||||
Noteworthy changes in version 0.4.3 (unreleased)
|
||||
------------------------------------------------
|
||||
|
||||
* gpgme_get_key fails with GPG_ERR_AMBIGUOUS_NAME if the key ID
|
||||
provided was not unique, instead returning the first matching key.
|
||||
|
||||
* Interface changes relative to the 0.4.3 release:
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
gpgme_get_key CHANGED: Fails correctly if key ID not unique.
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
Noteworthy changes in version 0.4.2 (2003-07-30)
|
||||
------------------------------------------------
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2003-07-31 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* gpgme.texi (Listing Keys): Document GPG_ERR_AMBIGUOUS_NAME for
|
||||
gpgme_get_key.
|
||||
|
||||
2003-07-29 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* Makefile.am (EXTRA_DIST): Remove variable.
|
||||
|
@ -1144,7 +1144,8 @@ were configured to exclude support for this engine, or because the
|
||||
engine is not installed properly.
|
||||
|
||||
@item GPG_ERR_AMBIGUOUS_NAME
|
||||
This value indicates that a user ID did not specify a unique key.
|
||||
This value indicates that a user ID or other specifier did not specify
|
||||
a unique key.
|
||||
|
||||
@item GPG_ERR_WRONG_KEY_USAGE
|
||||
This value indicates that a key is not used appropriately.
|
||||
@ -2377,8 +2378,9 @@ the error code @code{GPG_ERR_NO_ERROR} and *@var{r_key} will be set to
|
||||
|
||||
The function returns the error code @code{GPG_ERR_INV_VALUE} if
|
||||
@var{ctx} or @var{r_key} is not a valid pointer or @var{fpr} is not a
|
||||
fingerprint or key ID, and @code{GPG_ERR_ENOMEM} if at some time
|
||||
during the operation there was not enough memory available.
|
||||
fingerprint or key ID, @code{GPG_ERR_AMBIGUOUS_NAME} if the key ID was
|
||||
not a unique specifier for a key, and @code{GPG_ERR_ENOMEM} if at some
|
||||
time during the operation there was not enough memory available.
|
||||
@end deftypefun
|
||||
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
2003-07-31 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* keylist.c (gpgme_get_key): Check if there is more than one key
|
||||
listed, and return GPG_ERR_AMBIGUOUS_NAME in that case.
|
||||
|
||||
* util.h (_gpgme_decode_c_string): Change type of LEN argument to
|
||||
size_t.
|
||||
(_gpgme_decode_percent_string): Likewise.
|
||||
|
@ -832,6 +832,7 @@ gpgme_get_key (gpgme_ctx_t ctx, const char *fpr, gpgme_key_t *r_key,
|
||||
{
|
||||
gpgme_ctx_t listctx;
|
||||
gpgme_error_t err;
|
||||
gpgme_key_t key;
|
||||
|
||||
if (!ctx || !r_key)
|
||||
return gpg_error (GPG_ERR_INV_VALUE);
|
||||
@ -849,6 +850,21 @@ gpgme_get_key (gpgme_ctx_t ctx, const char *fpr, gpgme_key_t *r_key,
|
||||
err = gpgme_op_keylist_start (listctx, fpr, secret);
|
||||
if (!err)
|
||||
err = gpgme_op_keylist_next (listctx, r_key);
|
||||
if (!err)
|
||||
{
|
||||
err = gpgme_op_keylist_next (listctx, &key);
|
||||
if (gpgme_err_code (err) == GPG_ERR_EOF)
|
||||
err = gpg_error (GPG_ERR_NO_ERROR);
|
||||
else
|
||||
{
|
||||
if (!err)
|
||||
{
|
||||
gpgme_key_unref (key);
|
||||
err = gpg_error (GPG_ERR_AMBIGUOUS_NAME);
|
||||
}
|
||||
gpgme_key_unref (*r_key);
|
||||
}
|
||||
}
|
||||
gpgme_release (listctx);
|
||||
return err;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user