mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
gpg: Fix (quick) key generation with --always-trust.
* g10/keygen.c (do_generate_keypair): Only update the ownertrust if we do have a trust database. * g10/trustdb.c (have_trustdb): New function. * g10/trustdb.h (have_trustdb): New prototype. * tests/openpgp/quick-key-manipulation.scm: Remove workaround. GnuPG-bug-id: 2695 Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
parent
d6f0f36876
commit
4735ab96aa
@ -4791,8 +4791,9 @@ do_generate_keypair (ctrl_t ctrl, struct para_data_s *para,
|
|||||||
keyid_from_pk (pk, pk->main_keyid);
|
keyid_from_pk (pk, pk->main_keyid);
|
||||||
register_trusted_keyid (pk->main_keyid);
|
register_trusted_keyid (pk->main_keyid);
|
||||||
|
|
||||||
update_ownertrust (pk, ((get_ownertrust (pk) & ~TRUST_MASK)
|
if (have_trustdb ())
|
||||||
| TRUST_ULTIMATE ));
|
update_ownertrust (pk, ((get_ownertrust (pk) & ~TRUST_MASK)
|
||||||
|
| TRUST_ULTIMATE ));
|
||||||
|
|
||||||
gen_standard_revoke (pk, cache_nonce);
|
gen_standard_revoke (pk, cache_nonce);
|
||||||
|
|
||||||
|
@ -511,6 +511,16 @@ init_trustdb (int no_create)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Check whether we have a trust database, initializing it if
|
||||||
|
necessary if the trust model is not 'always trust'. Returns true
|
||||||
|
if we do have a usable trust database. */
|
||||||
|
int
|
||||||
|
have_trustdb (void)
|
||||||
|
{
|
||||||
|
return init_trustdb (opt.trust_model == TM_ALWAYS) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
* Recreate the WoT but do not ask for new ownertrusts. Special
|
* Recreate the WoT but do not ask for new ownertrusts. Special
|
||||||
* feature: In batch mode and without a forced yes, this is only done
|
* feature: In batch mode and without a forced yes, this is only done
|
||||||
|
@ -128,6 +128,7 @@ int setup_trustdb( int level, const char *dbname );
|
|||||||
void how_to_fix_the_trustdb (void);
|
void how_to_fix_the_trustdb (void);
|
||||||
const char *trust_model_string (int model);
|
const char *trust_model_string (int model);
|
||||||
gpg_error_t init_trustdb (int no_create);
|
gpg_error_t init_trustdb (int no_create);
|
||||||
|
int have_trustdb (void);
|
||||||
void tdb_check_trustdb_stale (ctrl_t ctrl);
|
void tdb_check_trustdb_stale (ctrl_t ctrl);
|
||||||
void sync_trustdb( void );
|
void sync_trustdb( void );
|
||||||
|
|
||||||
|
@ -21,10 +21,6 @@
|
|||||||
(load (with-path "time.scm"))
|
(load (with-path "time.scm"))
|
||||||
(setup-environment)
|
(setup-environment)
|
||||||
|
|
||||||
;; XXX because of --always-trust, the trustdb is not created.
|
|
||||||
;; Therefore, we redefine GPG without --always-trust.
|
|
||||||
(define GPG `(,(tool 'gpg) --no-permission-warning))
|
|
||||||
|
|
||||||
(define (exact id)
|
(define (exact id)
|
||||||
(string-append "=" id))
|
(string-append "=" id))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user