45#include "../../QSC/QSC/rcs.h"
46#include "../../QSC/QSC/socketserver.h"
#define SKDP_STH_SIZE
The session token hash size (in bytes) for 256-bit security.
Definition skdp.h:347
#define SKDP_KID_SIZE
The SKDP key identity size in bytes.
Definition skdp.h:172
#define SKDP_SDK_SIZE
The server derivation key size (in bytes) for 256-bit security.
Definition skdp.h:335
skdp_errors
The SKDP error values.
Definition skdp.h:630
skdp_flags
The SKDP packet flag values.
Definition skdp.h:658
SKDP_EXPORT_API void skdp_server_send_error(const qsc_socket *sock, skdp_errors error)
Send an error code to the remote host.
Definition skdpserver.c:483
SKDP_EXPORT_API skdp_errors skdp_server_send_keep_alive(skdp_keep_alive_state *kctx, const qsc_socket *sock)
Send a keep-alive message to the remote host.
Definition skdpserver.c:504
SKDP_EXPORT_API skdp_errors skdp_server_ratchet_response(skdp_server_state *ctx, skdp_network_packet *packetout)
Send a ratchet response to the client.
SKDP_EXPORT_API skdp_errors skdp_server_listen_ipv6(skdp_server_state *ctx, qsc_socket *sock, const qsc_ipinfo_ipv6_address *address, uint16_t port)
Run the IPv6 networked key exchange function.
Definition skdpserver.c:599
SKDP_EXPORT_API skdp_errors skdp_server_encrypt_packet(skdp_server_state *ctx, const uint8_t *message, size_t msglen, skdp_network_packet *packetout)
Encrypt a message into an SKDP packet.
Definition skdpserver.c:685
SKDP_EXPORT_API void skdp_server_initialize(skdp_server_state *ctx, const skdp_server_key *skey)
Initialize the SKDP server state.
Definition skdpserver.c:565
SKDP_EXPORT_API skdp_errors skdp_server_decrypt_packet(skdp_server_state *ctx, const skdp_network_packet *packetin, uint8_t *message, size_t *msglen)
Decrypt a received SKDP packet.
Definition skdpserver.c:623
SKDP_EXPORT_API void skdp_server_connection_close(skdp_server_state *ctx, qsc_socket *sock, skdp_errors error)
Close the remote session and dispose of server resources.
Definition skdpserver.c:540
SKDP_EXPORT_API skdp_errors skdp_server_listen_ipv4(skdp_server_state *ctx, qsc_socket *sock, const qsc_ipinfo_ipv4_address *address, uint16_t port)
Run the IPv4 networked key exchange function.
Definition skdpserver.c:575
The SKDP network packet structure.
Definition skdp.h:614
The SKDP server key structure.
Definition skdp.h:569
The SKDP server state structure.
Definition skdpserver.h:77
uint64_t txseq
Definition skdpserver.h:87
uint8_t ssh[SKDP_STH_SIZE]
Definition skdpserver.h:83
uint8_t kid[SKDP_KID_SIZE]
Definition skdpserver.h:82
uint64_t expiration
Definition skdpserver.h:85
qsc_rcs_state txcpr
Definition skdpserver.h:79
uint64_t rxseq
Definition skdpserver.h:86
skdp_flags exflag
Definition skdpserver.h:88
uint8_t did[SKDP_KID_SIZE]
Definition skdpserver.h:80
qsc_rcs_state rxcpr
Definition skdpserver.h:78
uint8_t sdk[SKDP_SDK_SIZE]
Definition skdpserver.h:84
uint8_t dsh[SKDP_STH_SIZE]
Definition skdpserver.h:81