diff --git a/include/flags.h b/include/flags.h index 30402bc..41a9819 100644 --- a/include/flags.h +++ b/include/flags.h @@ -87,6 +87,7 @@ typedef struct typedef struct { char *output_text; //VARIABLE FOR ENCRYPTED/DECRYPTED TEXT + unsigned long output_text_length; //LENGTH OF ENCRYPTED/DECRYPTED TEXT char *used_key; //VARIABLE FOR USED/GENERATED KEY unsigned long unused_key_size; //VARIABLE FOR COUNT OF WHY2_UNUSED CHARACTERS IN KEY unsigned long repeated_key_size; //VARIABLE FOR COUNT OF REPEATED CHARACTERS IN KEY (basically reversed unused_key_size) diff --git a/src/core/lib/decrypter.c b/src/core/lib/decrypter.c index c429a0b..d875445 100644 --- a/src/core/lib/decrypter.c +++ b/src/core/lib/decrypter.c @@ -70,6 +70,7 @@ why2_output_flags why2_decrypt_text(char *text, char *key) char *key_new = why2_strdup(key); //COPY key TO key_new int *encrypted_text_key_chain; char *used_text = NULL; //COPY text TO used_text + unsigned long returning_len = 0; if (why2_get_flags().format == WHY2_OUTPUT_BYTE) { @@ -122,7 +123,8 @@ why2_output_flags why2_decrypt_text(char *text, char *key) } //SET LENGTH (number_buffer) - returning_text = why2_calloc(number_buffer + 1, sizeof(char)); + returning_len = number_buffer + 1; + returning_text = why2_calloc(returning_len, sizeof(char)); text_key_chain = why2_malloc(sizeof(int) * number_buffer); encrypted_text_key_chain = why2_malloc(sizeof(int) * number_buffer); text_key_chainLength = number_buffer; @@ -213,7 +215,8 @@ why2_output_flags why2_decrypt_text(char *text, char *key) } //PUT PADDED TEXT INTO text_new - returning_text = why2_recalloc(returning_text, why2_list_get_size(&split_text) + 1, sizeof(char)); + returning_len = why2_list_get_size(&split_text) + 1; + returning_text = why2_recalloc(returning_text, returning_len, sizeof(char)); why2_node_t *buffer = split_text.head; why2_node_t *buffer_2; unsigned long index_buffer = 0; @@ -237,6 +240,7 @@ why2_output_flags why2_decrypt_text(char *text, char *key) why2_output_flags output = { returning_text, //DECRYPTED TEXT + returning_len, //LENGTH key_new, //USED KEY why2_count_unused_key_size(returning_text, key_new), // NUMBER OF WHY2_UNUSED CHARS IN KEY why2_count_repeated_key_size(returning_text, key_new), //NUMBER OF REPEATED CHARS IN KEY diff --git a/src/core/lib/encrypter.c b/src/core/lib/encrypter.c index 5f9c82c..52d1102 100644 --- a/src/core/lib/encrypter.c +++ b/src/core/lib/encrypter.c @@ -61,6 +61,7 @@ why2_output_flags why2_encrypt_text(char *text, char *key) char *text_buffer = NULL; int *text_key_chain; int number_buffer = 0; + unsigned long returning_len = 0; if (key != NULL) { @@ -149,7 +150,8 @@ why2_output_flags why2_encrypt_text(char *text, char *key) } //ALLOCATE returning_text (WITH THE SEPARATORS) - returning_text = why2_calloc(number_buffer + strlen(text_new), sizeof(char)); + returning_len = number_buffer + strlen(text_new); + returning_text = why2_calloc(returning_len, sizeof(char)); //LOAD returning_text for (int i = 0; i < (int) strlen(text_new); i++) @@ -171,7 +173,8 @@ why2_output_flags why2_encrypt_text(char *text, char *key) { number_buffer = (strlen(text_new) + 1) * 2; //EACH CHARACTER WILL BE SPLIT INTO TWO CHARS AND FIRST TWO WILL BE LENGTH OF text_new - returning_text = why2_calloc(number_buffer + 1, sizeof(char)); //ALLOCATE + returning_len = number_buffer + 1; + returning_text = why2_calloc(returning_len, sizeof(char)); //ALLOCATE //SET LENGTH returning_text[0] = (strlen(text_new) & 0x7f) + 1; //+1 BECAUSE WE DON'T WANT \0 @@ -199,6 +202,7 @@ why2_output_flags why2_encrypt_text(char *text, char *key) why2_output_flags output = { returning_text, //ENCRYPTED TEXT + returning_len, //LENGTH key_new, //GENERATED/USED KEY why2_count_unused_key_size(text_new, key_new), // NUMBER OF WHY2_UNUSED CHARS IN KEY why2_count_repeated_key_size(text_new, key_new), //NUMBER OF REPEATED CHARS IN KEY diff --git a/src/core/lib/flags.c b/src/core/lib/flags.c index e0289d1..e57f95c 100644 --- a/src/core/lib/flags.c +++ b/src/core/lib/flags.c @@ -74,17 +74,17 @@ why2_input_flags why2_get_flags(void) why2_output_flags why2_no_output(enum WHY2_EXIT_CODES exit_code) { - char *emptyText = why2_malloc(1); //TEXT - emptyText[0] = '\0'; + char *empty_text = why2_malloc(1); //TEXT + empty_text[0] = '\0'; - char *emptyKey = why2_malloc(why2_get_key_length() + 1); //KEY - for (int i = 0; i < (int) why2_get_key_length(); i++) + char *empty_key = why2_malloc(why2_get_key_length() + 1); //KEY + for (unsigned long i = 0; i < why2_get_key_length(); i++) { - emptyKey[i] = 'x'; + empty_key[i] = 'x'; } - emptyKey[why2_get_key_length()] = '\0'; + empty_key[why2_get_key_length()] = '\0'; - return (why2_output_flags) { emptyText, emptyKey, 0, 0, 0, exit_code }; + return (why2_output_flags) { empty_text, 0, empty_key, 0, 0, 0, exit_code }; } why2_encryption_operation_cb why2_get_encryption_operation(void)