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>
Fri, 25 Nov 2016 07:35:15 +0000 (16:35 +0900)
commitb89e63e5c326af71470124b410e6429cbd2b5c43
tree25db8c05f0447f3ef876938c13a6fb9286185bc1
parent005d326d19ba28005182205f25edc4f7499ec0b5
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.

--

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