aboutsummaryrefslogtreecommitdiffstats
path: root/g10
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2009-07-09 14:54:18 +0000
committerWerner Koch <[email protected]>2009-07-09 14:54:18 +0000
commit31084d6dc9287f6ab113ae0096d971c3e28c4eff (patch)
treeda5896e251fb6cd55a8decc45ee7376ba77750be /g10
parentMarked an entry fuzzy. (diff)
downloadgnupg-31084d6dc9287f6ab113ae0096d971c3e28c4eff.tar.gz
gnupg-31084d6dc9287f6ab113ae0096d971c3e28c4eff.zip
Support writing of existing keys with non-matching key sizes.
Diffstat (limited to 'g10')
-rw-r--r--g10/ChangeLog3
-rw-r--r--g10/card-util.c10
2 files changed, 10 insertions, 3 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 971d4880b..e670afddf 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,5 +1,8 @@
2009-07-09 Werner Koch <[email protected]>
+ * card-util.c (card_store_subkey): Do not restrict to 1024 bit keys.
+ Print an error message on write errors.
+
* gpg.c (main): Remove the SHA-1 default from the personal digest
list. This was used in the past as a hack to avoid preferring
RMD-160.
diff --git a/g10/card-util.c b/g10/card-util.c
index 26349d653..f825034b6 100644
--- a/g10/card-util.c
+++ b/g10/card-util.c
@@ -1,5 +1,5 @@
/* card-util.c - Utility functions for the OpenPGP card.
- * Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+ * Copyright (C) 2003, 2004, 2005, 2009 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -1393,7 +1393,8 @@ card_store_subkey (KBNODE node, int use)
show_card_key_info (&info);
- if (!is_RSA (sk->pubkey_algo) || nbits_from_sk (sk) != 1024 )
+ if (!is_RSA (sk->pubkey_algo)
+ || (!info.is_v2 && nbits_from_sk (sk) != 1024) )
{
tty_printf ("You may only store a 1024 bit RSA key on the card\n");
tty_printf ("\n");
@@ -1461,7 +1462,10 @@ card_store_subkey (KBNODE node, int use)
rc = save_unprotected_key_to_card (sk, keyno);
if (rc)
- goto leave;
+ {
+ log_error (_("error writing key to card: %s\n"), gpg_strerror (rc));
+ goto leave;
+ }
/* Get back to the maybe protected original secret key. */
if (copied_sk)