[Pkg-gnupg-commit] [gnupg2] 20/30: scd: Convey the correct length for Le

Daniel Kahn Gillmor dkg at fifthhorseman.net
Wed Sep 6 21:57:31 UTC 2017


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gnupg2.

commit 45d5f5800afe6613f338a26f361cb5e03e861129
Author: Werner Koch <wk at gnupg.org>
Date:   Sun Aug 27 16:42:52 2017 +0200

    scd: Convey the correct length for Le
    
    * scd/app-openpgp.c (determine_rsa_response): Round bits up.
    --
    
    Co-authored-by: Arnaud Fontaine <arnaud.fontaine at ssi.gouv.fr>
    
    Arnaud wrote:
    
      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 command to retrieve the missing byte, when the
      computed length is wrong.
    
    Note that an value of 65537 for E is pretty standard and thus we can
    avoid the 6101 return code inmost cases.
    
    Signed-off-by: Werner Koch <wk at gnupg.org>
---
 scd/app-openpgp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c
index 365f246..f9d07ac 100644
--- a/scd/app-openpgp.c
+++ b/scd/app-openpgp.c
@@ -943,8 +943,8 @@ determine_rsa_response (app_t app, int keyno)
   int size;
 
   size = 2 + 3 /* header */
-    + 4 /* tag+len */ + app->app_local->keyattr[keyno].rsa.n_bits/8
-    + 2 /* tag+len */ + app->app_local->keyattr[keyno].rsa.e_bits/8;
+    + 4 /* tag+len */ + (app->app_local->keyattr[keyno].rsa.n_bits+7)/8
+    + 2 /* tag+len */ + (app->app_local->keyattr[keyno].rsa.e_bits+7)/8;
 
   return size;
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list