#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; }