scd: Fix keytocard for ECC.
authorNIIBE Yutaka <gniibe@fsij.org>
Mon, 17 Oct 2016 03:02:28 +0000 (12:02 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Mon, 17 Oct 2016 03:02:28 +0000 (12:02 +0900)
* scd/app-openpgp.c (build_ecc_privkey_template): Size can be greater
than 128 when it comes with public key for curve of larger field.

--

Reported-by: Arnaud Fontaine <arnaud.fontaine@ssi.gouv.fr>
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
scd/app-openpgp.c

index 563a045..ef335fe 100644 (file)
@@ -2689,6 +2689,8 @@ build_ecc_privkey_template (app_t app, int keyno,
                    + privkey_len
                    + suffix_len
                    + datalen);
+  if (exthdr_len + privkey_len + suffix_len + datalen >= 128)
+    template_size++;
   tp = template = xtrymalloc_secure (template_size);
   if (!template)
     return gpg_error_from_syserror ();