Changes to update Tomato RAF.
[tomato.git] / release / src / router / dnscrypt / src / proxy / dnscrypt_client.h
blobbe33077267716e0fcc1aee97863b213365214d27
2 #ifndef __DNSCRYPT_CLIENT_H__
3 #define __DNSCRYPT_CLIENT_H__ 1
5 #include <sys/types.h>
6 #include <stdint.h>
8 #include "dnscrypt.h"
10 typedef struct DNSCryptClient_ {
11 uint8_t magic_query[DNSCRYPT_MAGIC_QUERY_LEN];
12 uint8_t publickey[crypto_box_PUBLICKEYBYTES];
13 uint8_t secretkey[crypto_box_SECRETKEYBYTES];
14 uint8_t nmkey[crypto_box_BEFORENMBYTES];
15 uint64_t nonce_ts_last;
16 } DNSCryptClient;
18 ssize_t dnscrypt_client_curve(DNSCryptClient * const client,
19 uint8_t client_nonce[crypto_box_HALF_NONCEBYTES],
20 uint8_t *buf, size_t len, const size_t max_len);
22 int dnscrypt_client_uncurve(const DNSCryptClient * const client,
23 const uint8_t client_nonce[crypto_box_HALF_NONCEBYTES],
24 uint8_t * const buf, size_t * const lenp);
26 int dnscrypt_client_init_with_key_pair(DNSCryptClient * const client,
27 const uint8_t client_publickey[crypto_box_PUBLICKEYBYTES],
28 const uint8_t client_secretkey[crypto_box_SECRETKEYBYTES]);
30 int dnscrypt_client_create_key_pair(DNSCryptClient * const client,
31 uint8_t client_publickey[crypto_box_PUBLICKEYBYTES],
32 uint8_t client_secretkey[crypto_box_SECRETKEYBYTES]);
34 int dnscrypt_client_init_with_new_key_pair(DNSCryptClient * const client);
36 int dnscrypt_client_init_magic_query(DNSCryptClient * const client,
37 const uint8_t magic_query[DNSCRYPT_MAGIC_QUERY_LEN]);
39 int dnscrypt_client_init_nmkey(DNSCryptClient * const client,
40 const uint8_t server_publickey[crypto_box_PUBLICKEYBYTES]);
42 int dnscrypt_client_wipe_secretkey(DNSCryptClient * const client);
44 #endif