diff options
author | Werner Koch <[email protected]> | 2009-06-09 19:11:28 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2009-06-09 19:11:28 +0000 |
commit | bdbeb0ac2bdd3e24f97efb67a3c33e8e08523c46 (patch) | |
tree | 750ebce47c26e8093274084bbe30f1dc070130bb /scd | |
parent | Typo fix. Updated German translation. (diff) | |
download | gnupg-bdbeb0ac2bdd3e24f97efb67a3c33e8e08523c46.tar.gz gnupg-bdbeb0ac2bdd3e24f97efb67a3c33e8e08523c46.zip |
app-openpgp changes
Diffstat (limited to '')
-rw-r--r-- | scd/ChangeLog | 6 | ||||
-rw-r--r-- | scd/app-openpgp.c | 12 | ||||
-rw-r--r-- | scd/app.c | 2 |
3 files changed, 15 insertions, 5 deletions
diff --git a/scd/ChangeLog b/scd/ChangeLog index 7520ff43c..7fc8fe46d 100644 --- a/scd/ChangeLog +++ b/scd/ChangeLog @@ -1,3 +1,9 @@ +2009-06-09 Werner Koch <[email protected]> + + * app-openpgp.c (do_readcert): Return NOT_FOUND if the retrieved + data has a length of zero. + (do_getattr): Add EXTCAP subkey "sm". + 2009-05-20 Werner Koch <[email protected]> * app-openpgp.c (verify_chv2): Add case for v2 cards. diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c index c29e33da5..658459eb8 100644 --- a/scd/app-openpgp.c +++ b/scd/app-openpgp.c @@ -833,13 +833,16 @@ do_getattr (app_t app, ctrl_t ctrl, const char *name) char tmp[100]; snprintf (tmp, sizeof tmp, - "gc=%d ki=%d fc=%d pd=%d mcl3=%u aac=%d", + "gc=%d ki=%d fc=%d pd=%d mcl3=%u aac=%d sm=%d", app->app_local->extcap.get_challenge, app->app_local->extcap.key_import, app->app_local->extcap.change_force_chv, app->app_local->extcap.private_dos, app->app_local->extcap.max_certlen_3, - app->app_local->extcap.algo_attr_change); + app->app_local->extcap.algo_attr_change, + (app->app_local->extcap.sm_supported + ? (app->app_local->extcap.sm_aes128? 7 : 2) + : 0)); send_status_info (ctrl, table[idx].name, tmp, strlen (tmp), NULL, 0); return 0; } @@ -1398,8 +1401,9 @@ do_readcert (app_t app, const char *certid, if (!relptr) return gpg_error (GPG_ERR_NOT_FOUND); - *cert = xtrymalloc (buflen); - if (!*cert) + if (!buflen) + err = gpg_error (GPG_ERR_NOT_FOUND); + else if (!(*cert = xtrymalloc (buflen))) err = gpg_error_from_syserror (); else { @@ -620,7 +620,7 @@ app_readcert (app_t app, const char *certid, code returned. This function might not be supported by all applications. */ -gpg_error_t +gpg_error_t app_readkey (app_t app, const char *keyid, unsigned char **pk, size_t *pklen) { gpg_error_t err; |