diff --git a/Makefile b/Makefile index 87f8682..2be603b 100644 --- a/Makefile +++ b/Makefile @@ -14,12 +14,13 @@ all: g++ -g -I${INC} -c set1/runner.cpp -o obj/set1_runner.o g++ -g -I${INC} -c set2/runner.c -o obj/set2_runner.o g++ -g -I${INC} -c set1/ecb.c -o obj/ecb.o + g++ -g -I${INC} -c set2/cbc.c -o obj/cbc.o g++ -g -I${INC} -c main.cpp -o obj/main.o g++ -g -o main obj/common.o obj/base64.o \ obj/xor_char_finder.o obj/xor.o \ obj/hamming.o obj/utils_runner.o \ obj/set1_runner.o obj/main.o obj/ecb.o \ - obj/set2_runner.o obj/pkcs7.o \ + obj/set2_runner.o obj/pkcs7.o obj/cbc.o \ -lcrypto clean: rm -rf obj diff --git a/MatsanoCrypto.sublime-workspace b/MatsanoCrypto.sublime-workspace index 64ba415..309b02e 100644 --- a/MatsanoCrypto.sublime-workspace +++ b/MatsanoCrypto.sublime-workspace @@ -3,6 +3,22 @@ { "selected_items": [ + [ + "count", + "count_array_size" + ], + [ + "LVM", + "LVM_VOLUMES" + ], + [ + "pkcs", + "pkcs7_pad" + ], + [ + "FUC", + "FUNC_E" + ], [ "read", "read_file_to_buffer" @@ -498,22 +514,6 @@ [ "subsc", "subscriber" - ], - [ - "Subsc", - "Subscribers" - ], - [ - "kSEI", - "kSEIErr_ImplementationError" - ], - [ - "ConfigEve", - "ConfigEventSubscriberInterfaceWeakPtr" - ], - [ - "ConfigObj", - "ConfigObjectChangePublisher" ] ] }, @@ -523,7 +523,64 @@ "file": "set1/runner.cpp", "settings": { - "buffer_size": 12021, + "buffer_size": 12087, + "line_ending": "Unix" + } + }, + { + "file": "utils/common.h", + "settings": + { + "buffer_size": 462, + "line_ending": "Unix" + } + }, + { + "file": "utils/pkcs7.c", + "settings": + { + "buffer_size": 353, + "line_ending": "Unix" + } + }, + { + "file": "/home/flowher/backup_server", + "settings": + { + "buffer_size": 743, + "line_ending": "Unix" + } + }, + { + "file": "/home/flowher/server_snapshot.sh", + "settings": + { + "buffer_size": 1305, + "line_ending": "Unix", + "name": "#!/bin/bash" + } + }, + { + "file": "set1/ecb.c", + "settings": + { + "buffer_size": 1860, + "line_ending": "Unix" + } + }, + { + "file": "set2/cbc.c", + "settings": + { + "buffer_size": 461, + "line_ending": "Unix" + } + }, + { + "file": "utils/pkcs7.h", + "settings": + { + "buffer_size": 103, "line_ending": "Unix" } }, @@ -531,7 +588,7 @@ "file": "utils/common.c", "settings": { - "buffer_size": 700, + "buffer_size": 881, "line_ending": "Unix" } }, @@ -551,6 +608,21 @@ "line_ending": "Unix" } }, + { + "file": "set2/runner.c", + "settings": + { + "buffer_size": 977, + "line_ending": "Unix" + } + }, + { + "settings": + { + "buffer_size": 0, + "line_ending": "Unix" + } + }, { "file": "set1/xor_char_finder.cpp", "settings": @@ -591,11 +663,19 @@ "line_ending": "Unix" } }, + { + "file": "set2/runner.h", + "settings": + { + "buffer_size": 173, + "line_ending": "Unix" + } + }, { "file": "Makefile", "settings": { - "buffer_size": 861, + "buffer_size": 936, "line_ending": "Unix" } } @@ -607,10 +687,18 @@ "build_varint": "", "command_palette": { - "height": 52.0, - "last_filter": "", + "height": 54.0, + "last_filter": "bash", "selected_items": [ + [ + "bash", + "Set Syntax: Shell Script (Bash)" + ], + [ + "comment", + "Toggle Comment" + ], [ "comme", "Snippet: comment-method" @@ -619,10 +707,6 @@ "install", "Package Control: Install Package" ], - [ - "comment", - "Snippet: comment" - ], [ "snippet", "Snippet: comment" @@ -989,6 +1073,7 @@ [ "/home/flowher/repos/MatasanoCrypto", "/home/flowher/repos/MatasanoCrypto/set1", + "/home/flowher/repos/MatasanoCrypto/set2", "/home/flowher/repos/MatasanoCrypto/utils" ], "file_history": @@ -1124,7 +1209,7 @@ ], "find": { - "height": 23.0 + "height": 25.0 }, "find_in_files": { @@ -1193,6 +1278,15 @@ "case_sensitive": false, "find_history": [ + "void", + "VOLUME_GROUPE", + "count", + " ", + " ", + "i_len", + "set2_pkcs7_test", + "__set1_runner__", + "o_buf", "hex_str4", "img", ".jpg", @@ -1311,16 +1405,7 @@ "handleClient", "runClientHandler", "handleClient", - "SAFE_BOOST_CHECK", - "SAFE_BOOST_REQUIRE", - "openssl_strdup", - "OPENSSL_str", - "SSL_CTX_set_srp_username_callback", - "argToAdd", - "_argTLS1Protocol", - "_argNoTLS1Protocol", - "mapArg(", - "mapArg" + "SAFE_BOOST_CHECK" ], "highlight": true, "in_selection": false, @@ -1383,7 +1468,7 @@ "groups": [ { - "selected": 0, + "selected": 8, "sheets": [ { @@ -1392,7 +1477,7 @@ "semi_transient": false, "settings": { - "buffer_size": 12021, + "buffer_size": 12087, "regions": { }, @@ -1409,27 +1494,228 @@ "translate_tabs_to_spaces": false }, "translation.x": 0.0, - "translation.y": 2749.0, + "translation.y": 2418.0, "zoom_level": 1.0 }, - "stack_index": 0, + "stack_index": 13, "type": "text" }, { "buffer": 1, + "file": "utils/common.h", + "semi_transient": false, + "settings": + { + "buffer_size": 462, + "regions": + { + }, + "selection": + [ + [ + 367, + 367 + ] + ], + "settings": + { + "syntax": "Packages/C Improved/C Improved.tmLanguage" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 1, + "type": "text" + }, + { + "buffer": 2, + "file": "utils/pkcs7.c", + "semi_transient": false, + "settings": + { + "buffer_size": 353, + "regions": + { + }, + "selection": + [ + [ + 353, + 353 + ] + ], + "settings": + { + "syntax": "Packages/C Improved/C Improved.tmLanguage" + }, + "translation.x": 0.0, + "translation.y": 57.0, + "zoom_level": 1.0 + }, + "stack_index": 10, + "type": "text" + }, + { + "buffer": 3, + "file": "/home/flowher/backup_server", + "semi_transient": false, + "settings": + { + "buffer_size": 743, + "regions": + { + }, + "selection": + [ + [ + 743, + 743 + ] + ], + "settings": + { + "syntax": "Packages/Text/Plain text.tmLanguage" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 11, + "type": "text" + }, + { + "buffer": 4, + "file": "/home/flowher/server_snapshot.sh", + "semi_transient": false, + "settings": + { + "buffer_size": 1305, + "regions": + { + }, + "selection": + [ + [ + 898, + 898 + ] + ], + "settings": + { + "auto_name": "#!/bin/bash", + "syntax": "Packages/ShellScript/Shell-Unix-Generic.tmLanguage", + "tab_size": 4, + "translate_tabs_to_spaces": true + }, + "translation.x": 0.0, + "translation.y": 19.0, + "zoom_level": 1.0 + }, + "stack_index": 8, + "type": "text" + }, + { + "buffer": 5, + "file": "set1/ecb.c", + "semi_transient": false, + "settings": + { + "buffer_size": 1860, + "regions": + { + }, + "selection": + [ + [ + 1394, + 1394 + ] + ], + "settings": + { + "syntax": "Packages/C Improved/C Improved.tmLanguage", + "tab_size": 4, + "translate_tabs_to_spaces": true + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 7, + "type": "text" + }, + { + "buffer": 6, + "file": "set2/cbc.c", + "semi_transient": false, + "settings": + { + "buffer_size": 461, + "regions": + { + }, + "selection": + [ + [ + 276, + 276 + ] + ], + "settings": + { + "syntax": "Packages/C Improved/C Improved.tmLanguage" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 3, + "type": "text" + }, + { + "buffer": 7, + "file": "utils/pkcs7.h", + "semi_transient": false, + "settings": + { + "buffer_size": 103, + "regions": + { + }, + "selection": + [ + [ + 102, + 102 + ] + ], + "settings": + { + "syntax": "Packages/C Improved/C Improved.tmLanguage" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 12, + "type": "text" + }, + { + "buffer": 8, "file": "utils/common.c", "semi_transient": false, "settings": { - "buffer_size": 700, + "buffer_size": 881, "regions": { }, "selection": [ [ - 161, - 161 + 690, + 690 ] ], "settings": @@ -1441,11 +1727,11 @@ "translation.y": 0.0, "zoom_level": 1.0 }, - "stack_index": 2, + "stack_index": 0, "type": "text" }, { - "buffer": 2, + "buffer": 9, "file": "utils/base64.cpp", "semi_transient": false, "settings": @@ -1467,14 +1753,14 @@ "translate_tabs_to_spaces": false }, "translation.x": 0.0, - "translation.y": 3078.0, + "translation.y": 2387.0, "zoom_level": 1.0 }, - "stack_index": 1, + "stack_index": 9, "type": "text" }, { - "buffer": 3, + "buffer": 10, "file": "set1/xor_char_finder.h", "semi_transient": false, "settings": @@ -1499,11 +1785,69 @@ "translation.y": 0.0, "zoom_level": 1.0 }, - "stack_index": 6, + "stack_index": 18, "type": "text" }, { - "buffer": 4, + "buffer": 11, + "file": "set2/runner.c", + "semi_transient": false, + "settings": + { + "buffer_size": 977, + "regions": + { + }, + "selection": + [ + [ + 925, + 925 + ] + ], + "settings": + { + "syntax": "Packages/C Improved/C Improved.tmLanguage", + "tab_size": 4, + "translate_tabs_to_spaces": true + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 2, + "type": "text" + }, + { + "buffer": 12, + "semi_transient": false, + "settings": + { + "buffer_size": 0, + "regions": + { + }, + "selection": + [ + [ + 0, + 0 + ] + ], + "settings": + { + "default_dir": "/home/flowher/repos/MatasanoCrypto/set2", + "syntax": "Packages/Text/Plain text.tmLanguage" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 19, + "type": "text" + }, + { + "buffer": 13, "file": "set1/xor_char_finder.cpp", "semi_transient": false, "settings": @@ -1528,11 +1872,11 @@ "translation.y": 0.0, "zoom_level": 1.0 }, - "stack_index": 5, + "stack_index": 14, "type": "text" }, { - "buffer": 5, + "buffer": 14, "file": "utils/runner.cpp", "semi_transient": false, "settings": @@ -1544,8 +1888,8 @@ "selection": [ [ - 2957, - 2957 + 2312, + 2312 ] ], "settings": @@ -1554,14 +1898,14 @@ "translate_tabs_to_spaces": false }, "translation.x": 0.0, - "translation.y": 994.0, + "translation.y": 789.0, "zoom_level": 1.0 }, - "stack_index": 3, + "stack_index": 15, "type": "text" }, { - "buffer": 6, + "buffer": 15, "file": "main.cpp", "semi_transient": false, "settings": @@ -1573,8 +1917,8 @@ "selection": [ [ - 0, - 0 + 39, + 39 ] ], "settings": @@ -1585,11 +1929,11 @@ "translation.y": 0.0, "zoom_level": 1.0 }, - "stack_index": 4, + "stack_index": 16, "type": "text" }, { - "buffer": 7, + "buffer": 16, "file": "utils/runner.h", "semi_transient": false, "settings": @@ -1613,11 +1957,11 @@ "translation.y": 0.0, "zoom_level": 1.0 }, - "stack_index": 9, + "stack_index": 17, "type": "text" }, { - "buffer": 8, + "buffer": 17, "file": "set1/runner.h", "semi_transient": false, "settings": @@ -1629,8 +1973,8 @@ "selection": [ [ - 0, - 0 + 597, + 597 ] ], "settings": @@ -1641,24 +1985,52 @@ "translation.y": 0.0, "zoom_level": 1.0 }, - "stack_index": 7, + "stack_index": 5, "type": "text" }, { - "buffer": 9, + "buffer": 18, + "file": "set2/runner.h", + "semi_transient": false, + "settings": + { + "buffer_size": 173, + "regions": + { + }, + "selection": + [ + [ + 64, + 64 + ] + ], + "settings": + { + "syntax": "Packages/C Improved/C Improved.tmLanguage" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 4, + "type": "text" + }, + { + "buffer": 19, "file": "Makefile", "semi_transient": false, "settings": { - "buffer_size": 861, + "buffer_size": 936, "regions": { }, "selection": [ [ - 0, - 0 + 886, + 886 ] ], "settings": @@ -1669,7 +2041,7 @@ "translation.y": 0.0, "zoom_level": 1.0 }, - "stack_index": 8, + "stack_index": 6, "type": "text" } ] @@ -1677,7 +2049,7 @@ ], "incremental_find": { - "height": 23.0 + "height": 25.0 }, "input": { @@ -1738,7 +2110,7 @@ "project": "MatsanoCrypto", "replace": { - "height": 42.0 + "height": 46.0 }, "save_all_on_build": true, "select_file": diff --git a/etc/set2_t2.txt b/etc/set2_t2.txt new file mode 100644 index 0000000..f0802a5 --- /dev/null +++ b/etc/set2_t2.txt @@ -0,0 +1,64 @@ +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 diff --git a/set1/ecb.c b/set1/ecb.c index abe6288..c6f0ba6 100644 --- a/set1/ecb.c +++ b/set1/ecb.c @@ -2,7 +2,11 @@ #include #include -uint32_t ecb_decrypt(const unsigned char* i_stream, const uint32_t i_stream_size, const unsigned char* i_pass, const uint32_t i_pass_size, unsigned char* o_buff) +uint32_t ecb_decrypt( const unsigned char* i_stream, + const uint32_t i_stream_size, + const unsigned char* i_pass, + const uint32_t i_pass_size, + unsigned char* o_buff) { int ret, ret_fin; ret=ret_fin=0; @@ -17,7 +21,11 @@ uint32_t ecb_decrypt(const unsigned char* i_stream, const uint32_t i_stream_size } -uint32_t ecb_encrypt(const unsigned char* i_stream, const uint32_t i_stream_size, const unsigned char* i_pass, const uint32_t i_pass_size, unsigned char* o_buff) +uint32_t ecb_encrypt( const unsigned char* i_stream, + const uint32_t i_stream_size, + const unsigned char* i_pass, + const uint32_t i_pass_size, + unsigned char* o_buff) { int ret, ret_fin; ret=ret_fin=0; diff --git a/set2/cbc.c b/set2/cbc.c new file mode 100644 index 0000000..0c92208 --- /dev/null +++ b/set2/cbc.c @@ -0,0 +1,21 @@ +#include "set1/ecb.h" +#include "utils/xor.h" +#include "utils/common.h" + +Result_t decrypt_cbc( uint8_t* input_buff, + size_t buff_len, + uint8_t* output_buff, + size_t* result_len) +{ + uint8_t iv[16] = {0}; + +} + + +Result_t encrypt_cbc( uint8_t* input_buff, + size_t buff_len, + uint8_t* output_buff, + size_t* result_len) +{ + +} \ No newline at end of file diff --git a/set2/runner.c b/set2/runner.c index 83b7162..982dd3e 100644 --- a/set2/runner.c +++ b/set2/runner.c @@ -3,6 +3,7 @@ #include "utils/pkcs7.h" #include #include +#include "cbc.h" FUNC(pkcs7_test) { @@ -22,4 +23,17 @@ FUNC(pkcs7_test) check(buff1[i] == 27, (const unsigned char* const) "Wrong padding"); } } +FUNC_E + +FUNC(cbc_decrypt) +{ + uint8_t iv[16] = {0}; + char key[17] = "YELLOW SUBMARINE"; // 16+'\0' = 17 + size_t len = 0; + uint8_t buff[4096] = {0}; + Result_t res = Result_Error; + + res = load_base64_to_hex("etc/set2_t2.txt", buff, &len); + +} FUNC_E \ No newline at end of file diff --git a/utils/base64.cpp b/utils/base64.cpp index ba627af..a5b069a 100644 --- a/utils/base64.cpp +++ b/utils/base64.cpp @@ -233,7 +233,9 @@ struct int24 base64_4char_to_hex(const char (&T)[4]) * @returns -1 on failure, on success possitive value equal to number of bytes encoded * -------------------------------------------------------------------------------- */ -int base64_to_hex(const unsigned char* const i_string, int i_string_len, unsigned char* o_hex_array ) +int base64_to_hex( const unsigned char* const i_string, + int i_string_len, + unsigned char* o_hex_array ) { int pointer = 0; int hex_pointer = 0; diff --git a/utils/common.c b/utils/common.c index 7eab1ba..eee5a19 100644 --- a/utils/common.c +++ b/utils/common.c @@ -2,7 +2,9 @@ #include #include -unsigned long read_file_to_buffer(const char* const filepath, char* obuff, int remove_new_line_chr) +unsigned long read_file_to_buffer( const char* const filepath, + char* obuff, + int remove_new_line_chr) { FILE* fh=0; size_t len=0; @@ -15,6 +17,15 @@ unsigned long read_file_to_buffer(const char* const filepath, char* obuff, int r exit(1); } + if(obuff=NULL) + { + //allocate + fseek(fh, 0, SEEK_END); + int pos = ftell(fh); + fseek(fh, 0, SEEK_CUR); + obuff = malloc(pos); + } + while( getline(&line, &len, fh) != -1 ) { len = strlen(line); @@ -29,6 +40,18 @@ unsigned long read_file_to_buffer(const char* const filepath, char* obuff, int r return total_len; } +Result_t load_base64_to_hex(const char* const filepath, uint8_t* hex_buffer, size_t* len) +{ + uint8_t* base64_buff; + *len = read_file_to_buffer(filepath, base64_buff, 1); +/// int base64_to_hex(const unsigned char* const i_string, + //int i_string_len, + //unsigned char* o_hex_array ); + base64_to_hex(base64_buff, *len, hex_buffer); + + +} + void check(int iFlag, const unsigned char* const msg) { if(!iFlag) diff --git a/utils/common.h b/utils/common.h index 65a9e9a..a89fa6a 100644 --- a/utils/common.h +++ b/utils/common.h @@ -1,6 +1,19 @@ +#ifndef __common_h__ +#define __common_h__ + +#include + #define FUNC(x) void x() { printf("Entering %s\n", __func__); #define FUNC_E /*printf("Test done\n");*/ } +typedef enum +{ + Result_OK = 0, + Result_Error +} Result_t; + void check(int iFlag, const unsigned char* const msg = 0); struct int24 { unsigned int data:24; }; unsigned long read_file_to_buffer(const char* const filepath, char* obuff, int remove_new_line_chr = 1); + +#endif // __common_h__ \ No newline at end of file