Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
7e0e1a1f
Commit
7e0e1a1f
authored
Oct 24, 2008
by
Juan Lang
Committed by
Alexandre Julliard
Oct 27, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cryptui: Add tests for CryptUIWizImport.
parent
199bf795
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
335 additions
and
0 deletions
+335
-0
configure
configure
+9
-0
configure.ac
configure.ac
+1
-0
Makefile.in
dlls/cryptui/tests/Makefile.in
+13
-0
cryptui.c
dlls/cryptui/tests/cryptui.c
+312
-0
No files found.
configure
View file @
7e0e1a1f
...
@@ -22921,6 +22921,14 @@ dlls/cryptui/Makefile: dlls/cryptui/Makefile.in dlls/Makedll.rules"
...
@@ -22921,6 +22921,14 @@ dlls/cryptui/Makefile: dlls/cryptui/Makefile.in dlls/Makedll.rules"
ac_config_files
=
"
$ac_config_files
dlls/cryptui/Makefile"
ac_config_files
=
"
$ac_config_files
dlls/cryptui/Makefile"
ALL_MAKEFILES
=
"
$ALL_MAKEFILES
\\
ALL_MAKEFILES
=
"
$ALL_MAKEFILES
\\
dlls/cryptui/tests/Makefile"
test
"x
$enable_cryptui_tests
"
!=
xno
&&
ALL_TEST_DIRS
=
"
$ALL_TEST_DIRS
\\
cryptui/tests"
ALL_MAKEFILE_DEPENDS
=
"
$ALL_MAKEFILE_DEPENDS
dlls/cryptui/tests/Makefile: dlls/cryptui/tests/Makefile.in dlls/Maketest.rules"
ac_config_files
=
"
$ac_config_files
dlls/cryptui/tests/Makefile"
ALL_MAKEFILES
=
"
$ALL_MAKEFILES
\\
dlls/ctapi32/Makefile"
dlls/ctapi32/Makefile"
test
"x
$enable_ctapi32
"
!=
xno
&&
ALL_DLL_DIRS
=
"
$ALL_DLL_DIRS
\\
test
"x
$enable_ctapi32
"
!=
xno
&&
ALL_DLL_DIRS
=
"
$ALL_DLL_DIRS
\\
ctapi32"
ctapi32"
...
@@ -26656,6 +26664,7 @@ do
...
@@ -26656,6 +26664,7 @@ do
"dlls/cryptnet/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/cryptnet/Makefile" ;;
"dlls/cryptnet/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/cryptnet/Makefile" ;;
"dlls/cryptnet/tests/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/cryptnet/tests/Makefile" ;;
"dlls/cryptnet/tests/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/cryptnet/tests/Makefile" ;;
"dlls/cryptui/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/cryptui/Makefile" ;;
"dlls/cryptui/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/cryptui/Makefile" ;;
"dlls/cryptui/tests/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/cryptui/tests/Makefile" ;;
"dlls/ctapi32/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/ctapi32/Makefile" ;;
"dlls/ctapi32/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/ctapi32/Makefile" ;;
"dlls/ctl3d32/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/ctl3d32/Makefile" ;;
"dlls/ctl3d32/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/ctl3d32/Makefile" ;;
"dlls/d3d10/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/d3d10/Makefile" ;;
"dlls/d3d10/Makefile") CONFIG_FILES="
$CONFIG_FILES
dlls/d3d10/Makefile" ;;
...
...
configure.ac
View file @
7e0e1a1f
...
@@ -1771,6 +1771,7 @@ WINE_CONFIG_MAKEFILE([dlls/cryptdll/Makefile],[dlls/Makedll.rules],[dlls],[ALL_D
...
@@ -1771,6 +1771,7 @@ WINE_CONFIG_MAKEFILE([dlls/cryptdll/Makefile],[dlls/Makedll.rules],[dlls],[ALL_D
WINE_CONFIG_MAKEFILE([dlls/cryptnet/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/cryptnet/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/cryptnet/tests/Makefile],[dlls/Maketest.rules],[dlls],[ALL_TEST_DIRS])
WINE_CONFIG_MAKEFILE([dlls/cryptnet/tests/Makefile],[dlls/Maketest.rules],[dlls],[ALL_TEST_DIRS])
WINE_CONFIG_MAKEFILE([dlls/cryptui/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/cryptui/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/cryptui/tests/Makefile],[dlls/Maketest.rules],[dlls],[ALL_TEST_DIRS])
WINE_CONFIG_MAKEFILE([dlls/ctapi32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/ctapi32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/ctl3d32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/ctl3d32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/d3d10/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/d3d10/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
...
...
dlls/cryptui/tests/Makefile.in
0 → 100644
View file @
7e0e1a1f
TOPSRCDIR
=
@top_srcdir@
TOPOBJDIR
=
../../..
SRCDIR
=
@srcdir@
VPATH
=
@srcdir@
TESTDLL
=
cryptui.dll
IMPORTS
=
cryptui crypt32 kernel32 user32
CTESTS
=
\
cryptui.c
@MAKE_TEST_RULES@
@DEPENDENCIES@
# everything below this line is overwritten by make depend
dlls/cryptui/tests/cryptui.c
0 → 100644
View file @
7e0e1a1f
/*
* Unit test suite for cryptui.dll
*
* Copyright 2008 Juan Lang
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <stdarg.h>
#include <stdio.h>
#define NONAMELESSUNION
#include <windef.h>
#include <winbase.h>
#include <winerror.h>
#include <winuser.h>
#include <wincrypt.h>
#include <cryptuiapi.h>
#include "wine/test.h"
static
BYTE
v1CertWithValidPubKey
[]
=
{
0x30
,
0x81
,
0xcf
,
0x02
,
0x01
,
0x01
,
0x30
,
0x02
,
0x06
,
0x00
,
0x30
,
0x15
,
0x31
,
0x13
,
0x30
,
0x11
,
0x06
,
0x03
,
0x55
,
0x04
,
0x03
,
0x13
,
0x0a
,
0x4a
,
0x75
,
0x61
,
0x6e
,
0x20
,
0x4c
,
0x61
,
0x6e
,
0x67
,
0x00
,
0x30
,
0x22
,
0x18
,
0x0f
,
0x31
,
0x36
,
0x30
,
0x31
,
0x30
,
0x31
,
0x30
,
0x31
,
0x30
,
0x30
,
0x30
,
0x30
,
0x30
,
0x30
,
0x5a
,
0x18
,
0x0f
,
0x31
,
0x36
,
0x30
,
0x31
,
0x30
,
0x31
,
0x30
,
0x31
,
0x30
,
0x30
,
0x30
,
0x30
,
0x30
,
0x30
,
0x5a
,
0x30
,
0x15
,
0x31
,
0x13
,
0x30
,
0x11
,
0x06
,
0x03
,
0x55
,
0x04
,
0x03
,
0x13
,
0x0a
,
0x4a
,
0x75
,
0x61
,
0x6e
,
0x20
,
0x4c
,
0x61
,
0x6e
,
0x67
,
0x00
,
0x30
,
0x5c
,
0x30
,
0x0d
,
0x06
,
0x09
,
0x2a
,
0x86
,
0x48
,
0x86
,
0xf7
,
0x0d
,
0x01
,
0x01
,
0x01
,
0x05
,
0x00
,
0x03
,
0x4b
,
0x00
,
0x30
,
0x48
,
0x02
,
0x41
,
0x00
,
0xe2
,
0x54
,
0x3a
,
0xa7
,
0x83
,
0xb1
,
0x27
,
0x14
,
0x3e
,
0x59
,
0xbb
,
0xb4
,
0x53
,
0xe6
,
0x1f
,
0xe7
,
0x5d
,
0xf1
,
0x21
,
0x68
,
0xad
,
0x85
,
0x53
,
0xdb
,
0x6b
,
0x1e
,
0xeb
,
0x65
,
0x97
,
0x03
,
0x86
,
0x60
,
0xde
,
0xf3
,
0x6c
,
0x38
,
0x75
,
0xe0
,
0x4c
,
0x61
,
0xbb
,
0xbc
,
0x62
,
0x17
,
0xa9
,
0xcd
,
0x79
,
0x3f
,
0x21
,
0x4e
,
0x96
,
0xcb
,
0x0e
,
0xdc
,
0x61
,
0x94
,
0x30
,
0x18
,
0x10
,
0x6b
,
0xd0
,
0x1c
,
0x10
,
0x79
,
0x02
,
0x03
,
0x01
,
0x00
,
0x01
,
0xa3
,
0x16
,
0x30
,
0x14
,
0x30
,
0x12
,
0x06
,
0x03
,
0x55
,
0x1d
,
0x13
,
0x01
,
0x01
,
0xff
,
0x04
,
0x08
,
0x30
,
0x06
,
0x01
,
0x01
,
0xff
,
0x02
,
0x01
,
0x01
};
static
const
BYTE
iTunesCert3
[]
=
{
0x30
,
0x82
,
0x04
,
0xf1
,
0x30
,
0x82
,
0x03
,
0xd9
,
0xa0
,
0x03
,
0x02
,
0x01
,
0x02
,
0x02
,
0x10
,
0x0f
,
0x1a
,
0xa0
,
0xe0
,
0x9b
,
0x9b
,
0x61
,
0xa6
,
0xb6
,
0xfe
,
0x40
,
0xd2
,
0xdf
,
0x6a
,
0xf6
,
0x8d
,
0x30
,
0x0d
,
0x06
,
0x09
,
0x2a
,
0x86
,
0x48
,
0x86
,
0xf7
,
0x0d
,
0x01
,
0x01
,
0x05
,
0x05
,
0x00
,
0x30
,
0x81
,
0xb4
,
0x31
,
0x0b
,
0x30
,
0x09
,
0x06
,
0x03
,
0x55
,
0x04
,
0x06
,
0x13
,
0x02
,
0x55
,
0x53
,
0x31
,
0x17
,
0x30
,
0x15
,
0x06
,
0x03
,
0x55
,
0x04
,
0x0a
,
0x13
,
0x0e
,
0x56
,
0x65
,
0x72
,
0x69
,
0x53
,
0x69
,
0x67
,
0x6e
,
0x2c
,
0x20
,
0x49
,
0x6e
,
0x63
,
0x2e
,
0x31
,
0x1f
,
0x30
,
0x1d
,
0x06
,
0x03
,
0x55
,
0x04
,
0x0b
,
0x13
,
0x16
,
0x56
,
0x65
,
0x72
,
0x69
,
0x53
,
0x69
,
0x67
,
0x6e
,
0x20
,
0x54
,
0x72
,
0x75
,
0x73
,
0x74
,
0x20
,
0x4e
,
0x65
,
0x74
,
0x77
,
0x6f
,
0x72
,
0x6b
,
0x31
,
0x3b
,
0x30
,
0x39
,
0x06
,
0x03
,
0x55
,
0x04
,
0x0b
,
0x13
,
0x32
,
0x54
,
0x65
,
0x72
,
0x6d
,
0x73
,
0x20
,
0x6f
,
0x66
,
0x20
,
0x75
,
0x73
,
0x65
,
0x20
,
0x61
,
0x74
,
0x20
,
0x68
,
0x74
,
0x74
,
0x70
,
0x73
,
0x3a
,
0x2f
,
0x2f
,
0x77
,
0x77
,
0x77
,
0x2e
,
0x76
,
0x65
,
0x72
,
0x69
,
0x73
,
0x69
,
0x67
,
0x6e
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x2f
,
0x72
,
0x70
,
0x61
,
0x20
,
0x28
,
0x63
,
0x29
,
0x30
,
0x34
,
0x31
,
0x2e
,
0x30
,
0x2c
,
0x06
,
0x03
,
0x55
,
0x04
,
0x03
,
0x13
,
0x25
,
0x56
,
0x65
,
0x72
,
0x69
,
0x53
,
0x69
,
0x67
,
0x6e
,
0x20
,
0x43
,
0x6c
,
0x61
,
0x73
,
0x73
,
0x20
,
0x33
,
0x20
,
0x43
,
0x6f
,
0x64
,
0x65
,
0x20
,
0x53
,
0x69
,
0x67
,
0x6e
,
0x69
,
0x6e
,
0x67
,
0x20
,
0x32
,
0x30
,
0x30
,
0x34
,
0x20
,
0x43
,
0x41
,
0x30
,
0x1e
,
0x17
,
0x0d
,
0x30
,
0x36
,
0x30
,
0x31
,
0x31
,
0x37
,
0x30
,
0x30
,
0x30
,
0x30
,
0x30
,
0x30
,
0x5a
,
0x17
,
0x0d
,
0x30
,
0x38
,
0x30
,
0x31
,
0x32
,
0x32
,
0x32
,
0x33
,
0x35
,
0x39
,
0x35
,
0x39
,
0x5a
,
0x30
,
0x81
,
0xb4
,
0x31
,
0x0b
,
0x30
,
0x09
,
0x06
,
0x03
,
0x55
,
0x04
,
0x06
,
0x13
,
0x02
,
0x55
,
0x53
,
0x31
,
0x13
,
0x30
,
0x11
,
0x06
,
0x03
,
0x55
,
0x04
,
0x08
,
0x13
,
0x0a
,
0x43
,
0x61
,
0x6c
,
0x69
,
0x66
,
0x6f
,
0x72
,
0x6e
,
0x69
,
0x61
,
0x31
,
0x12
,
0x30
,
0x10
,
0x06
,
0x03
,
0x55
,
0x04
,
0x07
,
0x13
,
0x09
,
0x43
,
0x75
,
0x70
,
0x65
,
0x72
,
0x74
,
0x69
,
0x6e
,
0x6f
,
0x31
,
0x1d
,
0x30
,
0x1b
,
0x06
,
0x03
,
0x55
,
0x04
,
0x0a
,
0x14
,
0x14
,
0x41
,
0x70
,
0x70
,
0x6c
,
0x65
,
0x20
,
0x43
,
0x6f
,
0x6d
,
0x70
,
0x75
,
0x74
,
0x65
,
0x72
,
0x2c
,
0x20
,
0x49
,
0x6e
,
0x63
,
0x2e
,
0x31
,
0x3e
,
0x30
,
0x3c
,
0x06
,
0x03
,
0x55
,
0x04
,
0x0b
,
0x13
,
0x35
,
0x44
,
0x69
,
0x67
,
0x69
,
0x74
,
0x61
,
0x6c
,
0x20
,
0x49
,
0x44
,
0x20
,
0x43
,
0x6c
,
0x61
,
0x73
,
0x73
,
0x20
,
0x33
,
0x20
,
0x2d
,
0x20
,
0x4d
,
0x69
,
0x63
,
0x72
,
0x6f
,
0x73
,
0x6f
,
0x66
,
0x74
,
0x20
,
0x53
,
0x6f
,
0x66
,
0x74
,
0x77
,
0x61
,
0x72
,
0x65
,
0x20
,
0x56
,
0x61
,
0x6c
,
0x69
,
0x64
,
0x61
,
0x74
,
0x69
,
0x6f
,
0x6e
,
0x20
,
0x76
,
0x32
,
0x31
,
0x1d
,
0x30
,
0x1b
,
0x06
,
0x03
,
0x55
,
0x04
,
0x03
,
0x14
,
0x14
,
0x41
,
0x70
,
0x70
,
0x6c
,
0x65
,
0x20
,
0x43
,
0x6f
,
0x6d
,
0x70
,
0x75
,
0x74
,
0x65
,
0x72
,
0x2c
,
0x20
,
0x49
,
0x6e
,
0x63
,
0x2e
,
0x30
,
0x81
,
0x9f
,
0x30
,
0x0d
,
0x06
,
0x09
,
0x2a
,
0x86
,
0x48
,
0x86
,
0xf7
,
0x0d
,
0x01
,
0x01
,
0x01
,
0x05
,
0x00
,
0x03
,
0x81
,
0x8d
,
0x00
,
0x30
,
0x81
,
0x89
,
0x02
,
0x81
,
0x81
,
0x00
,
0xd3
,
0xab
,
0x3b
,
0x7f
,
0xec
,
0x48
,
0x84
,
0xce
,
0xa8
,
0x1a
,
0x12
,
0xf3
,
0x3c
,
0x87
,
0xcb
,
0x24
,
0x58
,
0x96
,
0x02
,
0x87
,
0x66
,
0x49
,
0xeb
,
0x89
,
0xee
,
0x79
,
0x44
,
0x70
,
0x8d
,
0xe7
,
0xd4
,
0x1f
,
0x30
,
0x92
,
0xc0
,
0x9c
,
0x35
,
0x78
,
0xc0
,
0xaf
,
0x1c
,
0xb6
,
0x28
,
0xd3
,
0xe0
,
0xe0
,
0x9d
,
0xd3
,
0x49
,
0x76
,
0x73
,
0x57
,
0x19
,
0x4d
,
0x8d
,
0x70
,
0x85
,
0x64
,
0x4d
,
0x1d
,
0xc6
,
0x02
,
0x3e
,
0xe5
,
0x2c
,
0x66
,
0x07
,
0xd2
,
0x27
,
0x4b
,
0xd6
,
0xc8
,
0x3c
,
0x93
,
0xb6
,
0x15
,
0x0c
,
0xde
,
0x5b
,
0xd7
,
0x93
,
0xdd
,
0xbe
,
0x85
,
0x62
,
0x34
,
0x17
,
0x8a
,
0x05
,
0x60
,
0xf0
,
0x8a
,
0x1c
,
0x5a
,
0x40
,
0x21
,
0x8d
,
0x51
,
0x6c
,
0xb0
,
0x62
,
0xd8
,
0xb5
,
0xd4
,
0xf9
,
0xb1
,
0xd0
,
0x58
,
0x7a
,
0x7a
,
0x82
,
0x55
,
0xb3
,
0xf9
,
0x53
,
0x71
,
0xde
,
0xd2
,
0xc9
,
0x37
,
0x8c
,
0xf6
,
0x5a
,
0x1f
,
0x2d
,
0xcd
,
0x7c
,
0x67
,
0x02
,
0x03
,
0x01
,
0x00
,
0x01
,
0xa3
,
0x82
,
0x01
,
0x7f
,
0x30
,
0x82
,
0x01
,
0x7b
,
0x30
,
0x09
,
0x06
,
0x03
,
0x55
,
0x1d
,
0x13
,
0x04
,
0x02
,
0x30
,
0x00
,
0x30
,
0x0e
,
0x06
,
0x03
,
0x55
,
0x1d
,
0x0f
,
0x01
,
0x01
,
0xff
,
0x04
,
0x04
,
0x03
,
0x02
,
0x07
,
0x80
,
0x30
,
0x40
,
0x06
,
0x03
,
0x55
,
0x1d
,
0x1f
,
0x04
,
0x39
,
0x30
,
0x37
,
0x30
,
0x35
,
0xa0
,
0x33
,
0xa0
,
0x31
,
0x86
,
0x2f
,
0x68
,
0x74
,
0x74
,
0x70
,
0x3a
,
0x2f
,
0x2f
,
0x43
,
0x53
,
0x43
,
0x33
,
0x2d
,
0x32
,
0x30
,
0x30
,
0x34
,
0x2d
,
0x63
,
0x72
,
0x6c
,
0x2e
,
0x76
,
0x65
,
0x72
,
0x69
,
0x73
,
0x69
,
0x67
,
0x6e
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x2f
,
0x43
,
0x53
,
0x43
,
0x33
,
0x2d
,
0x32
,
0x30
,
0x30
,
0x34
,
0x2e
,
0x63
,
0x72
,
0x6c
,
0x30
,
0x44
,
0x06
,
0x03
,
0x55
,
0x1d
,
0x20
,
0x04
,
0x3d
,
0x30
,
0x3b
,
0x30
,
0x39
,
0x06
,
0x0b
,
0x60
,
0x86
,
0x48
,
0x01
,
0x86
,
0xf8
,
0x45
,
0x01
,
0x07
,
0x17
,
0x03
,
0x30
,
0x2a
,
0x30
,
0x28
,
0x06
,
0x08
,
0x2b
,
0x06
,
0x01
,
0x05
,
0x05
,
0x07
,
0x02
,
0x01
,
0x16
,
0x1c
,
0x68
,
0x74
,
0x74
,
0x70
,
0x73
,
0x3a
,
0x2f
,
0x2f
,
0x77
,
0x77
,
0x77
,
0x2e
,
0x76
,
0x65
,
0x72
,
0x69
,
0x73
,
0x69
,
0x67
,
0x6e
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x2f
,
0x72
,
0x70
,
0x61
,
0x30
,
0x13
,
0x06
,
0x03
,
0x55
,
0x1d
,
0x25
,
0x04
,
0x0c
,
0x30
,
0x0a
,
0x06
,
0x08
,
0x2b
,
0x06
,
0x01
,
0x05
,
0x05
,
0x07
,
0x03
,
0x03
,
0x30
,
0x75
,
0x06
,
0x08
,
0x2b
,
0x06
,
0x01
,
0x05
,
0x05
,
0x07
,
0x01
,
0x01
,
0x04
,
0x69
,
0x30
,
0x67
,
0x30
,
0x24
,
0x06
,
0x08
,
0x2b
,
0x06
,
0x01
,
0x05
,
0x05
,
0x07
,
0x30
,
0x01
,
0x86
,
0x18
,
0x68
,
0x74
,
0x74
,
0x70
,
0x3a
,
0x2f
,
0x2f
,
0x6f
,
0x63
,
0x73
,
0x70
,
0x2e
,
0x76
,
0x65
,
0x72
,
0x69
,
0x73
,
0x69
,
0x67
,
0x6e
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x30
,
0x3f
,
0x06
,
0x08
,
0x2b
,
0x06
,
0x01
,
0x05
,
0x05
,
0x07
,
0x30
,
0x02
,
0x86
,
0x33
,
0x68
,
0x74
,
0x74
,
0x70
,
0x3a
,
0x2f
,
0x2f
,
0x43
,
0x53
,
0x43
,
0x33
,
0x2d
,
0x32
,
0x30
,
0x30
,
0x34
,
0x2d
,
0x61
,
0x69
,
0x61
,
0x2e
,
0x76
,
0x65
,
0x72
,
0x69
,
0x73
,
0x69
,
0x67
,
0x6e
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x2f
,
0x43
,
0x53
,
0x43
,
0x33
,
0x2d
,
0x32
,
0x30
,
0x30
,
0x34
,
0x2d
,
0x61
,
0x69
,
0x61
,
0x2e
,
0x63
,
0x65
,
0x72
,
0x30
,
0x1f
,
0x06
,
0x03
,
0x55
,
0x1d
,
0x23
,
0x04
,
0x18
,
0x30
,
0x16
,
0x80
,
0x14
,
0x08
,
0xf5
,
0x51
,
0xe8
,
0xfb
,
0xfe
,
0x3d
,
0x3d
,
0x64
,
0x36
,
0x7c
,
0x68
,
0xcf
,
0x5b
,
0x78
,
0xa8
,
0xdf
,
0xb9
,
0xc5
,
0x37
,
0x30
,
0x11
,
0x06
,
0x09
,
0x60
,
0x86
,
0x48
,
0x01
,
0x86
,
0xf8
,
0x42
,
0x01
,
0x01
,
0x04
,
0x04
,
0x03
,
0x02
,
0x04
,
0x10
,
0x30
,
0x16
,
0x06
,
0x0a
,
0x2b
,
0x06
,
0x01
,
0x04
,
0x01
,
0x82
,
0x37
,
0x02
,
0x01
,
0x1b
,
0x04
,
0x08
,
0x30
,
0x06
,
0x01
,
0x01
,
0x00
,
0x01
,
0x01
,
0xff
,
0x30
,
0x0d
,
0x06
,
0x09
,
0x2a
,
0x86
,
0x48
,
0x86
,
0xf7
,
0x0d
,
0x01
,
0x01
,
0x05
,
0x05
,
0x00
,
0x03
,
0x82
,
0x01
,
0x01
,
0x00
,
0x6a
,
0xa6
,
0x06
,
0xd0
,
0x33
,
0x18
,
0x64
,
0xe2
,
0x69
,
0x82
,
0xee
,
0x6e
,
0x36
,
0x9e
,
0x9d
,
0x9a
,
0x0e
,
0x18
,
0xa8
,
0xac
,
0x9d
,
0x10
,
0xed
,
0x01
,
0x3c
,
0xb9
,
0x61
,
0x04
,
0x62
,
0xf3
,
0x85
,
0x8f
,
0xcc
,
0x4f
,
0x2c
,
0x66
,
0x35
,
0x54
,
0x25
,
0x45
,
0x8d
,
0x95
,
0x1c
,
0xd2
,
0x33
,
0xbe
,
0x2e
,
0xdd
,
0x7f
,
0x74
,
0xaf
,
0x03
,
0x7b
,
0x86
,
0x63
,
0xb0
,
0xc9
,
0xe6
,
0xbd
,
0xc7
,
0x8e
,
0xde
,
0x03
,
0x18
,
0x98
,
0x82
,
0xc3
,
0xbb
,
0xf8
,
0x15
,
0x99
,
0x1a
,
0xa9
,
0xdd
,
0xb9
,
0x5d
,
0xb9
,
0xbd
,
0x53
,
0x95
,
0x25
,
0x76
,
0xfb
,
0x5c
,
0x53
,
0x90
,
0xea
,
0x01
,
0x0a
,
0xa0
,
0xb1
,
0xbf
,
0x09
,
0x1b
,
0x97
,
0x8f
,
0x40
,
0xfa
,
0x85
,
0x12
,
0x74
,
0x01
,
0xdb
,
0xf6
,
0xdb
,
0x09
,
0xd6
,
0x5f
,
0x4f
,
0xd7
,
0x17
,
0xb4
,
0xbf
,
0x9e
,
0x2f
,
0x86
,
0x52
,
0x5d
,
0x70
,
0x24
,
0x52
,
0x32
,
0x1e
,
0xa5
,
0x1d
,
0x39
,
0x8b
,
0x66
,
0xf6
,
0xba
,
0x9b
,
0x69
,
0x8e
,
0x12
,
0x60
,
0xdb
,
0xb6
,
0xcf
,
0xe6
,
0x0d
,
0xd6
,
0x1c
,
0x8f
,
0xd4
,
0x5b
,
0x4b
,
0x00
,
0xde
,
0x21
,
0x93
,
0xfb
,
0x6e
,
0xc7
,
0x3d
,
0xb4
,
0x66
,
0x0d
,
0x29
,
0x0c
,
0x4e
,
0xe9
,
0x3f
,
0x94
,
0xd6
,
0xd6
,
0xdc
,
0xec
,
0xf8
,
0x53
,
0x3b
,
0x62
,
0xd5
,
0x97
,
0x50
,
0x53
,
0x84
,
0x17
,
0xfe
,
0xe2
,
0xed
,
0x4c
,
0x23
,
0x0a
,
0x49
,
0xce
,
0x5b
,
0xe9
,
0x70
,
0x31
,
0xc1
,
0x04
,
0x02
,
0x02
,
0x6c
,
0xb8
,
0x52
,
0xcd
,
0xc7
,
0x4e
,
0x70
,
0xb4
,
0x13
,
0xd7
,
0xe0
,
0x92
,
0xba
,
0x44
,
0x1a
,
0x10
,
0x4c
,
0x6e
,
0x45
,
0xc6
,
0x86
,
0x04
,
0xc6
,
0x64
,
0xd3
,
0x9c
,
0x6e
,
0xc1
,
0x9c
,
0xac
,
0x74
,
0x3d
,
0x77
,
0x06
,
0x5e
,
0x28
,
0x28
,
0x5c
,
0xf5
,
0xe0
,
0x9c
,
0x19
,
0xd8
,
0xba
,
0x74
,
0x81
,
0x2d
,
0x67
,
0x77
,
0x93
,
0x8d
,
0xbf
,
0xd2
,
0x52
,
0x00
,
0xe6
,
0xa5
,
0x38
,
0x4e
,
0x2e
,
0x73
,
0x66
,
0x7a
};
/* CBT hook to ensure a window (e.g., MessageBox) cannot be created */
static
HHOOK
hook
;
static
LRESULT
CALLBACK
cbt_hook_proc
(
int
code
,
WPARAM
wp
,
LPARAM
lp
)
{
return
code
==
HCBT_CREATEWND
?
1
:
CallNextHookEx
(
hook
,
code
,
wp
,
lp
);
}
static
BOOL
(
WINAPI
*
pCryptUIWizImport
)(
DWORD
dwFlags
,
HWND
hwndParent
,
LPCWSTR
pwszWizardTitle
,
PCCRYPTUI_WIZ_IMPORT_SRC_INFO
pImportSrc
,
HCERTSTORE
hDestCertStore
);
static
void
find_and_delete_cert_in_store
(
HCERTSTORE
store
,
LPCSTR
storeName
,
PCCERT_CONTEXT
cert
,
LPCSTR
certName
,
BOOL
todo
)
{
CERT_ID
id
;
PCCERT_CONTEXT
found
;
id
.
dwIdChoice
=
CERT_ID_ISSUER_SERIAL_NUMBER
;
memcpy
(
&
id
.
u
.
IssuerSerialNumber
.
Issuer
,
&
cert
->
pCertInfo
->
Issuer
,
sizeof
(
CERT_NAME_BLOB
));
memcpy
(
&
id
.
u
.
IssuerSerialNumber
.
SerialNumber
,
&
cert
->
pCertInfo
->
SerialNumber
,
sizeof
(
CRYPT_INTEGER_BLOB
));
found
=
CertFindCertificateInStore
(
store
,
X509_ASN_ENCODING
,
0
,
CERT_FIND_CERT_ID
,
&
id
,
NULL
);
if
(
todo
)
todo_wine
ok
(
found
!=
NULL
,
"expected to find %s in %s store
\n
"
,
certName
,
storeName
);
else
ok
(
found
!=
NULL
,
"expected to find %s in %s store
\n
"
,
certName
,
storeName
);
if
(
found
)
{
CertDeleteCertificateFromStore
(
found
);
CertFreeCertificateContext
(
found
);
}
}
static
void
test_crypt_ui_wiz_import
(
void
)
{
BOOL
ret
;
CRYPTUI_WIZ_IMPORT_SRC_INFO
info
;
HCERTSTORE
store
;
if
(
!
pCryptUIWizImport
)
{
skip
(
"No CryptUIWizImport
\n
"
);
return
;
}
/* Set CBT hook to disallow MessageBox and wizard creation in current
* thread.
*/
hook
=
SetWindowsHookExA
(
WH_CBT
,
cbt_hook_proc
,
0
,
GetCurrentThreadId
());
/* Brings up UI. Cancelling yields ret = 1. */
if
(
0
)
{
ret
=
pCryptUIWizImport
(
0
,
0
,
NULL
,
NULL
,
NULL
);
}
SetLastError
(
0xdeadbeef
);
ret
=
pCryptUIWizImport
(
CRYPTUI_WIZ_NO_UI
,
0
,
NULL
,
NULL
,
NULL
);
ok
(
!
ret
&&
GetLastError
()
==
E_INVALIDARG
,
"expected E_INVALIDARG, got %08x
\n
"
,
GetLastError
());
memset
(
&
info
,
0
,
sizeof
(
info
));
SetLastError
(
0xdeadbeef
);
ret
=
pCryptUIWizImport
(
CRYPTUI_WIZ_NO_UI
,
0
,
NULL
,
&
info
,
NULL
);
todo_wine
ok
(
!
ret
&&
GetLastError
()
==
E_INVALIDARG
,
"expected E_INVALIDARG, got %08x
\n
"
,
GetLastError
());
info
.
dwSize
=
sizeof
(
info
);
SetLastError
(
0xdeadbeef
);
ret
=
pCryptUIWizImport
(
CRYPTUI_WIZ_NO_UI
,
0
,
NULL
,
&
info
,
NULL
);
todo_wine
ok
(
!
ret
&&
GetLastError
()
==
E_INVALIDARG
,
"expected E_INVALIDARG, got %08x
\n
"
,
GetLastError
());
info
.
dwSubjectChoice
=
CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_CONTEXT
;
SetLastError
(
0xdeadbeef
);
ret
=
pCryptUIWizImport
(
CRYPTUI_WIZ_NO_UI
,
0
,
NULL
,
&
info
,
NULL
);
todo_wine
ok
(
!
ret
&&
GetLastError
()
==
E_INVALIDARG
,
"expected E_INVALIDARG, got %08x
\n
"
,
GetLastError
());
SetLastError
(
0xdeadbeef
);
ret
=
pCryptUIWizImport
(
CRYPTUI_WIZ_NO_UI
|
CRYPTUI_WIZ_IMPORT_ALLOW_CERT
,
0
,
NULL
,
&
info
,
NULL
);
todo_wine
ok
(
!
ret
&&
GetLastError
()
==
E_INVALIDARG
,
"expected E_INVALIDARG, got %08x
\n
"
,
GetLastError
());
/* Imports the following cert--self-signed, with no basic constraints set--
* to the root store. Puts up a dialog at the end if it succeeds or fails.
*/
info
.
u
.
pCertContext
=
CertCreateCertificateContext
(
X509_ASN_ENCODING
,
v1CertWithValidPubKey
,
sizeof
(
v1CertWithValidPubKey
));
ret
=
pCryptUIWizImport
(
CRYPTUI_WIZ_NO_UI
,
0
,
NULL
,
&
info
,
NULL
);
todo_wine
ok
(
ret
,
"CryptUIWizImport failed: %08x
\n
"
,
GetLastError
());
if
(
ret
)
{
static
const
WCHAR
Root
[]
=
{
'R'
,
'o'
,
'o'
,
't'
,
0
};
HCERTSTORE
root
=
CertOpenStore
(
CERT_STORE_PROV_SYSTEM_W
,
0
,
0
,
CERT_SYSTEM_STORE_CURRENT_USER
,
Root
);
if
(
root
)
{
find_and_delete_cert_in_store
(
root
,
"root"
,
info
.
u
.
pCertContext
,
"v1CertWithValidPubKey"
,
FALSE
);
CertCloseStore
(
root
,
0
);
}
}
CertFreeCertificateContext
(
info
.
u
.
pCertContext
);
/* Imports the following cert--not self-signed, with a basic constraints2
* extensions--to the "AddressBook" store. Puts up a dialog at the end if
* it succeeds or fails.
*/
info
.
u
.
pCertContext
=
CertCreateCertificateContext
(
X509_ASN_ENCODING
,
iTunesCert3
,
sizeof
(
iTunesCert3
));
ret
=
pCryptUIWizImport
(
CRYPTUI_WIZ_NO_UI
,
0
,
NULL
,
&
info
,
NULL
);
todo_wine
ok
(
ret
,
"CryptUIWizImport failed: %08x
\n
"
,
GetLastError
());
if
(
ret
)
{
static
const
WCHAR
AddressBook
[]
=
{
'A'
,
'd'
,
'd'
,
'r'
,
'e'
,
's'
,
's'
,
'B'
,
'o'
,
'o'
,
'k'
,
0
};
HCERTSTORE
addressBook
=
CertOpenStore
(
CERT_STORE_PROV_SYSTEM_W
,
0
,
0
,
CERT_SYSTEM_STORE_CURRENT_USER
,
AddressBook
);
if
(
addressBook
)
{
find_and_delete_cert_in_store
(
addressBook
,
"AddressBook"
,
info
.
u
.
pCertContext
,
"iTunesCert3"
,
TRUE
);
CertCloseStore
(
addressBook
,
0
);
}
}
/* Displays the wizard, but disables the "Certificate store" edit and
* the Browse button. Confusingly, the "Place all certificates in the
* following store" radio button is not disabled.
*/
if
(
0
)
{
ret
=
pCryptUIWizImport
(
CRYPTUI_WIZ_IMPORT_NO_CHANGE_DEST_STORE
,
0
,
NULL
,
&
info
,
NULL
);
ok
(
ret
,
"CryptUIWizImport failed: %08x
\n
"
,
GetLastError
());
}
store
=
CertOpenStore
(
CERT_STORE_PROV_MEMORY
,
X509_ASN_ENCODING
,
0
,
CERT_STORE_CREATE_NEW_FLAG
,
NULL
);
/* Displays the wizard, but sets the "Certificate store" edit to the
* string "Determined by the program", and disables it and the Browse
* button, as well as the "Automatically select the certificate store
* based on the type of certificate" radio button.
*/
if
(
0
)
{
ret
=
pCryptUIWizImport
(
CRYPTUI_WIZ_IMPORT_NO_CHANGE_DEST_STORE
,
0
,
NULL
,
&
info
,
store
);
ok
(
ret
,
"CryptUIWizImport failed: %08x
\n
"
,
GetLastError
());
}
ret
=
pCryptUIWizImport
(
CRYPTUI_WIZ_NO_UI
|
CRYPTUI_WIZ_IMPORT_NO_CHANGE_DEST_STORE
,
0
,
NULL
,
&
info
,
store
);
todo_wine
ok
(
ret
,
"CryptUIWizImport failed: %08x
\n
"
,
GetLastError
());
find_and_delete_cert_in_store
(
store
,
"memory"
,
info
.
u
.
pCertContext
,
"iTunesCert3"
,
TRUE
);
CertFreeCertificateContext
(
info
.
u
.
pCertContext
);
CertCloseStore
(
store
,
0
);
UnhookWindowsHookEx
(
hook
);
}
START_TEST
(
cryptui
)
{
HMODULE
lib
=
LoadLibraryA
(
"cryptui"
);
if
(
lib
)
{
pCryptUIWizImport
=
(
void
*
)
GetProcAddress
(
lib
,
"CryptUIWizImport"
);
test_crypt_ui_wiz_import
();
FreeLibrary
(
lib
);
}
}
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