From d8d820479e0209e7ff072ce3b86f4acc94df4bac Mon Sep 17 00:00:00 2001 From: vadzik Date: Sun, 14 Apr 2024 15:54:14 +0300 Subject: [PATCH] use GOST for random bytes generation --- PATH | 1 + app/utils_drive.py | 20 +++++++++++++------- pygost-5.13/dist/pygost-5.13-py3.12.egg | Bin 317057 -> 317057 bytes 3 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 PATH diff --git a/PATH b/PATH new file mode 100644 index 0000000..2566589 --- /dev/null +++ b/PATH @@ -0,0 +1 @@ +/home/Vadzik/Data/Maxim/University/ВКР/disk_eraser/venv/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin diff --git a/app/utils_drive.py b/app/utils_drive.py index 22effda..510a030 100644 --- a/app/utils_drive.py +++ b/app/utils_drive.py @@ -1,8 +1,9 @@ import threading import os +import pygost.gost3412 as gost -from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes -from cryptography.hazmat.backends import default_backend +# from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes +# from cryptography.hazmat.backends import default_backend erasing_methods = { "2 прохода": { @@ -31,12 +32,17 @@ erasing_methods = { def get_random_bytes(size): seed=os.urandom(32) - backend = default_backend() - cipher = Cipher(algorithms.AES(seed), modes.CTR(b'\0'*16), backend=backend) - encryptor = cipher.encryptor() + # backend = default_backend() + # cipher = Cipher(algorithms.AES(seed), modes.CTR(b'\0'*16), backend=backend) + # encryptor = cipher.encryptor() nulls=b'\0'*(size) - return encryptor.update(nulls) + enc = gost.GOST3412Kuznechik(seed) + rounds = int(size / 32) + data = b'' + for i in range(512): + data += enc.encrypt(nulls) + return data class Drive(): @@ -84,7 +90,7 @@ class Drive(): else: data = erasing_methods[method]["data"][i] * write_size drive.write(data) - len_write += write_size + len_write += len(data) cur_percent = len_write/self.capacity if cur_percent - prev_percent > 0.01: progressbar.set(cur_percent) diff --git a/pygost-5.13/dist/pygost-5.13-py3.12.egg b/pygost-5.13/dist/pygost-5.13-py3.12.egg index 3ae678c2fc88cc3a3f73d2ee11ac6b9347e1c403..8609e5bfa747a3780af3e885583821966602fb40 100644 GIT binary patch delta 947 zcmYMyT}YEr7zgn8J?Gi{C^vQJ>`O=rA`A^hs@cY*auB35F)h<6Vj1)y$p|xWL>GCn z%5pDt6BU6GihaJ)ML2a|n$x8>K{qP`K}6_6$c%FT_l&OI-=60=&w0){^9-3hL#C0( z4(`6;ee=|@Ck2?PnwJx}|IBH@H|{)?_}42=nD%lqG zSXkbVWomas_HRopP^~}YY4lV#FU!9R5KGTwFLlsp4m-CMDkx?@8DuVDJsk3tv3*%k zu#%M+q4he}ng_L9W_GR1^Dfq|N6c`Y*$hziZMIHOm6xs7LXPh&zCEFLg?vU!Zq#`8 zBH3HS`!_*37G9jGEjZ3sGa!2dFVwPE+W6<)IKHL*WA;}rNq19l{DEq&Q!n-LU)t~& zygV-zb)KCU7t1RoX}14=-LQ{0RG@SE7k(`by7i4`?}8rbX<0i^Uk1G{OT-l05t_?N z+I1v^f#!m=i;P5>Sg`RHOR`>h5XN delta 947 zcmYMyT}YEr7zgn8J?EKU<>m*v*@uu6L>L+qsb(9K%0ZCR#I#JOh-Hu^iG+FKh%Oqj z%5pDt6BU6GihaJ)ML2bCx|~~j6Lez{2qHokLS~fvzh`vy{`Nf2dCqgrnR_VPJ(NB2 z*unE|cf5J(*qaQ@R?f?D+<#VO!FRFhaQu5Czgo?&mgR2!=8w9Js{`2vS&|OQO00tA zsmDX|0W4E{re**3_yX1XLk^>-x^+eVU4U3x279T4MswKtZBRim`^g}qne}qWSIYKh zLQ@sYY=AauS&Ip3zRc`em*-uqEeSFGb!O8;&RcAQph_=WtAQNf+2W44-WBp$ExB3a z-iKsg5%1puHW1S-YV}NwlIJ$dgX5OXD%cc9f!- z@mmk3G_(epB>IWv{Q8*qnLJ$B@TLPM7QN8GUY-^-BhggJ=9B9 z?V@@-w5Uzo=%t5RcKrb{JeBhIJ(Xd5t4cPYPbK_Wl(0&6bTy2UH3d267}WwV#^^M_ z{d5*+_KVa9Kb=9uI4;mNPUjF=NT6hb>JYgzAyzFVV4tK@NGX$41uQ3E3lQE}@dd=H z)c`f1=HwK)fLBvu9z&3t5a~={J}Aa8heXZ21Xe?$p<`O$NdoKB;-ob*0>d-fgeryU s58gtd2(@6d_6S`779!LMIOfEzgLBk~NNQ9>+M{CVPXcODjH-4204gOzCjbBd