Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
2d05074f
Commit
2d05074f
authored
Nov 05, 2009
by
Juan Lang
Committed by
Alexandre Julliard
Nov 09, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rsaenh: Only reverse the significant bytes of an exported private key.
parent
b1beb212
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
7 additions
and
8 deletions
+7
-8
implglue.c
dlls/rsaenh/implglue.c
+7
-7
rsaenh.c
dlls/rsaenh/tests/rsaenh.c
+0
-1
No files found.
dlls/rsaenh/implglue.c
View file @
2d05074f
...
@@ -399,43 +399,43 @@ BOOL export_private_key_impl(BYTE *pbDest, const KEY_CONTEXT *pKeyContext, DWORD
...
@@ -399,43 +399,43 @@ BOOL export_private_key_impl(BYTE *pbDest, const KEY_CONTEXT *pKeyContext, DWORD
DWORD
*
pdwPubExp
)
DWORD
*
pdwPubExp
)
{
{
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
N
,
pbDest
);
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
N
,
pbDest
);
reverse_bytes
(
pbDest
,
dwKeyLen
);
reverse_bytes
(
pbDest
,
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
N
)
);
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
N
)
<
dwKeyLen
)
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
N
)
<
dwKeyLen
)
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
N
),
0
,
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
N
),
0
,
dwKeyLen
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
N
));
dwKeyLen
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
N
));
pbDest
+=
dwKeyLen
;
pbDest
+=
dwKeyLen
;
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
p
,
pbDest
);
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
p
,
pbDest
);
reverse_bytes
(
pbDest
,
(
dwKeyLen
+
1
)
>>
1
);
reverse_bytes
(
pbDest
,
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
p
)
);
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
p
)
<
(
dwKeyLen
+
1
)
>>
1
)
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
p
)
<
(
dwKeyLen
+
1
)
>>
1
)
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
p
),
0
,
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
p
),
0
,
((
dwKeyLen
+
1
)
>>
1
)
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
p
));
((
dwKeyLen
+
1
)
>>
1
)
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
p
));
pbDest
+=
(
dwKeyLen
+
1
)
>>
1
;
pbDest
+=
(
dwKeyLen
+
1
)
>>
1
;
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
q
,
pbDest
);
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
q
,
pbDest
);
reverse_bytes
(
pbDest
,
(
dwKeyLen
+
1
)
>>
1
);
reverse_bytes
(
pbDest
,
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
q
)
);
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
q
)
<
(
dwKeyLen
+
1
)
>>
1
)
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
q
)
<
(
dwKeyLen
+
1
)
>>
1
)
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
q
),
0
,
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
q
),
0
,
((
dwKeyLen
+
1
)
>>
1
)
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
q
));
((
dwKeyLen
+
1
)
>>
1
)
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
q
));
pbDest
+=
(
dwKeyLen
+
1
)
>>
1
;
pbDest
+=
(
dwKeyLen
+
1
)
>>
1
;
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
dP
,
pbDest
);
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
dP
,
pbDest
);
reverse_bytes
(
pbDest
,
(
dwKeyLen
+
1
)
>>
1
);
reverse_bytes
(
pbDest
,
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dP
)
);
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dP
)
<
(
dwKeyLen
+
1
)
>>
1
)
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dP
)
<
(
dwKeyLen
+
1
)
>>
1
)
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dP
),
0
,
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dP
),
0
,
((
dwKeyLen
+
1
)
>>
1
)
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dP
));
((
dwKeyLen
+
1
)
>>
1
)
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dP
));
pbDest
+=
(
dwKeyLen
+
1
)
>>
1
;
pbDest
+=
(
dwKeyLen
+
1
)
>>
1
;
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
dQ
,
pbDest
);
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
dQ
,
pbDest
);
reverse_bytes
(
pbDest
,
(
dwKeyLen
+
1
)
>>
1
);
reverse_bytes
(
pbDest
,
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dQ
)
);
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dQ
)
<
(
dwKeyLen
+
1
)
>>
1
)
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dQ
)
<
(
dwKeyLen
+
1
)
>>
1
)
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dQ
),
0
,
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dQ
),
0
,
((
dwKeyLen
+
1
)
>>
1
)
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dQ
));
((
dwKeyLen
+
1
)
>>
1
)
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
dQ
));
pbDest
+=
(
dwKeyLen
+
1
)
>>
1
;
pbDest
+=
(
dwKeyLen
+
1
)
>>
1
;
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
qP
,
pbDest
);
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
qP
,
pbDest
);
reverse_bytes
(
pbDest
,
(
dwKeyLen
+
1
)
>>
1
);
reverse_bytes
(
pbDest
,
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
qP
)
);
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
qP
)
<
(
dwKeyLen
+
1
)
>>
1
)
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
qP
)
<
(
dwKeyLen
+
1
)
>>
1
)
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
qP
),
0
,
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
qP
),
0
,
((
dwKeyLen
+
1
)
>>
1
)
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
qP
));
((
dwKeyLen
+
1
)
>>
1
)
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
qP
));
pbDest
+=
(
dwKeyLen
+
1
)
>>
1
;
pbDest
+=
(
dwKeyLen
+
1
)
>>
1
;
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
d
,
pbDest
);
mp_to_unsigned_bin
(
&
pKeyContext
->
rsa
.
d
,
pbDest
);
reverse_bytes
(
pbDest
,
dwKeyLen
);
reverse_bytes
(
pbDest
,
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
d
)
);
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
d
)
<
dwKeyLen
)
if
(
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
d
)
<
dwKeyLen
)
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
d
),
0
,
memset
(
pbDest
+
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
d
),
0
,
dwKeyLen
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
d
));
dwKeyLen
-
mp_unsigned_bin_size
(
&
pKeyContext
->
rsa
.
d
));
...
...
dlls/rsaenh/tests/rsaenh.c
View file @
2d05074f
...
@@ -1842,7 +1842,6 @@ static void test_import_export(void)
...
@@ -1842,7 +1842,6 @@ static void test_import_export(void)
ok
(
dwDataLen
==
sizeof
(
expected_exported_priv_key
),
"unexpected size %d
\n
"
,
ok
(
dwDataLen
==
sizeof
(
expected_exported_priv_key
),
"unexpected size %d
\n
"
,
dwDataLen
);
dwDataLen
);
todo_wine
ok
(
!
memcmp
(
exported_key
,
expected_exported_priv_key
,
dwDataLen
),
ok
(
!
memcmp
(
exported_key
,
expected_exported_priv_key
,
dwDataLen
),
"unexpected value
\n
"
);
"unexpected value
\n
"
);
...
...
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