diff options
author | David Goulet <dgoulet@torproject.org> | 2018-04-24 11:34:31 -0400 |
---|---|---|
committer | David Goulet <dgoulet@torproject.org> | 2018-04-27 11:40:44 -0400 |
commit | bdcf3a383932cc48a360c9a75b93b44a6968171e (patch) | |
tree | a8a690f1337d5529f7b2a4df0b294d889cae17c3 /src/or/shared_random_common.h | |
parent | 2115a54b4ab91d6d573691fc7368fcb8a2db32af (diff) | |
download | tor-bdcf3a383932cc48a360c9a75b93b44a6968171e.tar.gz tor-bdcf3a383932cc48a360c9a75b93b44a6968171e.zip |
sr: Extract shared SR functions
Move most of the shared random functions that are needed outside of the
dirauth module.
At this commit, because dirvote.c hasn't been refactor, it doesn't compile
because some SR functions need a dirvote function.
Furthermore, 5 functions haven't been touched yet because they are dirauth
only but are in used in other C files than the dirauth module ones.
No code behavior change. Only moving code around.
Signed-off-by: David Goulet <dgoulet@torproject.org>
Diffstat (limited to 'src/or/shared_random_common.h')
-rw-r--r-- | src/or/shared_random_common.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/or/shared_random_common.h b/src/or/shared_random_common.h new file mode 100644 index 0000000000..35e08ddf32 --- /dev/null +++ b/src/or/shared_random_common.h @@ -0,0 +1,47 @@ +/* Copyright (c) 2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * \file shared_random_common.h + * \brief Header file for shared_random_common.c. + **/ + +#ifndef TOR_SHARED_RANDOM_COMMON_H +#define TOR_SHARED_RANDOM_COMMON_H + +/* Dirauth module. */ +#include "dirauth/shared_random.h" + +/* Helper functions. */ +void sr_srv_encode(char *dst, size_t dst_len, const sr_srv_t *srv); +int get_voting_interval(void); + +/* Control port functions. */ +char *sr_get_current_for_control(void); +char *sr_get_previous_for_control(void); + +/* SRV functions. */ +const sr_srv_t *sr_get_current(const networkstatus_t *ns); +const sr_srv_t *sr_get_previous(const networkstatus_t *ns); +sr_srv_t *sr_parse_srv(const smartlist_t *args); + +/* + * Shared Random State API + */ + +/* Each protocol phase has 12 rounds */ +#define SHARED_RANDOM_N_ROUNDS 12 +/* Number of phase we have in a protocol. */ +#define SHARED_RANDOM_N_PHASES 2 + +time_t sr_state_get_start_time_of_current_protocol_run(time_t now); +unsigned int sr_state_get_phase_duration(void); +unsigned int sr_state_get_protocol_run_duration(void); +time_t get_start_time_of_current_round(void); + +#ifdef TOR_UNIT_TESTS + +#endif /* TOR_UNIT_TESTS */ + +#endif /* TOR_SHARED_RANDOM_COMMON_H */ + |