1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-01-02 12:01:32 +01:00

Obsolete option --no-sig-create-check.

* cipher/rsa.c (rsa_sign): Verify after sign.
* g10/gpg.c (opts): Make --no-sig-create-check a NOP.
* g10/options.h (opt): Remove field "no_sig_create_check".
* g10/sign.c (do_sign): Do check only for DSA.

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2015-08-31 23:55:16 +02:00
parent ae38cbbca4
commit ae61f01523
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
5 changed files with 19 additions and 15 deletions

View File

@ -452,6 +452,9 @@ int
rsa_sign( int algo, MPI *resarr, MPI data, MPI *skey )
{
RSA_secret_key sk;
RSA_public_key pk;
MPI cres;
int rc;
if( algo != 1 && algo != 3 )
return G10ERR_PUBKEY_ALGO;
@ -465,7 +468,15 @@ rsa_sign( int algo, MPI *resarr, MPI data, MPI *skey )
resarr[0] = mpi_alloc( mpi_get_nlimbs( sk.n ) );
secret( resarr[0], data, &sk );
return 0;
/* Check for a failure in secret(). */
cres = mpi_alloc ( mpi_nlimb_hint_from_nbits (160) );
pk.n = sk.n;
pk.e = sk.e;
public (cres, resarr[0], &pk);
rc = mpi_cmp (cres, data)? G10ERR_BAD_SIGN : 0;
mpi_free (cres);
return rc;
}
int

View File

@ -1625,12 +1625,7 @@ can be done if someone else has write access to your public keyring.
@item --no-sig-create-check
@opindex no-sig-create-check
GnuPG normally verifies each signature right after creation to protect
against bugs and hardware malfunctions which could leak out bits from
the secret key. This extra verification needs some time (about 115%
for DSA keys), and so this option can be used to disable it.
However, due to the fact that the signature creation needs manual
interaction, this performance penalty does not matter in most settings.
This options is obsolete. It has no function.
@item --auto-check-trustdb
@itemx --no-auto-check-trustdb

View File

@ -336,7 +336,6 @@ enum cmd_and_opt_values
oNoExpensiveTrustChecks,
oFixedListMode,
oNoSigCache,
oNoSigCreateCheck,
oAutoCheckTrustDB,
oNoAutoCheckTrustDB,
oPreservePermissions,
@ -673,7 +672,7 @@ static ARGPARSE_OPTS opts[] = {
{ oAutoKeyRetrieve, "auto-key-retrieve", 0, "@" },
{ oNoAutoKeyRetrieve, "no-auto-key-retrieve", 0, "@" },
{ oNoSigCache, "no-sig-cache", 0, "@" },
{ oNoSigCreateCheck, "no-sig-create-check", 0, "@" },
{ oNoop, "no-sig-create-check", 0, "@" },
{ oAutoCheckTrustDB, "auto-check-trustdb", 0, "@"},
{ oNoAutoCheckTrustDB, "no-auto-check-trustdb", 0, "@"},
{ oMergeOnly, "merge-only", 0, "@" },
@ -2716,7 +2715,6 @@ main (int argc, char **argv )
disable_pubkey_algo( string_to_pubkey_algo(pargs.r.ret_str) );
break;
case oNoSigCache: opt.no_sig_cache = 1; break;
case oNoSigCreateCheck: opt.no_sig_create_check = 1; break;
case oAllowNonSelfsignedUID: opt.allow_non_selfsigned_uid = 1; break;
case oNoAllowNonSelfsignedUID: opt.allow_non_selfsigned_uid=0; break;
case oAllowFreeformUID: opt.allow_freeform_uid = 1; break;

View File

@ -194,7 +194,6 @@ struct
int try_all_secrets;
int no_expensive_trust_checks;
int no_sig_cache;
int no_sig_create_check;
int no_auto_check_trustdb;
int preserve_permissions;
int no_homedir_creation;

View File

@ -291,10 +291,11 @@ do_sign( PKT_secret_key *sk, PKT_signature *sig,
mpi_free(frame);
}
if (!rc && !opt.no_sig_create_check) {
/* check that the signature verification worked and nothing is
* fooling us e.g. by a bug in the signature create
* code or by deliberately introduced faults. */
if (!rc && is_DSA (sk->pubkey_algo)) {
/* Check that the signature verification worked and nothing is
* fooling us e.g. by a bug in the signature create code or by
* deliberately introduced faults. We don't do this for RSA
* because that is done at a lower layer. */
PKT_public_key *pk = xmalloc_clear (sizeof *pk);
if( get_pubkey( pk, sig->keyid ) )