diff options
author | NIIBE Yutaka <[email protected]> | 2021-11-15 02:40:41 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2021-11-15 16:54:04 +0000 |
commit | b6b735edab036e4992872ef3d44b357fb9281ca8 (patch) | |
tree | b663288fdf01443923bce5e1df9fdd1f88d4de18 | |
parent | build: Fix several "include file not found" problems (diff) | |
download | gnupg-b6b735edab036e4992872ef3d44b357fb9281ca8.tar.gz gnupg-b6b735edab036e4992872ef3d44b357fb9281ca8.zip |
scd:openpgp: Support longer data for INTERNAL_AUTHENTICATE.
* scd/app-openpgp.c (do_auth): Use extended Lc, when supported.
--
GnuPG-bug-id: 5682
Co-authored-by: Klas Lindfors
Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r-- | scd/app-openpgp.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c index 2090ef820..2b8e780ab 100644 --- a/scd/app-openpgp.c +++ b/scd/app-openpgp.c @@ -4738,6 +4738,14 @@ do_auth (app_t app, ctrl_t ctrl, const char *keyidstr, exmode = 1; /* Use extended length. */ le_value = app->app_local->keyattr[2].rsa.n_bits / 8; } + else if (indatalen > 255) + { + if (!app->app_local->cardcap.ext_lc_le) + return gpg_error (GPG_ERR_TOO_LARGE); + + exmode = 1; + le_value = 0; + } else { exmode = 0; |