50 lines
1.7 KiB
C
Executable File
50 lines
1.7 KiB
C
Executable File
#include "cryptography/cryptography.h"
|
|
#include "network/network.h"
|
|
#include "network/socket.h"
|
|
|
|
void test_aes(){
|
|
const str password = STR("abobus");
|
|
const Array data = str_castTo_Array(STR("0123456789_hii_"));
|
|
|
|
const Array key_hash = hash_password(password, 1e5);
|
|
str hash_str = hex_to_str(key_hash, true);
|
|
printf("password hash [%i] %s\n", key_hash.size, hash_str.data);
|
|
free(hash_str.data);
|
|
|
|
// SHA256 accepts keys with size 16, 24 or 32
|
|
const u32 key_size = 32;
|
|
const Array key = Array_construct_size(key_hash.data, key_size);
|
|
|
|
EncryptorAES* encr = EncryptorAES_create(key);
|
|
Array buffer = Array_alloc_size(EncryptorAES_calcDstSize(data.size));
|
|
EncryptorAES_encrypt(encr, data, buffer);
|
|
EncryptorAES_destroy(encr);
|
|
|
|
str encrypted_str = hex_to_str(buffer, true);
|
|
printf("data encrypted (hex): %s\n", encrypted_str.data);
|
|
free(encrypted_str.data);
|
|
|
|
DecryptorAES* decr = DecryptorAES_create(key);
|
|
u32 decrypted_size = 0;
|
|
DecryptorAES_decrypt(decr, buffer, buffer, &decrypted_size);
|
|
DecryptorAES_destroy(decr);
|
|
|
|
str decrypted_str = str_copy(str_construct(buffer.data, decrypted_size, false));
|
|
printf("data decrypted (utf8): %s\n", decrypted_str.data);
|
|
free(decrypted_str.data);
|
|
}
|
|
|
|
void test_server(){
|
|
try_fatal(_10, network_init(), );
|
|
try_fatal(main_socket, socket_open_TCP(), );
|
|
EndpointIPv4 server_end = EndpointIPv4_create(AddressIPv4_LOOPBACK, 24500);
|
|
try_fatal(_20, socket_bind(main_socket.v_i64, server_end), );
|
|
try_fatal(_30, socket_listen(main_socket.v_i64, 64), );
|
|
try_fatal(_100, network_deinit(), );
|
|
}
|
|
|
|
int main(){
|
|
test_server();
|
|
return 0;
|
|
}
|