aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Shaw <[email protected]>2005-10-11 22:13:49 +0000
committerDavid Shaw <[email protected]>2005-10-11 22:13:49 +0000
commit47433adaa56339dbc28c60b9f800fe1522312ad2 (patch)
treef27b972c447a3284f9f23c5c920e0d8d2736ce11
parentYet another fix for the gpg.c rename (diff)
downloadgnupg-47433adaa56339dbc28c60b9f800fe1522312ad2.tar.gz
gnupg-47433adaa56339dbc28c60b9f800fe1522312ad2.zip
* getkey.c (merge_selfsigs_subkey), sig-check.c (signature_check2),
keygen.c (make_backsig): Did some backsig interop testing with the PGP folks. All is well, so I'm turning generation of backsigs on for new keys. Checking for backsigs on verification is still off.
Diffstat (limited to '')
-rw-r--r--ChangeLog6
-rw-r--r--configure.ac8
-rw-r--r--g10/ChangeLog8
-rw-r--r--g10/getkey.c10
-rw-r--r--g10/keygen.c20
-rw-r--r--g10/sig-check.c7
6 files changed, 35 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index 297f98cfc..020e1663d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-10-11 David Shaw <[email protected]>
+
+ * configure.ac: Did some backsig testing with the PGP folks. All
+ is well, so I'm turning generation of backsigs on for new keys.
+ Checking for backsigs on verification is still off.
+
2005-10-05 Werner Koch <[email protected]>
* configure.ac: Changed identification file name to g10/gpg.c
diff --git a/configure.ac b/configure.ac
index 484c1a913..d77d4eaca 100644
--- a/configure.ac
+++ b/configure.ac
@@ -129,10 +129,10 @@ AC_ARG_ENABLE(gnupg-iconv,
gnupg_use_iconv=$enableval, gnupg_use_iconv=yes)
AC_MSG_RESULT($gnupg_use_iconv)
-AC_MSG_CHECKING([whether to enable the experimental backsigs code])
+AC_MSG_CHECKING([whether to require signing subkeys to have back signatures])
AC_ARG_ENABLE(backsigs,
AC_HELP_STRING([--enable-backsigs],
- [enable the experimental backsigs code]),
+ [require signing subkeys to have back signatures]),
do_backsigs=$enableval, do_backsigs=no)
AC_MSG_RESULT($do_backsigs)
@@ -757,8 +757,8 @@ if test "$gnupg_use_iconv" = yes ; then
AC_DEFINE(USE_GNUPG_ICONV,1,[Define to use the new iconv based code])
fi
-if test "$do_backsigs" = yes ; then
- AC_DEFINE(DO_BACKSIGS,1,[Define to enable the experimental backsigs code])
+if test "$do_backsigs" = no ; then
+ AC_DEFINE(FAKE_BACKSIGS,1,[Define to fake missing backsigs])
fi
AM_CONDITIONAL(ENABLE_CARD_SUPPORT, test "$card_support" = yes)
diff --git a/g10/ChangeLog b/g10/ChangeLog
index c5992a0a0..9410b27bb 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,11 @@
+2005-10-11 David Shaw <[email protected]>
+
+ * getkey.c (merge_selfsigs_subkey), sig-check.c
+ (signature_check2), keygen.c (make_backsig): Did some backsig
+ interop testing with the PGP folks. All is well, so I'm turning
+ generation of backsigs on for new keys. Checking for backsigs on
+ verification is still off.
+
2005-10-05 Werner Koch <[email protected]>
* g10.c: Renamed to ..
diff --git a/g10/getkey.c b/g10/getkey.c
index 07bdfcbd7..864c8bfb7 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -2043,10 +2043,6 @@ merge_selfsigs_subkey( KBNODE keyblock, KBNODE subnode )
subpk->is_valid = 1;
-#ifndef DO_BACKSIGS
- /* Pretend the backsig is present and accounted for. */
- subpk->backsig=2;
-#else
/* Find the first 0x19 embedded signature on our self-sig. */
if(subpk->backsig==0)
{
@@ -2086,6 +2082,12 @@ merge_selfsigs_subkey( KBNODE keyblock, KBNODE subnode )
free_seckey_enc(backsig);
}
}
+
+#ifdef FAKE_BACKSIGS
+ /* If there is no backsig, pretend there is a valid one. If there
+ is a backsig (or an invalid backsig), use it. */
+ if(subpk->backsig==0)
+ subpk->backsig=2;
#endif
}
diff --git a/g10/keygen.c b/g10/keygen.c
index 3bf5af48b..72df993c0 100644
--- a/g10/keygen.c
+++ b/g10/keygen.c
@@ -712,25 +712,17 @@ keygen_add_revkey(PKT_signature *sig, void *opaque)
}
static int
-make_backsig(PKT_signature *sig, PKT_public_key *pk,
- PKT_public_key *sub_pk, PKT_secret_key *sub_sk)
+make_backsig(PKT_signature *sig,PKT_public_key *pk,
+ PKT_public_key *sub_pk,PKT_secret_key *sub_sk)
{
PKT_signature *backsig;
int rc;
-#ifndef DO_BACKSIGS
- /* This is not enabled yet, as I want to get a bit closer to RFC day
- before enabling this. I've been burned before :) */
+ cache_public_key(sub_pk);
- return 0;
-#endif
-
- cache_public_key (sub_pk);
-
- rc=make_keysig_packet(&backsig,pk,NULL,sub_pk,sub_sk, 0x19, 0, 0, 0, 0,
- NULL,NULL);
- if( rc )
- log_error("make_keysig_packet failed for backsig: %s\n", g10_errstr(rc) );
+ rc=make_keysig_packet(&backsig,pk,NULL,sub_pk,sub_sk,0x19,0,0,0,0,NULL,NULL);
+ if(rc)
+ log_error("make_keysig_packet failed for backsig: %s\n",g10_errstr(rc));
else
{
/* get it into a binary packed form. */
diff --git a/g10/sig-check.c b/g10/sig-check.c
index 606c38d0b..80bfeb94c 100644
--- a/g10/sig-check.c
+++ b/g10/sig-check.c
@@ -100,8 +100,11 @@ signature_check2( PKT_signature *sig, MD_HANDLE digest, u32 *r_expiredate,
log_info(_("WARNING: signing subkey %s is not"
" cross-certified\n"),keystr_from_pk(pk));
else
- log_info(_("WARNING: signing subkey %s has an invalid"
- " cross-certification\n"),keystr_from_pk(pk));
+ {
+ log_info(_("WARNING: signing subkey %s has an invalid"
+ " cross-certification\n"),keystr_from_pk(pk));
+ rc=G10ERR_GENERAL;
+ }
}
}