hs_circuit.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* Copyright (c) 2017, The Tor Project, Inc. */
  2. /* See LICENSE for licensing information */
  3. /**
  4. * \file hs_circuit.h
  5. * \brief Header file containing circuit data for the whole HS subsytem.
  6. **/
  7. #ifndef TOR_HS_CIRCUIT_H
  8. #define TOR_HS_CIRCUIT_H
  9. #include "or.h"
  10. #include "crypto.h"
  11. #include "crypto_ed25519.h"
  12. #include "hs_service.h"
  13. /* Circuit API. */
  14. int hs_circ_service_intro_has_opened(hs_service_t *service,
  15. hs_service_intro_point_t *ip,
  16. const hs_service_descriptor_t *desc,
  17. origin_circuit_t *circ);
  18. int hs_circ_launch_intro_point(hs_service_t *service,
  19. const hs_service_intro_point_t *ip,
  20. extend_info_t *ei, time_t now);
  21. /* Cell API. */
  22. void hs_circ_send_establish_intro(const hs_service_t *service,
  23. hs_service_intro_point_t *ip,
  24. origin_circuit_t *circ);
  25. /* e2e circuit API. */
  26. int hs_circuit_setup_e2e_rend_circ(origin_circuit_t *circ,
  27. const uint8_t *ntor_key_seed,
  28. size_t seed_len,
  29. int is_service_side);
  30. int hs_circuit_setup_e2e_rend_circ_legacy_client(origin_circuit_t *circ,
  31. const uint8_t *rend_cell_body);
  32. #endif /* TOR_HS_CIRCUIT_H */