34 lines
961 B
C
34 lines
961 B
C
#pragma once
|
|
#include "network/socket.h"
|
|
#include "cryptography/cryptography.h"
|
|
|
|
Result(void) client_run();
|
|
|
|
typedef struct ClientCredential {
|
|
str username;
|
|
Array(u8) aes_key;
|
|
Array(u8) token;
|
|
br_rsa_private_key sk;
|
|
br_rsa_public_key pk;
|
|
EncryptorRSA rsa_enc;
|
|
DecryptorRSA rsa_dec;
|
|
EncryptorAES user_data_aes_enc;
|
|
DecryptorAES user_data_aes_dec;
|
|
} ClientCredential;
|
|
|
|
Result(ClientCredential*) ClientCredential_create(str username, str password);
|
|
void ClientCredential_free(ClientCredential* cred);
|
|
|
|
typedef struct ServerConnection {
|
|
EndpointIPv4 server_end;
|
|
Socket system_socket;
|
|
Socket content_socket;
|
|
br_rsa_public_key server_pk;
|
|
EncryptorRSA rsa_enc;
|
|
EncryptorAES session_aes_enc;
|
|
DecryptorAES session_aes_dec;
|
|
} ServerConnection;
|
|
|
|
Result(ServerConnection*) ServerConnection_open(ClientCredential* client_credential, cstr server_link_cstr);
|
|
void ServerConnection_close(ServerConnection* conn);
|