[PATCH] scd: correct length for RSA public key response

Werner Koch wk at gnupg.org
Sun Aug 27 16:37:03 CEST 2017

On Fri, 25 Aug 2017 13:23, arnaud.fontaine at ssi.gouv.fr said:
> For example, with an exponent of 17 bits (e.g. 0x010001 which is
> commonly used on smartcards), 3 bytes are needed to encode it, not 2.

Sure,  I just wondered why it seemed to work in the past.

> Actually, when the incorrect expected response length (i.e. Le field) is
> transmitted to the card, the card's answer is missing a byte (i.e. ...
> 6101) so an additional command has to be sent to the card to retrieve
> the last byte. Using the correct length avoids to send the additional

Okay, that explains it.

>>> -    + 2 /* tag+len */ + app->app_local->keyattr[keyno].rsa.e_bits/8;
>>> +    + 2 /* tag+len */ + (app->app_local->keyattr[keyno].rsa.e_bits + 7)/8;

Also odd lengths are not that common for N, I will do the same for
N_BITS too.

Thanks for figuring this out.



Die Gedanken sind frei.  Ausnahmen regelt ein Bundesgesetz.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 227 bytes
Desc: not available
URL: </pipermail/attachments/20170827/d831261a/attachment-0001.sig>

More information about the Gnupg-devel mailing list