relay_crypto.h 1.0 KB

12345678910111213141516171819202122232425262728293031
  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-2019, The Tor Project, Inc. */
  5. /* See LICENSE for licensing information */
  6. /**
  7. * \file relay.h
  8. * \brief Header file for relay.c.
  9. **/
  10. #ifndef TOR_RELAY_CRYPTO_H
  11. #define TOR_RELAY_CRYPTO_H
  12. int relay_crypto_init(relay_crypto_t *crypto,
  13. const char *key_data, size_t key_data_len,
  14. int reverse, int is_hs_v3);
  15. int relay_decrypt_cell(circuit_t *circ, cell_t *cell,
  16. cell_direction_t cell_direction,
  17. crypt_path_t **layer_hint, char *recognized);
  18. void relay_encrypt_cell_outbound(cell_t *cell, origin_circuit_t *or_circ,
  19. crypt_path_t *layer_hint);
  20. void relay_encrypt_cell_inbound(cell_t *cell, or_circuit_t *or_circ);
  21. void relay_crypto_clear(relay_crypto_t *crypto);
  22. void relay_crypto_assert_ok(const relay_crypto_t *crypto);
  23. #endif /* !defined(TOR_RELAY_CRYPTO_H) */