tor  0.4.1.0-alpha-dev
authcert.h
Go to the documentation of this file.
1 /* Copyright (c) 2001-2004, Roger Dingledine.
2  * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
3  * Copyright (c) 2007-2019, The Tor Project, Inc. */
4 /* See LICENSE for licensing information */
5 
11 #ifndef TOR_AUTHCERT_H
12 #define TOR_AUTHCERT_H
13 
15 
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);
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);
45 
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
void trusted_dirs_flush_certs_to_disk(void)
Definition: authcert.c:501
authority_cert_t * authority_cert_get_by_sk_digest(const char *sk_digest)
Definition: authcert.c:623
void authority_cert_get_all(smartlist_t *certs_out)
Definition: authcert.c:666
int authority_cert_dl_looks_uncertain(const char *id_digest)
Definition: authcert.c:765
void authority_cert_free_(authority_cert_t *cert)
Definition: authcert.c:1164
void authority_cert_dl_failed(const char *id_digest, const char *signing_key_digest, int status)
Definition: authcert.c:683
authority_cert_t * authority_cert_get_newest_by_id(const char *id_digest)
Definition: authcert.c:603
authority_cert_t * authority_cert_get_by_digests(const char *id_digest, const char *sk_digest)
Definition: authcert.c:650
int authority_cert_is_blacklisted(const authority_cert_t *cert)
Definition: authcert.c:746
void trusted_dirs_remove_old_certs(void)
Definition: authcert.c:550
Macros to implement mocking and selective exposure for the test code.
#define MOCK_DECL(rv, funcname, arglist)
Definition: testsupport.h:94
int trusted_dirs_reload_certs(void)
Definition: authcert.c:324
void authority_certs_fetch_missing(networkstatus_t *status, time_t now, const char *dir_hint)
Definition: authcert.c:855
int trusted_dirs_load_certs_from_string(const char *contents, int source, int flush, const char *source_dir)
Definition: authcert.c:373