scd: Support OpenPGP card V3 for RSA.
authorNIIBE Yutaka <gniibe@fsij.org>
Fri, 25 Nov 2016 07:12:26 +0000 (16:12 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Wed, 30 Nov 2016 00:51:23 +0000 (09:51 +0900)
commit5c599e4f6edd288f4759c9fc2bcf9fe87dee1836
tree98e83ba39ad651896f5f8919be5b8706a3999aa9
parentbb5a153f9dd9497f58935c2a7026220f3a99cffd
scd: Support OpenPGP card V3 for RSA.

* scd/app-openpgp.c (struct app_local_s): Remove max_cmd_data and
max_rsp_data fields as Extended Capabilities bits are different.
(get_cached_data) Use extcap.max_certlen_3.
(get_one_do): Don't use exmode=1.
(determine_rsa_response): New.
(get_public_key, do_genkey): Call determine_rsa_response.
(do_sign): Use keyattr[0].rsa.n_bits / 8, instead of max_rsp_data.
(do_auth): Use keyattr[2].rsa.n_bits / 8, instead of max_rsp_data.
(do_decipher): Likewise with Use keyattr[1].rsa.n_bits / 8.
(show_caps): Remove max_cmd_data and max_rsp_data.
(app_select_openpgp): Likewise.

--
Backport of master commit: b89e63e5c326af71470124b410e6429cbd2b5c43

OpenPGP card V3 had introduced incompatible change in Extended
Capabilities bits.  We can work around by this change by not
using those bits.

Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
scd/app-openpgp.c