implemented client-server connection, but found out RSA is broken

This commit is contained in:
2025-11-01 19:51:43 +05:00
parent 5cc1484e80
commit 8179609d47
21 changed files with 441 additions and 123 deletions

View File

@@ -24,6 +24,7 @@ Result(i32) EncryptedSocketTCP_recv(EncryptedSocketTCP* ptr,
{
Deferral(4);
try(i32 received_size, i, socket_recv(ptr->sock, encrypted_buf, flags));
//TODO: return something when received_size == 0 (socket has been closed)
encrypted_buf.size = received_size;
try(i32 decrypted_size, u, AESStreamDecryptor_decrypt(&ptr->dec, encrypted_buf, decrypted_buf));
Return RESULT_VALUE(i, decrypted_size);

View File

@@ -6,11 +6,13 @@
extern const Magic64 PacketHeader_MAGIC;
// sizeof(PacketHeader) must be 64
typedef struct PacketHeader {
Magic64 magic;
u8 protocol_version;
u8 _reserved;
u8 _reserved1;
u16 type;
u32 _reserved4;
u64 content_size;
} __attribute__((aligned(64))) PacketHeader;

View File

@@ -8,3 +8,7 @@ Result(void) ClientHandshake_tryConstruct(ClientHandshake* ptr, Array(u8) sessio
Return RESULT_VOID;
}
void ServerHandshake_construct(ServerHandshake* ptr, u64 session_id){
PacketHeader_construct(&ptr->header, PROTOCOL_VERSION, PacketType_ClientHandshake, sizeof(session_id));
ptr->session_id = session_id;
}

View File

@@ -4,6 +4,7 @@
#define PROTOCOL_VERSION 1 /* 1.0.0 */
typedef enum PacketType {
PacketType_Invalid,
PacketType_ErrorMessage,
@@ -11,11 +12,13 @@ typedef enum PacketType {
PacketType_ServerHandshake,
} __attribute__((__packed__)) PacketType;
typedef struct ErrorMessage {
PacketHeader header;
/* content stream of size `header.content_size` */
} ErrorMessage;
typedef struct ClientHandshake {
PacketHeader header;
u8 session_key[AES_SESSION_KEY_SIZE];
@@ -28,3 +31,5 @@ typedef struct ServerHandshake {
PacketHeader header;
u64 session_id;
} ServerHandshake;
void ServerHandshake_construct(ServerHandshake* ptr, u64 session_id);