aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scd/app-openpgp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c
index cff3ca619..888e23739 100644
--- a/scd/app-openpgp.c
+++ b/scd/app-openpgp.c
@@ -5641,13 +5641,15 @@ do_auth (app_t app, ctrl_t ctrl, const char *keyidstr,
if (app->app_local->keyattr[2].key_type == KEY_TYPE_ECC)
{
+ /* This is a heuristic to strip off the OID of digest. Fully
+ implemented, it would be use of X macro in do_sign above. */
if (indatalen == 51 || indatalen == 67 || indatalen == 83)
{
const char *p = (const char *)indata + 19;
indata = p;
indatalen -= 19;
}
- else
+ else if (indatalen > 15)
{
const char *p = (const char *)indata + 15;
indata = p;