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
21404598
Commit
21404598
authored
Jan 24, 2009
by
Juan Lang
Committed by
Alexandre Julliard
Jan 27, 2009
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cryptui: Select export format based on input in CryptUIWizExport.
parent
15a8ea6a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
39 additions
and
14 deletions
+39
-14
main.c
dlls/cryptui/main.c
+39
-14
No files found.
dlls/cryptui/main.c
View file @
21404598
...
...
@@ -5527,6 +5527,24 @@ static LRESULT CALLBACK export_welcome_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
return
ret
;
}
static
BOOL
export_info_has_private_key
(
PCCRYPTUI_WIZ_EXPORT_INFO
pExportInfo
)
{
BOOL
ret
=
FALSE
;
if
(
pExportInfo
->
dwSubjectChoice
==
CRYPTUI_WIZ_EXPORT_CERT_CONTEXT
)
{
DWORD
size
;
/* If there's a CRYPT_KEY_PROV_INFO set for this cert, assume the
* cert has a private key.
*/
if
(
CertGetCertificateContextProperty
(
pExportInfo
->
u
.
pCertContext
,
CERT_KEY_PROV_INFO_PROP_ID
,
NULL
,
&
size
))
ret
=
TRUE
;
}
return
ret
;
}
static
LRESULT
CALLBACK
export_format_dlg_proc
(
HWND
hwnd
,
UINT
msg
,
WPARAM
wp
,
LPARAM
lp
)
{
...
...
@@ -5538,10 +5556,28 @@ static LRESULT CALLBACK export_format_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
case
WM_INITDIALOG
:
{
PROPSHEETPAGEW
*
page
=
(
PROPSHEETPAGEW
*
)
lp
;
int
defaultFormatID
;
data
=
(
struct
ExportWizData
*
)
page
->
lParam
;
SetWindowLongPtrW
(
hwnd
,
DWLP_USER
,
(
LPARAM
)
data
);
SendMessageW
(
GetDlgItem
(
hwnd
,
IDC_EXPORT_FORMAT_DER
),
BM_CLICK
,
0
,
0
);
switch
(
data
->
contextInfo
.
dwExportFormat
)
{
case
CRYPTUI_WIZ_EXPORT_FORMAT_BASE64
:
defaultFormatID
=
IDC_EXPORT_FORMAT_BASE64
;
break
;
case
CRYPTUI_WIZ_EXPORT_FORMAT_PKCS7
:
defaultFormatID
=
IDC_EXPORT_FORMAT_CMS
;
break
;
case
CRYPTUI_WIZ_EXPORT_FORMAT_PFX
:
if
(
export_info_has_private_key
(
data
->
pExportInfo
))
defaultFormatID
=
IDC_EXPORT_FORMAT_PFX
;
else
defaultFormatID
=
IDC_EXPORT_FORMAT_DER
;
break
;
default:
defaultFormatID
=
IDC_EXPORT_FORMAT_DER
;
}
SendMessageW
(
GetDlgItem
(
hwnd
,
defaultFormatID
),
BM_CLICK
,
0
,
0
);
break
;
}
case
WM_NOTIFY
:
...
...
@@ -5846,19 +5882,8 @@ static LRESULT CALLBACK export_file_dlg_proc(HWND hwnd, UINT msg, WPARAM wp,
data
=
(
struct
ExportWizData
*
)
page
->
lParam
;
SetWindowLongPtrW
(
hwnd
,
DWLP_USER
,
(
LPARAM
)
data
);
if
(
data
->
pExportInfo
->
dwSubjectChoice
==
CRYPTUI_WIZ_EXPORT_CERT_CONTEXT
)
{
DWORD
size
;
/* If there's a CRYPT_KEY_PROV_INFO set for this cert, assume the
* cert has a private key.
*/
if
(
CertGetCertificateContextProperty
(
data
->
pExportInfo
->
u
.
pCertContext
,
CERT_KEY_PROV_INFO_PROP_ID
,
NULL
,
&
size
))
EnableWindow
(
GetDlgItem
(
hwnd
,
IDC_EXPORT_FORMAT_PFX
),
TRUE
);
}
if
(
export_info_has_private_key
(
data
->
pExportInfo
))
EnableWindow
(
GetDlgItem
(
hwnd
,
IDC_EXPORT_FORMAT_PFX
),
TRUE
);
break
;
}
case
WM_NOTIFY
:
...
...
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