updated tlibc
This commit is contained in:
parent
664ff91e63
commit
eb1daa721a
2
dependencies/tlibc
vendored
2
dependencies/tlibc
vendored
@ -1 +1 @@
|
||||
Subproject commit a9fa42c23f8419ef80f7b74074030d54388cf410
|
||||
Subproject commit 0e80a568922ae579213d5a99329fa32420f0bcb0
|
||||
@ -2,7 +2,7 @@
|
||||
#include <assert.h>
|
||||
#include "tlibc/time.h"
|
||||
|
||||
void EncryptorAES_create(EncryptorAES* ptr, Array key){
|
||||
void EncryptorAES_create(EncryptorAES* ptr, Array(u8) key){
|
||||
assert(key.size == 16 || key.size == 24 || key.size == 32);
|
||||
|
||||
br_aes_ct64_cbcenc_init(&ptr->enc_ctx, key.data, key.size);
|
||||
@ -15,7 +15,7 @@ void EncryptorAES_create(EncryptorAES* ptr, Array key){
|
||||
memset(ptr->iv, 0, sizeof(ptr->iv));
|
||||
}
|
||||
|
||||
void EncryptorAES_encrypt(EncryptorAES* ptr, Array src, Array dst){
|
||||
void EncryptorAES_encrypt(EncryptorAES* ptr, Array(u8) src, Array(u8) dst){
|
||||
assert(dst.size >= EncryptorAES_calcDstSize(src.size));
|
||||
|
||||
// write random bytes to the beginning of the buffer
|
||||
@ -51,7 +51,7 @@ void EncryptorAES_encrypt(EncryptorAES* ptr, Array src, Array dst){
|
||||
}
|
||||
|
||||
|
||||
void DecryptorAES_create(DecryptorAES* ptr, Array key){
|
||||
void DecryptorAES_create(DecryptorAES* ptr, Array(u8) key){
|
||||
assert(key.size == 16 || key.size == 24 || key.size == 32);
|
||||
|
||||
br_aes_ct64_cbcdec_init(&ptr->dec_ctx, key.data, key.size);
|
||||
@ -60,7 +60,7 @@ void DecryptorAES_create(DecryptorAES* ptr, Array key){
|
||||
memset(ptr->iv, 0, sizeof(ptr->iv));
|
||||
}
|
||||
|
||||
void DecryptorAES_decrypt(DecryptorAES* ptr, Array src, Array dst, u32* decrypted_size){
|
||||
void DecryptorAES_decrypt(DecryptorAES* ptr, Array(u8) src, Array(u8) dst, u32* decrypted_size){
|
||||
assert(dst.size >= src.size);
|
||||
|
||||
// copy encrypted header from src to buffer
|
||||
|
||||
@ -32,12 +32,12 @@ typedef struct EncryptorAES {
|
||||
} EncryptorAES;
|
||||
|
||||
/// @param key Array<u8, 16 | 24 | 32>
|
||||
void EncryptorAES_create(EncryptorAES* ptr, Array key);
|
||||
void EncryptorAES_create(EncryptorAES* ptr, Array(u8) key);
|
||||
|
||||
/// @brief Encrypts `src` and writes output to `dst`.
|
||||
/// @param src array of any size
|
||||
/// @param dst array of size >= EncryptorAES_calcDstSize(src.size)
|
||||
void EncryptorAES_encrypt(EncryptorAES* ptr, Array src, Array dst);
|
||||
void EncryptorAES_encrypt(EncryptorAES* ptr, Array(u8) src, Array(u8) dst);
|
||||
|
||||
#define EncryptorAES_calcDstSize(SRC_SIZE) (ALIGN_TO(SRC_SIZE, 16) + __AES_RANDOM_BYTES_N + sizeof(EncryptedBlockInfo))
|
||||
|
||||
@ -49,13 +49,13 @@ typedef struct DecryptorAES {
|
||||
} DecryptorAES;
|
||||
|
||||
/// @param key Array<u8, 16 | 24 | 32>
|
||||
void DecryptorAES_create(DecryptorAES* ptr, Array key);
|
||||
void DecryptorAES_create(DecryptorAES* ptr, Array(u8) key);
|
||||
|
||||
/// @brief Decrypts `src` and writes output to `dst`.
|
||||
/// @param src array of any size
|
||||
/// @param dst array of size >= src.size
|
||||
/// @param decrypted_size size of original data without padding added by EncryptorAES_encrypt
|
||||
void DecryptorAES_decrypt(DecryptorAES* ptr, Array src, Array dst, u32* decrypted_size);
|
||||
void DecryptorAES_decrypt(DecryptorAES* ptr, Array(u8) src, Array(u8) dst, u32* decrypted_size);
|
||||
|
||||
|
||||
|
||||
|
||||
10
src/main.c
10
src/main.c
@ -8,13 +8,13 @@
|
||||
|
||||
Result(void) test_aes(){
|
||||
const str password = STR("abobus");
|
||||
const Array data = str_castTo_Array(STR("0123456789_hii_"));
|
||||
const Array(const char) data = str_castTo_Array(STR("0123456789_hii_"));
|
||||
|
||||
u8 hash_buffer[hash_password_out_size];
|
||||
// SHA256 accepts keys with size 16, 24 or 32
|
||||
const u32 key_size = 32;
|
||||
assert(key_size <= hash_password_out_size);
|
||||
const Array key = Array_construct_size(hash_buffer, key_size);
|
||||
const Array(u8) key = Array_construct_size(hash_buffer, key_size);
|
||||
hash_password(password, hash_buffer, 1e5);
|
||||
str hash_str = hex_to_str(key, true);
|
||||
printf("key [%i] %s\n", key.size, hash_str.data);
|
||||
@ -22,7 +22,7 @@ Result(void) test_aes(){
|
||||
|
||||
EncryptorAES encr;
|
||||
EncryptorAES_create(&encr, key);
|
||||
Array buffer = Array_alloc_size(EncryptorAES_calcDstSize(data.size));
|
||||
Array(u8) buffer = Array_alloc_size(EncryptorAES_calcDstSize(data.size));
|
||||
EncryptorAES_encrypt(&encr, data, buffer);
|
||||
|
||||
str encrypted_str = hex_to_str(buffer, true);
|
||||
@ -85,7 +85,7 @@ void* test_server(void* data){
|
||||
try_fatal(client_conn, socket_accept(main_socket.i, NULL), socket_close(main_socket.i));
|
||||
|
||||
// last byte is reserved for '\0'
|
||||
Array buf = Array_construct(malloc(1024), u8, 1023);
|
||||
Array(u8) buf = Array_construct(malloc(1024), u8, 1023);
|
||||
printf_safe("[server]: receiving data from client\n");
|
||||
while(true){
|
||||
try_fatal(read_n,
|
||||
@ -117,7 +117,7 @@ void* test_client(void* data){
|
||||
try_fatal(_20,
|
||||
socket_connect(client_socket.i, server_end),
|
||||
socket_close(client_socket.i));
|
||||
Array buf = Array_alloc(u8, 1024);
|
||||
Array(u8) buf = Array_alloc(u8, 1024);
|
||||
printf_safe("[client]: reading stdin\n");
|
||||
while(fgets(buf.data, buf.size, stdin) != NULL){
|
||||
str line = str_construct(buf.data, strlen(buf.data), true);
|
||||
|
||||
@ -60,14 +60,14 @@ Result(void) socket_connect(Socket s, EndpointIPv4 remote_end){
|
||||
return RESULT_VOID;
|
||||
}
|
||||
|
||||
Result(void) socket_send(Socket s, Array buffer){
|
||||
Result(void) socket_send(Socket s, Array(u8) buffer){
|
||||
i32 r = send(s, buffer.data, buffer.size, 0);
|
||||
if(r < 0)
|
||||
return RESULT_ERROR(strerror(errno), false);
|
||||
return RESULT_VOID;
|
||||
}
|
||||
|
||||
Result(void) socket_sendto(Socket s, Array buffer, EndpointIPv4 dst){
|
||||
Result(void) socket_sendto(Socket s, Array(u8) buffer, EndpointIPv4 dst){
|
||||
struct sockaddr_in sockaddr = EndpointIPv4_toSockaddr(dst);
|
||||
i32 r = sendto(s, buffer.data, buffer.size, 0, (void*)&sockaddr, sizeof(sockaddr));
|
||||
if(r < 0)
|
||||
@ -75,7 +75,7 @@ Result(void) socket_sendto(Socket s, Array buffer, EndpointIPv4 dst){
|
||||
return RESULT_VOID;
|
||||
}
|
||||
|
||||
Result(i32) socket_recv(Socket s, Array buffer){
|
||||
Result(i32) socket_recv(Socket s, Array(u8) buffer){
|
||||
i32 r = recv(s, buffer.data, buffer.size, 0);
|
||||
if(r < 0)
|
||||
return RESULT_ERROR(strerror(errno), false);
|
||||
@ -83,7 +83,7 @@ Result(i32) socket_recv(Socket s, Array buffer){
|
||||
}
|
||||
|
||||
|
||||
Result(i32) socket_recvfrom(Socket s, Array buffer, NULLABLE(EndpointIPv4*) remote_end){
|
||||
Result(i32) socket_recvfrom(Socket s, Array(u8) buffer, NULLABLE(EndpointIPv4*) remote_end){
|
||||
struct sockaddr_in remote_addr = {0};
|
||||
i32 sockaddr_size = sizeof(remote_addr);
|
||||
i32 r = recvfrom(s, buffer.data, buffer.size, 0,
|
||||
|
||||
@ -18,7 +18,7 @@ Result(void) socket_bind(Socket s, EndpointIPv4 local_end);
|
||||
Result(void) socket_listen(Socket s, i32 backlog);
|
||||
Result(Socket) socket_accept(Socket s, NULLABLE(EndpointIPv4*) remote_end);
|
||||
Result(void) socket_connect(Socket s, EndpointIPv4 remote_end);
|
||||
Result(void) socket_send(Socket s, Array buffer);
|
||||
Result(void) socket_sendto(Socket s, Array buffer, EndpointIPv4 dst);
|
||||
Result(i32) socket_recv(Socket s, Array buffer);
|
||||
Result(i32) socket_recvfrom(Socket s, Array buffer, NULLABLE(EndpointIPv4*) remote_end);
|
||||
Result(void) socket_send(Socket s, Array(u8) buffer);
|
||||
Result(void) socket_sendto(Socket s, Array(u8) buffer, EndpointIPv4 dst);
|
||||
Result(i32) socket_recv(Socket s, Array(u8) buffer);
|
||||
Result(i32) socket_recvfrom(Socket s, Array(u8) buffer, NULLABLE(EndpointIPv4*) remote_end);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user