Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
wine
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Package registry
Container Registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Zsolt Vadász
wine
Commits
7e0e1a1f
Commit
7e0e1a1f
authored
16 years ago
by
Juan Lang
Committed by
Alexandre Julliard
16 years ago
Browse files
Options
Downloads
Patches
Plain Diff
cryptui: Add tests for CryptUIWizImport.
parent
199bf795
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
configure
+9
-0
9 additions, 0 deletions
configure
configure.ac
+1
-0
1 addition, 0 deletions
configure.ac
dlls/cryptui/tests/Makefile.in
+13
-0
13 additions, 0 deletions
dlls/cryptui/tests/Makefile.in
dlls/cryptui/tests/cryptui.c
+312
-0
312 additions, 0 deletions
dlls/cryptui/tests/cryptui.c
with
335 additions
and
0 deletions
configure
+
9
−
0
View file @
7e0e1a1f
...
...
@@ -22920,6 +22920,14 @@ ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS
dlls/cryptui/Makefile: dlls/cryptui/Makefile.in dlls/Makedll.rules"
ac_config_files="$ac_config_files dlls/cryptui/Makefile"
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"
test "x$enable_ctapi32" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\
...
...
@@ -26656,6 +26664,7 @@ do
"dlls/cryptnet/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/cryptnet/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/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/cryptui/tests/Makefile" ;;
"dlls/ctapi32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ctapi32/Makefile" ;;
"dlls/ctl3d32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/ctl3d32/Makefile" ;;
"dlls/d3d10/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/d3d10/Makefile" ;;
...
...
This diff is collapsed.
Click to expand it.
configure.ac
+
1
−
0
View file @
7e0e1a1f
...
...
@@ -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/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/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/ctl3d32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
WINE_CONFIG_MAKEFILE([dlls/d3d10/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
...
...
This diff is collapsed.
Click to expand it.
dlls/cryptui/tests/Makefile.in
0 → 100644
+
13
−
0
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
This diff is collapsed.
Click to expand it.
dlls/cryptui/tests/cryptui.c
0 → 100644
+
312
−
0
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
);
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment