From a575b0aba5424ed76b1067218beab748b56bde43 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Mon, 15 Nov 2021 11:40:41 +0900 Subject: [PATCH] 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 --- scd/app-openpgp.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c index e1ceed4bc..76a15d00e 100644 --- a/scd/app-openpgp.c +++ b/scd/app-openpgp.c @@ -5418,6 +5418,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;