Make SMB3 encryption 2x faster again!

This makes use of new functions provided by GnuTLS to work with io vectors directly!

The functions are available with GnuTLS 3.6.10: gnutls/gnutls#718 (closed)

but when I started to use them I discovered a bug which is going to be addressed with: gnutls/gnutls!1085 (merged)

Samba with GnuTLS 3.6.10 using gnutls_aead_cipher_(en|de)crypt

time bin/smbclient //krikkit/test -Uasn%secret -mSMB3 -e -c 'put 4GB.bin; 
quit'
putting file 4GB.bin as \4GB.bin (457843.5 kb/s) (average 457843.5 kb/s)

real    0m10.054s
user    0m3.604s
sys     0m4.923s

time bin/smbclient //krikkit/test -Uasn%secret -mSMB3 -e -c 'get 4GB.bin /dev/
null; quit'
getting file \4GB.bin of size 4294967296 as /dev/null (620000.6 KiloBytes/sec) 
(average 620000.6 KiloBytes/sec)

real    0m7.425s
user    0m2.840s
sys     0m3.128s



Samba with GnuTLS 3.6.10 using gnutls_aead_cipher_(en|de)cryptv2
(note the v for vector!)

time bin/smbclient //krikkit/test -Uasn%secret -mSMB3 -e -c 'put 4GB.bin; 
quit'
putting file 4GB.bin as \4GB.bin (692700.9 kb/s) (average 692700.9 kb/s)

real    0m6.761s
user    0m2.492s
sys     0m2.841s

time bin/smbclient //krikkit/test -Uasn%secret -mSMB3 -e -c 'get 4GB.bin /dev/
null; quit'
getting file \4GB.bin of size 4294967296 as /dev/null (1293739.6 KiloBytes/
sec) (average 1293739.7 KiloBytes/sec)

real    0m3.934s
user    0m1.907s
sys     0m0.558s

Merge request reports

Loading