ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
include/ascii-chat/network/acip/security.h
Go to the documentation of this file.
1#pragma once
2
7
22
25 const void *payload, size_t length);
26
28asciichat_error_t acip_security_init_options(acip_security_t *security, bool server, bool transport_secure,
29 const char *password);
31
34 struct webrtc_data_channel *channel, acip_security_t *security,
35 void (*on_ready)(acip_transport_t *, void *), void *user_data);
38
40asciichat_error_t acip_security_rekey_encode(unsigned flow, crypto_rekey_message_t, const void *, size_t, void *,
41 size_t, size_t *);
43 const void *, size_t, uint64_t now_ns, bool *consumed);
44
46 uint8_t **, size_t *);
47
51asciichat_error_t acip_security_decrypt(crypto_context_t *, unsigned, unsigned, const void *, size_t, uint8_t **,
52 size_t *, uint64_t *, bool *consumed);
53
55 uint8_t **, size_t *);
57 uint8_t **, size_t *, uint64_t *, bool *);
58
Common declarations and data structures for cryptographic handshake.
unsigned short uint16_t
Definition common.h:61
unsigned long long uint64_t
Definition common.h:63
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
packet_type_t
Network protocol packet type enumeration.
Definition packet.h:301
struct acip_transport acip_transport_t
Forward declaration of ACIP transport.
Definition host.h:506
asciichat_error_t acip_security_decrypt(crypto_context_t *, unsigned, unsigned, const void *, size_t, uint8_t **, size_t *, uint64_t *, bool *consumed)
asciichat_error_t acip_security_start(acip_security_t *security, acip_transport_t *transport)
asciichat_error_t acip_security_seal(crypto_context_t *, acip_traffic_class_t, acip_delivery_t, const void *, size_t, uint8_t **, size_t *)
asciichat_error_t acip_security_next_control(crypto_context_t *, acip_traffic_class_t *, uint8_t **, size_t *)
void acip_security_cleanup(acip_security_t *security)
struct acip_security acip_security_t
acip security is intentionally a small, concrete record. Fields such as handshake,...
asciichat_error_t acip_security_flush(acip_transport_t *)
asciichat_error_t acip_security_rekey_encode(unsigned flow, crypto_rekey_message_t, const void *, size_t, void *, size_t, size_t *)
asciichat_error_t acip_security_rekey_seal(crypto_record_t *, unsigned, crypto_rekey_message_t, const void *, size_t, uint8_t **, size_t *)
asciichat_error_t acip_security_init_options(acip_security_t *security, bool server, bool transport_secure, const char *password)
asciichat_error_t acip_security_rekey_receive(crypto_rekey_session_t *, acip_traffic_class_t, acip_delivery_t, const void *, size_t, uint64_t now_ns, bool *consumed)
acip_security_t * acip_webrtc_transport_security(acip_transport_t *transport)
acip_transport_t * acip_webrtc_transport_create_secure(struct webrtc_peer_connection *peer, struct webrtc_data_channel *channel, acip_security_t *security, void(*on_ready)(acip_transport_t *, void *), void *user_data)
asciichat_error_t acip_security_activate(acip_transport_t *)
asciichat_error_t acip_security_open(crypto_context_t *, acip_traffic_class_t, acip_delivery_t, const void *, size_t, uint8_t **, size_t *, uint64_t *, bool *)
bool acip_security_rekey_packet(uint16_t type)
asciichat_error_t acip_security_request_rekey(acip_transport_t *)
asciichat_error_t acip_security_receive(acip_security_t *security, acip_transport_t *transport, packet_type_t type, const void *payload, size_t length)
Transport abstraction layer for ACIP protocol.
struct crypto_record crypto_record_t
When code needs to work with crypto record, it keeps crypto, key_epoch, last_receive_epoch,...
crypto_rekey_message_t
Definition rekey.h:6
acip security is intentionally a small, concrete record. Fields such as handshake,...
crypto_handshake_context_t handshake
Endpoint cryptographic state for handshake, packet protection, authentication, and rekeying.
Cryptographic handshake context structure.
crypto rekey session is intentionally a small, concrete record. Fields such as security,...
Definition rekey.h:20
When code needs to work with webrtc peer connection, it keeps mapping, port_reservation,...
WebRTC data channel for sending/receiving messages.
acip_traffic_class_t
Definition traffic.h:5
acip_delivery_t
Definition traffic.h:11