routerparse.h (2364B)
1 /* Copyright (c) 2001 Matej Pfajfar. 2 * Copyright (c) 2001-2004, Roger Dingledine. 3 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. 4 * Copyright (c) 2007-2021, The Tor Project, Inc. */ 5 /* See LICENSE for licensing information */ 6 7 /** 8 * \file routerparse.h 9 * \brief Header file for routerparse.c. 10 **/ 11 12 #ifndef TOR_ROUTERPARSE_H 13 #define TOR_ROUTERPARSE_H 14 15 #include "lib/testsupport/testsupport.h" 16 17 int router_get_router_hash(const char *s, size_t s_len, char *digest); 18 int router_get_extrainfo_hash(const char *s, size_t s_len, char *digest); 19 20 int router_parse_list_from_string(const char **s, const char *eos, 21 smartlist_t *dest, 22 saved_location_t saved_location, 23 int is_extrainfo, 24 int allow_annotations, 25 const char *prepend_annotations, 26 smartlist_t *invalid_digests_out); 27 28 routerinfo_t *router_parse_entry_from_string(const char *s, const char *end, 29 int cache_copy, 30 int allow_annotations, 31 const char *prepend_annotations, 32 int *can_dl_again_out); 33 struct digest_ri_map_t; 34 extrainfo_t *extrainfo_parse_entry_from_string(const char *s, const char *end, 35 int cache_copy, struct digest_ri_map_t *routermap, 36 int *can_dl_again_out); 37 38 int find_single_ipv6_orport(const smartlist_t *list, 39 tor_addr_t *addr_out, 40 uint16_t *port_out); 41 42 void routerparse_init(void); 43 void routerparse_free_all(void); 44 45 #ifdef ROUTERDESC_TOKEN_TABLE_PRIVATE 46 #include "feature/dirparse/parsecommon.h" 47 extern const struct token_rule_t routerdesc_token_table[]; 48 #endif 49 50 #define ED_DESC_SIGNATURE_PREFIX "Tor router descriptor signature v1" 51 52 #ifdef ROUTERPARSE_PRIVATE 53 STATIC int check_one_family_cert(const uint8_t *cert_body, 54 size_t cert_body_size, 55 const struct ed25519_public_key_t *identity_key, 56 char **family_id_out, 57 time_t *family_expiration_out); 58 #endif 59 60 #endif /* !defined(TOR_ROUTERPARSE_H) */