From 187d908feb5867a7d44604e02c02c2131285f74b Mon Sep 17 00:00:00 2001 From: Julian Strobl Date: Tue, 17 Dec 2019 18:57:54 +0100 Subject: [PATCH] tcos: allow correct input length when signing For 2048 bit keys the padded input is 256 bytes long. Fixes https://github.com/frankmorgner/OpenSCToken/issues/20 --- src/libopensc/card-tcos.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libopensc/card-tcos.c b/src/libopensc/card-tcos.c index 3c04d72b..8ead946e 100644 --- a/src/libopensc/card-tcos.c +++ b/src/libopensc/card-tcos.c @@ -549,7 +549,8 @@ static int tcos_compute_signature(sc_card_t *card, const u8 * data, size_t datal assert(card != NULL && data != NULL && out != NULL); tcos3=(card->type==SC_CARD_TYPE_TCOS_V3); - if (datalen > 255) SC_FUNC_RETURN(card->ctx, SC_LOG_DEBUG_VERBOSE, SC_ERROR_INVALID_ARGUMENTS); + // We can sign (key length / 8) bytes + if (datalen > 256) SC_FUNC_RETURN(card->ctx, SC_LOG_DEBUG_VERBOSE, SC_ERROR_INVALID_ARGUMENTS); if(((tcos_data *)card->drv_data)->next_sign){ if(datalen>48){