diff options
-rw-r--r-- | scd/app-openpgp.c | 4 |
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; |