From 92de4cedd3ae0a088c87e38d3a9560d3b3cfd54f Mon Sep 17 00:00:00 2001 From: Dirk Engling Date: Sat, 5 Dec 2020 04:32:52 +0100 Subject: Make session id a uint64_t as it is expected at receiver --- sender.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/sender.c b/sender.c index 3469735..19a3bed 100644 --- a/sender.c +++ b/sender.c @@ -27,7 +27,7 @@ static const unsigned char pubkey[] = static const unsigned char pp[] = "IJUHZGFDXTZKHJKHGFDHZLUÖDRTFGHHJGHH"; enum { SESSION_ID_LENGTH = 8, AES_KEY_LENGTH = 16, GCM_IV_LENGTH = 16, GCM_TAG_LENGTH = 16 }; -static uint8_t session_id[8] = { 0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01 }; +static uint64_t session_id = 0x0123456789abcdef; static uint8_t aes_key[16] = { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef }; void send_udp(int sock, mbedtls_ctr_drbg_context *ctr_drbg, const uint8_t *text, size_t len) { @@ -37,14 +37,14 @@ void send_udp(int sock, mbedtls_ctr_drbg_context *ctr_drbg, const uint8_t *text, const size_t total_length = 1 + SESSION_ID_LENGTH + GCM_IV_LENGTH + GCM_TAG_LENGTH + len; uint8_t *output = alloca(total_length); output[0] = 1; - memcpy(output + 1, session_id, SESSION_ID_LENGTH); + memcpy(output + 1, (uint8_t*)&session_id, SESSION_ID_LENGTH); memcpy(output + 1 + SESSION_ID_LENGTH, iv, GCM_IV_LENGTH); mbedtls_gcm_context ctx; mbedtls_gcm_init(&ctx); mbedtls_gcm_setkey(&ctx, MBEDTLS_CIPHER_ID_AES, aes_key, 8 * AES_KEY_LENGTH); - if (!mbedtls_gcm_crypt_and_tag(&ctx, MBEDTLS_GCM_ENCRYPT, len, iv, GCM_IV_LENGTH, session_id, SESSION_ID_LENGTH, + if (!mbedtls_gcm_crypt_and_tag(&ctx, MBEDTLS_GCM_ENCRYPT, len, iv, GCM_IV_LENGTH, (uint8_t*)&session_id, SESSION_ID_LENGTH, text, output + 1 + SESSION_ID_LENGTH + GCM_IV_LENGTH + GCM_TAG_LENGTH, GCM_TAG_LENGTH, output + 1 + SESSION_ID_LENGTH + GCM_IV_LENGTH)) { struct sockaddr_in to; @@ -60,12 +60,12 @@ void send_udp(int sock, mbedtls_ctr_drbg_context *ctr_drbg, const uint8_t *text, } void new_session(int sock, mbedtls_ctr_drbg_context *ctr_drbg) { - mbedtls_ctr_drbg_random(ctr_drbg, session_id, sizeof(session_id)); + mbedtls_ctr_drbg_random(ctr_drbg, (uint8_t*)&session_id, sizeof(session_id)); mbedtls_ctr_drbg_random(ctr_drbg, aes_key, sizeof(aes_key)); unsigned char output[512]; output[0] = 0; - memcpy(output + 1, session_id, SESSION_ID_LENGTH); + memcpy(output + 1, (uint8_t*)&session_id, SESSION_ID_LENGTH); mbedtls_pk_context pk; mbedtls_pk_init(&pk); @@ -105,6 +105,8 @@ int main() { const unsigned char *logline = (const unsigned char*)"Juchuuu, es klappt!\n"; send_udp(sock, &ctr_drbg, logline, strlen((char*)logline)); + send_udp(sock, &ctr_drbg, logline, strlen((char*)logline)); + send_udp(sock, &ctr_drbg, logline, strlen((char*)logline)); close(sock); } -- cgit v1.2.3