int main() { int ret; struct mmaped_bytes file_bytes; ret = file_content(&file_bytes, "10.txt"); if (ret != 0) { return ret; } struct malloced_bytes data_bytes; ret = base64_to_bytes(&data_bytes, file_bytes.data, file_bytes.size); if (ret != 0) { fini_mmaped_bytes(&file_bytes); return ret; } struct static_bytes key_bytes; str_literal(&key_bytes, "YELLOW SUBMARINE"); uint8_t iv_bytes[16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; struct malloced_bytes decrypted_bytes; ret = aes_128_cbc_decrypt(&decrypted_bytes, iv_bytes, 16, key_bytes.data, key_bytes.size, data_bytes.data, data_bytes.size); if (ret != 0) { fini_malloced_bytes(&data_bytes); fini_mmaped_bytes(&file_bytes); return ret; } uint8_t last_byte = decrypted_bytes.data[decrypted_bytes.size - 1]; size_t size; if (last_byte < 16) { size = decrypted_bytes.size - last_byte; } else { size = decrypted_bytes.size; } for (size_t i = 0; i < size; ++i) { printf("%c", decrypted_bytes.data[i]); } fini_malloced_bytes(&decrypted_bytes); fini_malloced_bytes(&data_bytes); fini_mmaped_bytes(&file_bytes); return ret; }
static string_literal_type time_period_last_placeholder() { return str_literal("%last%"); }
static string_literal_type time_period_begin_placeholder() { return str_literal("%begin%"); }
static string_literal_type time_period_end_placeholder() { return str_literal("%end%"); }
static string_literal_type default_time_period_format() { return str_literal("[%begin% - %last%]"); }
static string_literal_type default_time_duration_format() { return str_literal("%-%H:%M:%S.%f"); }
static string_literal_type default_date_time_format() { return str_literal("%Y-%b-%d %H:%M:%S.%f"); }
static string_literal_type default_date_format() { return str_literal("%Y-%b-%d"); }
static string_literal_type default_time_format() { return str_literal(L"%H:%M:%S.%f"); }