Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
onlyoffice_core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boris Kocherov
onlyoffice_core
Commits
9272b27a
Commit
9272b27a
authored
Oct 16, 2017
by
ElenaSubbotina
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
crypto fix padding size
parent
ef57330a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
6 deletions
+6
-6
OfficeCryptReader/source/CryptTransform.cpp
OfficeCryptReader/source/CryptTransform.cpp
+6
-6
No files found.
OfficeCryptReader/source/CryptTransform.cpp
View file @
9272b27a
...
...
@@ -821,7 +821,7 @@ void ECMAEncryptor::UpdateDataIntegrity(unsigned char* data, int size)
cryptData
.
encryptedHmacKey
=
std
::
string
((
char
*
)
pEncHmacKey
.
ptr
,
pEncHmacKey
.
size
);
cryptData
.
encryptedHmacValue
=
std
::
string
((
char
*
)
pEncHmacValue
.
ptr
,
pEncHmacValue
.
size
);
}
#define PADDING_SIZE 16 // 8
int
ECMAEncryptor
::
Encrypt
(
unsigned
char
*
data_inp_ptr
,
int
size
,
unsigned
char
*&
data_out_ptr
)
{
data_out_ptr
=
NULL
;
...
...
@@ -831,10 +831,10 @@ int ECMAEncryptor::Encrypt(unsigned char* data_inp_ptr, int size, unsigned char*
_buf
empty
(
NULL
,
0
,
false
);
int
size_out
=
size
;
if
(
size_out
%
8
!=
0
)
size_out
=
(
size_out
/
8
+
1
)
*
8
;
if
(
size_out
%
PADDING_SIZE
!=
0
)
size_out
=
(
size_out
/
PADDING_SIZE
+
1
)
*
PADDING_SIZE
;
data_out_ptr
=
new
unsigned
char
[
size_out
+
8
];
// real size + padding + size for realsize
data_out_ptr
=
new
unsigned
char
[
size_out
+
PADDING_SIZE
];
// real size + padding + size for realsize
_UINT64
nSize
=
size
;
memcpy
(
data_out_ptr
,
(
unsigned
char
*
)
&
nSize
,
8
);
...
...
@@ -886,8 +886,8 @@ int ECMAEncryptor::Encrypt(unsigned char* data_inp_ptr, int size, unsigned char*
EncryptCipher
(
pDecryptedKey
,
iv
,
pInp
,
pOut
,
cryptData
.
cipherAlgorithm
);
if
(
sz
%
8
!=
0
)
sz
=
(
sz
/
8
+
1
)
*
8
;
if
(
sz
%
PADDING_SIZE
!=
0
)
sz
=
(
sz
/
PADDING_SIZE
+
1
)
*
PADDING_SIZE
;
memcpy
(
data_out
,
pOut
.
ptr
,
sz
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment