lokinet/include/llarp/router_contact.h

58 lines
1.2 KiB
C
Raw Normal View History

2018-01-25 16:24:33 +00:00
#ifndef LLARP_RC_H
#define LLARP_RC_H
#include <llarp/address_info.h>
#include <llarp/crypto.h>
2018-01-29 14:27:24 +00:00
#include <llarp/exit_info.h>
2018-01-25 16:24:33 +00:00
#ifdef __cplusplus
extern "C" {
#endif
2018-05-20 17:45:47 +00:00
const size_t MAX_RC_SIZE = 1024;
struct llarp_rc
{
2018-01-29 14:27:24 +00:00
struct llarp_ai_list *addrs;
llarp_pubkey_t pubkey;
struct llarp_xi_list *exits;
llarp_sig_t signature;
2018-05-21 12:44:28 +00:00
uint64_t last_updated;
2018-01-29 14:27:24 +00:00
};
bool
llarp_rc_bdecode(struct llarp_rc *rc, llarp_buffer_t *buf);
bool
llarp_rc_bencode(struct llarp_rc *rc, llarp_buffer_t *buf);
void
llarp_rc_free(struct llarp_rc *rc);
bool
llarp_rc_verify_sig(struct llarp_crypto *crypto, struct llarp_rc *rc);
void
2018-06-01 21:35:17 +00:00
llarp_rc_copy(struct llarp_rc *dst, const struct llarp_rc *src);
2018-01-25 16:24:33 +00:00
2018-05-22 19:19:06 +00:00
void
llarp_rc_set_addrs(struct llarp_rc *rc, struct llarp_alloc *mem,
struct llarp_ai_list *addr);
void
llarp_rc_set_pubkey(struct llarp_rc *rc, uint8_t *pubkey);
void
llarp_rc_sign(struct llarp_crypto *crypto, const byte_t *seckey,
struct llarp_rc *rc);
void
llarp_rc_clear(struct llarp_rc *rc);
bool
llarp_rc_addr_list_iter(struct llarp_ai_list_iter *iter, struct llarp_ai *ai);
bool
llarp_rc_write(struct llarp_rc *rc, const char *our_rc_file);
2018-01-25 16:24:33 +00:00
#ifdef __cplusplus
}
#endif
#endif