2018-06-20 14:13:28 +02:00
|
|
|
/* Copyright (c) 2018-2018, The Tor Project, Inc. */
|
2018-04-24 17:34:31 +02:00
|
|
|
/* See LICENSE for licensing information */
|
|
|
|
|
|
|
|
/**
|
2018-05-01 17:31:33 +02:00
|
|
|
* \file shared_random_client.h
|
|
|
|
* \brief Header file for shared_random_client.c.
|
2018-04-24 17:34:31 +02:00
|
|
|
**/
|
|
|
|
|
2018-05-01 17:31:33 +02:00
|
|
|
#ifndef TOR_SHARED_RANDOM_CLIENT_H
|
|
|
|
#define TOR_SHARED_RANDOM_CLIENT_H
|
2018-04-24 17:34:31 +02:00
|
|
|
|
|
|
|
/* Dirauth module. */
|
2018-06-20 15:35:05 +02:00
|
|
|
#include "or/dirauth/shared_random.h"
|
2018-04-24 17:34:31 +02:00
|
|
|
|
|
|
|
/* 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 */
|
|
|
|
|
2018-05-01 17:31:33 +02:00
|
|
|
#endif /* TOR_SHARED_RANDOM_CLIENT_H */
|
2018-04-24 17:34:31 +02:00
|
|
|
|