tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

authcert.h (2406B)


      1 /* Copyright (c) 2001-2004, Roger Dingledine.
      2 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
      3 * Copyright (c) 2007-2021, The Tor Project, Inc. */
      4 /* See LICENSE for licensing information */
      5 
      6 /**
      7 * \file authcert.h
      8 * \brief Header file for authcert.c
      9 **/
     10 
     11 #ifndef TOR_AUTHCERT_H
     12 #define TOR_AUTHCERT_H
     13 
     14 #include "lib/testsupport/testsupport.h"
     15 
     16 int trusted_dirs_reload_certs(void);
     17 
     18 /*
     19 * Pass one of these as source to trusted_dirs_load_certs_from_string()
     20 * to indicate whence string originates; this controls error handling
     21 * behavior such as marking downloads as failed.
     22 */
     23 
     24 #define TRUSTED_DIRS_CERTS_SRC_SELF 0
     25 #define TRUSTED_DIRS_CERTS_SRC_FROM_STORE 1
     26 #define TRUSTED_DIRS_CERTS_SRC_DL_BY_ID_DIGEST 2
     27 #define TRUSTED_DIRS_CERTS_SRC_DL_BY_ID_SK_DIGEST 3
     28 #define TRUSTED_DIRS_CERTS_SRC_FROM_VOTE 4
     29 
     30 int trusted_dirs_load_certs_from_string(const char *contents, int source,
     31                                        int flush, const char *source_dir);
     32 void trusted_dirs_remove_old_certs(void);
     33 void trusted_dirs_flush_certs_to_disk(void);
     34 authority_cert_t *authority_cert_get_newest_by_id(const char *id_digest);
     35 authority_cert_t *authority_cert_get_by_sk_digest(const char *sk_digest);
     36 authority_cert_t *authority_cert_get_by_digests(const char *id_digest,
     37                                                const char *sk_digest);
     38 void authority_cert_get_all(smartlist_t *certs_out);
     39 void authority_cert_dl_failed(const char *id_digest,
     40                              const char *signing_key_digest, int status);
     41 void authority_certs_fetch_missing(networkstatus_t *status, time_t now,
     42                                   const char *dir_hint);
     43 int authority_cert_dl_looks_uncertain(const char *id_digest);
     44 int authority_cert_is_denylisted(const authority_cert_t *cert);
     45 
     46 void authority_cert_free_(authority_cert_t *cert);
     47 #define authority_cert_free(cert) \
     48  FREE_AND_NULL(authority_cert_t, authority_cert_free_, (cert))
     49 
     50 MOCK_DECL(smartlist_t *, list_authority_ids_with_downloads, (void));
     51 MOCK_DECL(download_status_t *, id_only_download_status_for_authority_id,
     52          (const char *digest));
     53 MOCK_DECL(smartlist_t *, list_sk_digests_for_authority_id,
     54          (const char *digest));
     55 MOCK_DECL(download_status_t *, download_status_for_authority_id_and_sk,
     56    (const char *id_digest, const char *sk_digest));
     57 
     58 void authcert_free_all(void);
     59 
     60 #endif /* !defined(TOR_AUTHCERT_H) */