From b24981edcb5afb118d670e71be8256872b893ef8 Mon Sep 17 00:00:00 2001 From: german Date: Tue, 23 Dec 2025 18:55:58 +0400 Subject: [PATCH] first commit --- commands.txt | 6 +++--- database.sig | Bin 256 -> 0 bytes key.sig | Bin 0 -> 256 bytes my_usr.bin | 3 --- user.bin | 3 +++ vipre-cryptor | Bin 17280 -> 17400 bytes vipre-manager.h | 29 ++++++++++++++++++++++++++++- 7 files changed, 34 insertions(+), 7 deletions(-) delete mode 100644 database.sig create mode 100644 key.sig delete mode 100644 my_usr.bin create mode 100644 user.bin diff --git a/commands.txt b/commands.txt index d1d7bf4..ad4f00c 100644 --- a/commands.txt +++ b/commands.txt @@ -1,3 +1,3 @@ -./vipre-cryptor --sig database.sig -./vipre-cryptor --create-user my_usr.bin database.sig -f example.txt -./vipre-cryptor --user my_usr.bin database.sig -f example_out.txt +./vipre-cryptor --sig key_file.sig +./vipre-cryptor --create-user user_name.bin key_file.sig -f example.txt +./vipre-cryptor --user user_name.bin key_file.sig -f example_out.txt diff --git a/database.sig b/database.sig deleted file mode 100644 index 93e05e60c6d4139f2a8c6cb6668c1b8a1629384c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 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 bKf5&H%yb=_VrCQPOt)Tlqt2!y6xsg+jeK~i delta 4539 zcmZ`-3s6+o8NPQPxXWYjE+ESq9;;mpDC{FX5OHNMu6oI=iD}hH&4Z*4i5ZiS1d_I6 zx-iQc?~u(vj%gl^ElxAmJO_(o6Q$DCbeZS{o~npkC;v}kL*48*^h10UikM%gY{XP-y+ZJiyaO)O9aI*JDFzI%24bU^09sy z`yd%GDPhAYj1Gb6v_Bf8k%@z*O(bLA zvBUB|w{#&~)-B(9J;GlTZuU0rYjCok^&T zd<^s>pj}C57P$fR8=&zdbUG@$WJt+Pxz55ves22b}K>+S4( zx#(AJhND{Q8ddq|VupQD4Z1*ge|tUUH5^7E{MlD`0A zn&z$*BK{|7R}lZxm@c&WpN1lxx*^NbMp>5oj4zP`S;h1G=?pUx2TC)5!z&rkyAt{) z<4jmRdPg5G7%RNgmodAP%*ZYbUz&?J>f5Q+PXuvFA~2y*-Y3Me^@8}BFV5}b*rR^w z2E#mkix6AM3Ka(%z1%)@B1d#W#r4K4g#isi*PHs4d5p$;=oaOI2R9(g0OM2jXdKAs zh5GjQ>F9<-^<;PU67t6Mk}yZ_+m?}waO%17_EV>@4|6337grK=S*0gI z_QgZuf5DgwhIAJI_-?I)8G^=4=23VKbt)c0K3wZ*I0=cv(zD3OGNAw#1Ws&6*A=GoLthC<6sw&V>$f1i4uC# zQ$5)4j2gE%E^Vf_@l&YrHbfc2!7B+ap_gnHzr~W z*fnCG^c)a6W0)QBu=ERPtD;wH#9nTDT!>!ewjVV0bJ0aOfmcPpqw~|2;RLGY5%d2N4y*fuOPtiLw3T{v(sEV&-Aet< zs^<1*S5_S4q9&FJV?gnI@m6?#So1t6h{J+7CcW}CUEZ++G-T;RMZsK;NzKW4Hx%F1 z9{QxC)p!CbmG7t$#VYZX9zE0OMo7p`JyO8It;4KznU0EM+`c%^?cZW#q@PjCim9eg zL#V7>lhoZc>FUsqLN_h}IP_-b{gvDOzu%eEmvUkG?ov>~o zC|Z=YQp;zwTGnHZX=S%wM{%mPTnlDMJeRyvQOZZ8j%&DuvRS!k2G~jsqg1{w`mR(0 zxLY_B+w8K2VvR1ZbRUhQZTc{!IF;2Lm)@d&#M7F7O?nNwQo-=`UXrgHbc*t6FtMO( zwL*uh*TD#hM?zxIWs>fvu3{lqgE}gn7Q}xDVKLn$t-we~yh@jQ1G>?86P_;fT|(Oy znAHH`#XcP14`L~PgS{y2x=Q)7^a3QW7Ji#LxmacO)Zn5c$Utc6rE3rrze=pPvfKfB z4)4T^h;&a_a}|Uf-CN&|WsxS)*9sacJs47G=otBwjvS|pi`6TUmisOWqQNB%0~R7n zTukEv$|?riCy(0bwo{%VEwXZIF5?#)s+wRjRuehQN-eMot*R(>HGN3;%cU#oJw_Ed zE`0$>lYAR;qyQ(TdM+G5Pagd<68PMR1a{ET>o{4ZLG;MG`IWkWk(|$uExVWI7rzYh zOzlJw2S=WQG3x9TOb^fvi(-5hcFHyx%~pAE-9c?zFO!~vl4%3rNoy{X^98qOOE}B0 zdrTqmGj&2o7G5I-g*ldQY3aoLRWzjIm&oSA?cEJ&UF;v7Ti82Jz-XiP>(%7mBrGxZ zL-Gxc`z2)SRQIu&r`a&wu=E+)d;!5j_Ft6cA;=-fNl53oET2W-UdT?WexH<`Y+vDsb9*liGRfi?t|}3IlFOa+GA%NQtVLMJDFiee<Rp5`l@n$o9vlychD!gP3K@t0X3||^$0l! ztA8oX5n@|l_dS-li}r<{hFLH?qQR&QS z>dQQ;d5L$QTbQrwPOGS3$@;~i?(W4!dbX3C@_TH}DXK+6t{{%39$TMQYYDlC)Gqaq zKk!!a%2Kbn4$ny1>d3&-@|)$EDAOV0s0y1_Yc)amDm(d8mCf8h-|^5I$Us#&Ia*~k z1(GS{0b6Eb>Jn0)Mt&M_rzUm}s_wFKDxtY}R9&(iTlJ^m%soF|T z@?P_I|LU++m*3o8PJCn1HbiQxWwwsgE-O#ny->xb^yIZ=3sZl;SXF1R 65000) ret = 0; + if (ret > 65000) ret = ret / 10; pos ++; } if (ret == 0) ret ++; @@ -94,6 +94,25 @@ signed short int __find_arr_index(char val, char* arr, size_t len) { return -1; } +void __refresh_dt(char* arr, size_t sz) { + sz --; + char save_dt = arr[sz]; + unsigned int pos = sz - 1; + while (true) { + arr[pos + 1] = arr[pos]; + if (pos) pos --; + else break; + } + arr[0] = save_dt; +} + +void __refresh_data(char* arr, size_t sz, unsigned int to) { + while (to != 0) { + __refresh_dt(arr, sz); + to --; + } +} + int __create_sig(char* file) { size_t arr_len = abs(CHAR_MIN) + abs(CHAR_MAX) + 1; char* arr = (char*)malloc(arr_len * sizeof(char)); @@ -156,6 +175,7 @@ int __create_user(char* file, char* user_file, char* cry_file) { password[cnt] = c; cnt ++; } + size_t cnt_save = cnt; password[cnt] = '\0'; fputs("Repeat password: ", stdout); cnt = 0; @@ -167,6 +187,11 @@ int __create_user(char* file, char* user_file, char* cry_file) { } cnt ++; } + if (cnt != cnt_save) { + puts("\033[1mvipre-cryptor: \033[91mThe password was repeated incorrectly!\033[0m"); + free(arr); + return EXIT_FAILURE; + } fputs(user_login, wp); putc('\n', wp); fputs(password, wp); putc('\n', wp); fseek(fw, 0, SEEK_END); @@ -177,6 +202,7 @@ int __create_user(char* file, char* user_file, char* cry_file) { c = (char)getc(fw); c = arr[(unsigned char)c]; putc(c, wp); + __refresh_data(arr, arr_len, abs(arr[0])); count ++; } free(arr); @@ -224,6 +250,7 @@ int __read_user(char* file, char* user_file, char* cry_file) { while (pos < data_size) { c = getc(up); c = __find_arr_index(c, arr, arr_len); + __refresh_data(arr, arr_len, abs(arr[0])); putc(c, fw); pos ++; }