1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-04-17 15:44:34 +02:00

Force SHA1 only for v1 cards

This commit is contained in:
Werner Koch 2010-03-26 18:11:30 +00:00
parent 5bcd4f613b
commit b0a357ad8a
2 changed files with 14 additions and 6 deletions

View File

@ -4,6 +4,11 @@
succeeded, so we can't lose data when using gpg in a pipeline. succeeded, so we can't lose data when using gpg in a pipeline.
Fixes bug #1207. Fixes bug #1207.
2010-02-25 Werner Koch <wk@g10code.com>
* sign.c (hash_for): Force SHA1 only for v1 OpenPGP cards. Fixes
bug#1194.
2010-02-17 Werner Koch <wk@g10code.com> 2010-02-17 Werner Koch <wk@g10code.com>
* keygen.c (ask_user_id): Avoid infinite loop in case of invalid * keygen.c (ask_user_id): Avoid infinite loop in case of invalid

View File

@ -1,6 +1,6 @@
/* sign.c - sign data /* sign.c - sign data
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
* 2007 Free Software Foundation, Inc. * 2007, 2010 Free Software Foundation, Inc.
* *
* This file is part of GnuPG. * This file is part of GnuPG.
* *
@ -414,12 +414,15 @@ hash_for(PKT_secret_key *sk)
return match_dsa_hash(qbytes); return match_dsa_hash(qbytes);
} }
else if(sk->is_protected && sk->protect.s2k.mode==1002) else if (sk->is_protected && sk->protect.s2k.mode == 1002
&& sk->protect.ivlen == 16
&& !memcmp (sk->protect.iv, "\xD2\x76\x00\x01\x24\x01\x01", 7))
{ {
/* The sk lives on a smartcard, and current smartcards only /* The sk lives on a smartcard, and old smartcards only handle
handle SHA-1 and RIPEMD/160. This is correct now, but may SHA-1 and RIPEMD/160. Newer smartcards (v2.0) don't have
need revision as the cards add algorithms. */ this restriction anymore. Fortunately the serial number
encodes the version of the card and thus we know that this
key is on a v1 card. */
if(opt.personal_digest_prefs) if(opt.personal_digest_prefs)
{ {
prefitem_t *prefs; prefitem_t *prefs;