1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-23 10:29:58 +01:00
gnupg/g10/trustdb.h

97 lines
3.6 KiB
C
Raw Normal View History

1998-01-12 10:18:17 +00:00
/* trustdb.h - Trust database
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
* 2005 Free Software Foundation, Inc.
1998-01-12 10:18:17 +00:00
*
* This file is part of GnuPG.
1998-01-12 10:18:17 +00:00
*
* GnuPG is free software; you can redistribute it and/or modify
1998-01-12 10:18:17 +00:00
* it under the terms of the GNU General Public License as published by
2007-10-23 10:48:09 +00:00
* the Free Software Foundation; either version 3 of the License, or
1998-01-12 10:18:17 +00:00
* (at your option) any later version.
*
* GnuPG is distributed in the hope that it will be useful,
1998-01-12 10:18:17 +00:00
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
2007-10-23 10:48:09 +00:00
* along with this program; if not, see <http://www.gnu.org/licenses/>.
1998-01-12 10:18:17 +00:00
*/
2002-06-29 13:46:34 +00:00
#ifndef G10_TRUSTDB_H
#define G10_TRUSTDB_H
1998-01-12 10:18:17 +00:00
/* Trust values must be sorted in ascending order */
#define TRUST_MASK 15
2002-06-29 13:46:34 +00:00
#define TRUST_UNKNOWN 0 /* o: not yet calculated/assigned */
1998-05-29 11:53:54 +00:00
#define TRUST_EXPIRED 1 /* e: calculation may be invalid */
#define TRUST_UNDEFINED 2 /* q: not enough information for calculation */
#define TRUST_NEVER 3 /* n: never trust this pubkey */
#define TRUST_MARGINAL 4 /* m: marginally trusted */
#define TRUST_FULLY 5 /* f: fully trusted */
#define TRUST_ULTIMATE 6 /* u: ultimately trusted */
/* trust values not covered by the mask */
1998-05-29 11:53:54 +00:00
#define TRUST_FLAG_REVOKED 32 /* r: revoked */
2002-06-29 13:46:34 +00:00
#define TRUST_FLAG_SUB_REVOKED 64 /* r: revoked but for subkeys */
#define TRUST_FLAG_DISABLED 128 /* d: key/uid disabled */
2002-06-29 13:46:34 +00:00
#define TRUST_FLAG_PENDING_CHECK 256 /* a check-trustdb is pending */
1998-08-05 16:51:59 +00:00
#define NAMEHASH_HASH DIGEST_ALGO_RMD160
#define NAMEHASH_LEN 20
1998-01-12 10:18:17 +00:00
/*-- trustdb.c --*/
void register_trusted_keyid(u32 *keyid);
void register_trusted_key( const char *string );
2002-06-29 13:46:34 +00:00
void check_trustdb (void);
void update_trustdb (void);
int setup_trustdb( int level, const char *dbname );
void init_trustdb( void );
void check_trustdb_stale(void);
void sync_trustdb( void );
2002-06-29 13:46:34 +00:00
const char *uid_trust_string_fixed(PKT_public_key *key,PKT_user_id *uid);
const char *trust_value_to_string (unsigned int value);
int string_to_trust_value (const char *str);
2002-06-29 13:46:34 +00:00
void revalidation_mark (void);
int trustdb_pending_check(void);
void trustdb_check_or_update(void);
2002-06-29 13:46:34 +00:00
* trustdb.h, trustdb.c (is_disabled), gpgv.c (is_disabled): Rename is_disabled to cache_disabled_value, which now takes a pk and not just the keyid. This is for speed since there is no need to re-fetch a key when we already have that key handy. Cache the result of the check so we don't need to hit the trustdb more than once. * getkey.c (skip_disabled): New function to get a pk and call is_disabled on it. (key_byname): Use it here. * packet.h, getkey.c (skip_disabled), keylist.c (print_capabilities): New "pk_is_disabled" macro to retrieve the cached disabled value if available, and fill it in via cache_disabled_value if not available. * trustdb.c (get_validity): Cache the disabled value since we have it handy and it might be useful later. * parse-packet.c (parse_key): Clear disabled flag when parsing a new key. Just in case someone forgets to clear the whole key. * getkey.c (merge_selfsigs_main): Add an "if all else fails" path for setting a single user ID primary when there are multiple set primaries all at the same second, or no primaries set and the most recent user IDs are at the same second, or no signed user IDs at all. This is arbitrary, but deterministic. * exec.h, photoid.h: Add copyright message. * keylist.c (list_keyblock_print): Don't dump attribs for revoked/expired/etc uids for non-colon key listings. This is for consistency with --show-photos. * main.h, keylist.c (dump_attribs), mainproc.c (check_sig_and_print): Dump attribs if --attrib-fd is set when verifying signatures. * g10.c (main): New --gnupg option to disable the various --openpgp, --pgpX, etc. options. This is the same as --no-XXXX for those options. * revoke.c (ask_revocation_reason): Clear old reason if user elects to repeat question. This is bug 153. * keyedit.c (sign_uids): Show keyid of the key making the signature.
2003-05-21 16:42:22 +00:00
int cache_disabled_value(PKT_public_key *pk);
unsigned int get_validity (PKT_public_key *pk, PKT_user_id *uid);
int get_validity_info (PKT_public_key *pk, PKT_user_id *uid);
const char *get_validity_string (PKT_public_key *pk, PKT_user_id *uid);
2002-06-29 13:46:34 +00:00
void list_trust_path( const char *username );
int enum_cert_paths( void **context, ulong *lid,
unsigned *ownertrust, unsigned *validity );
void enum_cert_paths_print( void **context, FILE *fp,
int refresh, ulong selected_lid );
2002-06-29 13:46:34 +00:00
void read_trust_options(byte *trust_model,ulong *created,ulong *nextcheck,
byte *marginals,byte *completes,byte *cert_depth);
2002-06-29 13:46:34 +00:00
unsigned int get_ownertrust (PKT_public_key *pk);
unsigned int get_min_ownertrust (PKT_public_key *pk);
2002-06-29 13:46:34 +00:00
int get_ownertrust_info (PKT_public_key *pk);
const char *get_ownertrust_string (PKT_public_key *pk);
2002-06-29 13:46:34 +00:00
void update_ownertrust (PKT_public_key *pk, unsigned int new_trust );
int clear_ownertrusts (PKT_public_key *pk);
2002-06-29 13:46:34 +00:00
void clean_one_uid(KBNODE keyblock,KBNODE uidnode,int noisy,int self_only,
int *uids_cleaned,int *sigs_cleaned);
void clean_key(KBNODE keyblock,int noisy,int self_only,
int *uids_cleaned,int *sigs_cleaned);
/*-- tdbdump.c --*/
void list_trustdb(const char *username);
void export_ownertrust(void);
void import_ownertrust(const char *fname);
1998-01-12 10:18:17 +00:00
1998-07-30 17:37:03 +00:00
/*-- pkclist.c --*/
2002-06-29 13:46:34 +00:00
int edit_ownertrust (PKT_public_key *pk, int mode );
1998-07-30 17:37:03 +00:00
2002-06-29 13:46:34 +00:00
#endif /*G10_TRUSTDB_H*/