scd: fix for 64-bit arch

NIIBE Yutaka gniibe at fsij.org
Sat Mar 7 10:11:58 CET 2015


Hello,

I was careless about 64-bit architecture when I added EdDSA support
for scdaemon.

Here's an obvious fix.

I don't push this change today, and postpone until tomorrow.  Because
I am sleepy now and not that confident.  I'll review it again, and
push.


diff --git a/agent/pksign.c b/agent/pksign.c
index d737bad..1d3d3d8 100644
--- a/agent/pksign.c
+++ b/agent/pksign.c
@@ -363,12 +363,13 @@ agent_pksign_do (ctrl_t ctrl, const char *cache_nonce,
               *buf = 0;
             }

-          rc = gcry_sexp_build (&s_sig, NULL, "(sig-val(rsa(s%b)))", len, buf);
+          rc = gcry_sexp_build (&s_sig, NULL, "(sig-val(rsa(s%b)))",
+                                (int)len, buf);
         }
       else if (is_EdDSA)
         {
           rc = gcry_sexp_build (&s_sig, NULL, "(sig-val(eddsa(r%b)(s%b)))",
-                                len/2, buf, len/2, buf + len/2);
+                                (int)len/2, buf, (int)len/2, buf + len/2);
         }
       else if (is_ECDSA)
         {
diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c
index 6583fb2..10bd64e 100644
--- a/scd/app-openpgp.c
+++ b/scd/app-openpgp.c
@@ -1496,7 +1496,7 @@ get_public_key (app_t app, int keyno)
   if (app->app_local->keyattr[keyno].key_type == KEY_TYPE_RSA)
     {
       err = gcry_sexp_build (&s_pkey, NULL, "(public-key(rsa(n%b)(e%b)))",
-                             mlen, mbuf, elen, ebuf);
+                             (int)mlen, mbuf, (int)elen, ebuf);
       if (err)
         goto leave;

@@ -1518,7 +1518,7 @@ get_public_key (app_t app, int keyno)

       err = gcry_sexp_build (&s_pkey, NULL,
                              "(public-key(ecc(curve%s)(q%b)))",
-                             curve_name, mlen, mbuf);
+                             curve_name, (int)mlen, mbuf);
       if (err)
         goto leave;

@@ -1541,7 +1541,7 @@ get_public_key (app_t app, int keyno)

       err = gcry_sexp_build (&s_pkey, NULL,
                              "(public-key(ecc(curve%s)(flags eddsa)(q%b)))",
-                             curve_name, mlen, mbuf);
+                             curve_name, (int)mlen, mbuf);
       if (err)
         goto leave;

--



More information about the Gnupg-devel mailing list