@@ -48,21 +48,20 @@ bool AES::encryptFilePart(QIODevice *file, qint64 pos, qint64 end, const QByteAr
48
48
49
49
file->seek (pos);
50
50
51
- qint64 bufferSize = 4096 ;
51
+ const qint64 bufferSize = 4096 ;
52
52
qint64 size = end - pos;
53
53
qint64 parts = size / bufferSize;
54
54
qint64 additional = size % bufferSize;
55
55
emit setMaximumValue (parts);
56
56
57
- unsigned char *buffer = new unsigned char [bufferSize];
58
- unsigned char *outBuffer = new unsigned char [bufferSize];
59
-
60
- int len = 0 ;
61
-
62
57
EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new ();
63
58
if (!ctx) return false ;
64
59
if (1 != EVP_EncryptInit_ex (ctx, EVP_aes_256_xts (), NULL , key, NULL )) return false ;
65
60
61
+ unsigned char buffer[bufferSize];
62
+ unsigned char outBuffer[bufferSize];
63
+ int len = 0 ;
64
+
66
65
for (int i = 0 ; i < parts; ++i)
67
66
{
68
67
file->read ((char *)buffer, bufferSize);
@@ -79,8 +78,6 @@ bool AES::encryptFilePart(QIODevice *file, qint64 pos, qint64 end, const QByteAr
79
78
file->write ((char *)outBuffer, additional);
80
79
81
80
EVP_CIPHER_CTX_free (ctx);
82
- delete[] buffer;
83
- delete[] outBuffer;
84
81
emit finished ();
85
82
return true ;
86
83
}
@@ -94,19 +91,18 @@ bool AES::decryptFilePart(QIODevice *file, qint64 pos, qint64 end, const QByteAr
94
91
95
92
file->seek (pos);
96
93
94
+ const qint64 bufferSize = 4096 ;
97
95
qint64 size = end - pos;
98
- qint64 bufferSize = 4096 ;
99
96
qint64 parts = size / bufferSize;
100
97
qint64 additional = size % bufferSize;
101
98
emit setMaximumValue (parts);
102
99
103
- unsigned char *buffer = new unsigned char [bufferSize];
104
- unsigned char *outBuffer = new unsigned char [bufferSize];
105
-
106
100
EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new ();
107
101
if (!ctx) return false ;
108
102
if (!EVP_DecryptInit_ex (ctx, EVP_aes_256_xts (), NULL , key, NULL )) return false ;
109
103
104
+ unsigned char buffer[bufferSize];
105
+ unsigned char outBuffer[bufferSize];
110
106
int len = 0 ;
111
107
112
108
for (int i = 0 ; i < parts; ++i)
@@ -126,8 +122,6 @@ bool AES::decryptFilePart(QIODevice *file, qint64 pos, qint64 end, const QByteAr
126
122
file->write ((char *)outBuffer, len);
127
123
128
124
EVP_CIPHER_CTX_free (ctx);
129
- delete[] buffer;
130
- delete[] outBuffer;
131
125
emit finished ();
132
126
return true ;
133
127
}
0 commit comments