ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
src/web/client.h
Go to the documentation of this file.
1
2#pragma once
3
4#include <stdbool.h>
5#include <stddef.h>
6#include <stdint.h>
8
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15int client_init(void);
16int client_opus_encoder_init(int sample_rate, int channels, int bitrate);
17int client_opus_decoder_init(int sample_rate, int channels);
18int client_opus_encode(const int16_t *pcm_data, int frame_size, uint8_t *opus_data, int max_opus_bytes);
19int client_opus_decode(const uint8_t *opus_data, int opus_bytes, int16_t *pcm_data, int frame_size, int decode_fec);
22int client_set_server_address(const char *server_host, int server_port);
24int client_handle_crypto_parameters(const uint8_t *packet, size_t packet_len);
25int client_handle_key_exchange_init(const uint8_t *packet, size_t packet_len);
26int client_handle_auth_challenge(const uint8_t *packet, size_t packet_len);
27int client_handle_handshake_complete(const uint8_t *packet, size_t packet_len);
28asciichat_error_t client_handshake_receive(uint32_t type, const void *payload, size_t length);
29asciichat_error_t client_acds_handshake_receive(uint32_t type, const void *payload, size_t length);
30int client_encrypt_packet(const uint8_t *plaintext, size_t plaintext_len, uint8_t *ciphertext, size_t ciphertext_size,
31 size_t *out_len);
32int client_decrypt_packet(const uint8_t *ciphertext, size_t ciphertext_len, uint8_t *plaintext, size_t plaintext_size,
33 size_t *out_len);
34asciichat_error_t client_settings_receive(const void *payload, size_t length);
35char *client_settings_values(void);
37 uint32_t checksum, uint32_t flags, const void *metadata,
38 size_t metadata_length);
39asciichat_error_t client_decode_frame_data(const void *encoded, size_t encoded_length, void *output,
40 size_t output_length);
41int client_parse_ssh_private_key(const char *key_path, uint8_t *secret_key_out);
42int client_parse_ssh_public_key(const char *key_line, uint8_t *public_key_out);
43int client_parse_gpg_private_key(const char *armored_key, uint8_t *secret_key_out);
44int client_parse_gpg_public_key(const char *armored_key, uint8_t *public_key_out);
45int client_parse_gpg_private_key_binary(const uint8_t *key_data, size_t key_data_len, uint8_t *secret_key_out);
46int client_parse_gpg_public_key_binary(const uint8_t *key_data, size_t key_data_len, uint8_t *public_key_out);
47int client_get_crypto_error_message(char *output, size_t output_size);
49int client_configure_crypto_options(const char *password, const uint8_t *identity_secret_key,
50 const uint8_t *expected_server_public_key);
51
52void client_cleanup(void);
53
55
57
58int client_resolve_crypto_policy(bool secure, int encryption);
59
61
63
64#ifdef __cplusplus
65}
66#endif
Synchronized per-thread pending error stacks and value snapshots. SET_ERRNO pushes,...
unsigned int height
Definition fft.c:23
unsigned int width
Definition fft.c:23
unsigned int uint32_t
Definition common.h:62
unsigned char uint8_t
Definition common.h:60
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
asciichat_error_t client_handshake_receive(uint32_t type, const void *payload, size_t length)
int client_handle_handshake_complete(const uint8_t *packet, size_t packet_len)
asciichat_error_t client_validate_frame(const char *text, size_t length, uint32_t width, uint32_t height, uint32_t checksum, uint32_t flags, const void *metadata, size_t metadata_length)
crypto_context_t * client_security_context(void)
const uint8_t * client_public_key_bytes(void)
int client_opus_decoder_init(int sample_rate, int channels)
int client_resolve_crypto_policy(bool secure, int encryption)
asciichat_error_t client_decode_frame_data(const void *encoded, size_t encoded_length, void *output, size_t output_length)
void client_cleanup(void)
int client_set_server_address(const char *server_host, int server_port)
int client_parse_gpg_private_key(const char *armored_key, uint8_t *secret_key_out)
int client_get_connection_state(void)
int client_configure_crypto_options(const char *password, const uint8_t *identity_secret_key, const uint8_t *expected_server_public_key)
int client_parse_gpg_public_key_binary(const uint8_t *key_data, size_t key_data_len, uint8_t *public_key_out)
int client_init(void)
int client_generate_keypair(void)
asciichat_error_t client_acds_handshake_begin(uint8_t mode)
void client_opus_decoder_cleanup(void)
asciichat_error_t client_settings_receive(const void *payload, size_t length)
void client_opus_encoder_cleanup(void)
int client_handle_auth_challenge(const uint8_t *packet, size_t packet_len)
asciichat_error_t client_acds_handshake_receive(uint32_t type, const void *payload, size_t length)
int client_parse_gpg_public_key(const char *armored_key, uint8_t *public_key_out)
int client_decrypt_packet(const uint8_t *ciphertext, size_t ciphertext_len, uint8_t *plaintext, size_t plaintext_size, size_t *out_len)
int client_parse_ssh_private_key(const char *key_path, uint8_t *secret_key_out)
int client_opus_encode(const int16_t *pcm_data, int frame_size, uint8_t *opus_data, int max_opus_bytes)
char * client_settings_values(void)
int client_parse_ssh_public_key(const char *key_line, uint8_t *public_key_out)
int client_opus_decode(const uint8_t *opus_data, int opus_bytes, int16_t *pcm_data, int frame_size, int decode_fec)
int client_encrypt_packet(const uint8_t *plaintext, size_t plaintext_len, uint8_t *ciphertext, size_t ciphertext_size, size_t *out_len)
int client_handle_crypto_parameters(const uint8_t *packet, size_t packet_len)
int client_opus_encoder_init(int sample_rate, int channels, int bitrate)
int client_get_crypto_error_message(char *output, size_t output_size)
int client_handle_key_exchange_init(const uint8_t *packet, size_t packet_len)
asciichat_error_t client_handshake_begin(void)
int client_parse_gpg_private_key_binary(const uint8_t *key_data, size_t key_data_len, uint8_t *secret_key_out)
Endpoint cryptographic state for handshake, packet protection, authentication, and rekeying.