aboutsummaryrefslogtreecommitdiff
path: root/src/client/login.h
blob: b0c26985243966961ab033696226e06fc4272683 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef LOGIN_H
#define LOGIN_H

#include <basic/string32.h>
#include <os/os.h>
#include <crypto/rsa.h>
#include <crypto/aes_gcm.h>
#include <client/string32_handles.h>

struct Fscord;

typedef struct {
    bool is_username_active;
    bool is_trying_to_login;
    bool is_c2s_login_sent;

    String32Buffer *username;
    String32Buffer *servername;
    String32Handle warning;

    EVP_PKEY *rsa_client_pri;
    EVP_PKEY *rsa_server_pub;
} Login;

Login *login_create(Arena *arena, struct Fscord *fscord);
void login_update_login_attempt(Login *login);
void login_process_login_result(Login *login, b32 result);
void login_process_event(Login *login, OSEvent *event);
void login_draw(Login *login);

#endif // LOGIN_H