line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Win32::Crypt::API;
|
2
|
|
|
|
|
|
|
|
3
|
2
|
|
|
2
|
|
44046
|
use strict;
|
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
62
|
|
4
|
2
|
|
|
2
|
|
10
|
use warnings;
|
|
2
|
|
|
|
|
3
|
|
|
2
|
|
|
|
|
64
|
|
5
|
2
|
|
|
2
|
|
19
|
use base qw/Exporter Win32::API::Interface/;
|
|
2
|
|
|
|
|
5
|
|
|
2
|
|
|
|
|
4148
|
|
6
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
|
use vars qw/$VERSION @EXPORT_OK %EXPORT_TAGS/;
|
8
|
|
|
|
|
|
|
$VERSION = '0.00_004';
|
9
|
|
|
|
|
|
|
|
10
|
|
|
|
|
|
|
my %consts;
|
11
|
|
|
|
|
|
|
|
12
|
|
|
|
|
|
|
BEGIN {
|
13
|
|
|
|
|
|
|
%consts = (
|
14
|
|
|
|
|
|
|
CERT_STORE_PROV_MEMORY => 'Memory',
|
15
|
|
|
|
|
|
|
CERT_STORE_PROV_FILENAME => 'File',
|
16
|
|
|
|
|
|
|
CERT_STORE_PROV_SYSTEM => 'System',
|
17
|
|
|
|
|
|
|
CERT_STORE_PROV_PKCS7 => 'PKCS7',
|
18
|
|
|
|
|
|
|
CERT_STORE_PROV_SERIALIZED => 'Serialized',
|
19
|
|
|
|
|
|
|
CERT_STORE_PROV_COLLECTION => 'Collection',
|
20
|
|
|
|
|
|
|
CERT_STORE_PROV_SYSTEM_REGISTRY => 'SystemRegistry',
|
21
|
|
|
|
|
|
|
CERT_STORE_PROV_PHYSICAL => 'Physical',
|
22
|
|
|
|
|
|
|
CERT_STORE_PROV_SMART_CARD => 'SmartCard',
|
23
|
|
|
|
|
|
|
CERT_STORE_PROV_LDAP => 'Ldap',
|
24
|
|
|
|
|
|
|
|
25
|
|
|
|
|
|
|
X509_ASN_ENCODING => 0x00000001,
|
26
|
|
|
|
|
|
|
X509_NDR_ENCODING => 0x00000002,
|
27
|
|
|
|
|
|
|
PKCS_7_ASN_ENCODING => 0x00010000,
|
28
|
|
|
|
|
|
|
PKCS_7_NDR_ENCODING => 0x00020000,
|
29
|
|
|
|
|
|
|
|
30
|
|
|
|
|
|
|
CERT_STORE_NO_CRYPT_RELEASE_FLAG => 0x00000001,
|
31
|
|
|
|
|
|
|
CERT_STORE_SET_LOCALIZED_NAME_FLAG => 0x00000002,
|
32
|
|
|
|
|
|
|
CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG => 0x00000004,
|
33
|
|
|
|
|
|
|
CERT_STORE_DELETE_FLAG => 0x00000010,
|
34
|
|
|
|
|
|
|
CERT_STORE_UNSAFE_PHYSICAL_FLAG => 0x00000020,
|
35
|
|
|
|
|
|
|
CERT_STORE_SHARE_STORE_FLAG => 0x00000040,
|
36
|
|
|
|
|
|
|
CERT_STORE_SHARE_CONTEXT_FLAG => 0x00000080,
|
37
|
|
|
|
|
|
|
CERT_STORE_MANIFOLD_FLAG => 0x00000100,
|
38
|
|
|
|
|
|
|
CERT_STORE_ENUM_ARCHIVED_FLAG => 0x00000200,
|
39
|
|
|
|
|
|
|
CERT_STORE_UPDATE_KEYID_FLAG => 0x00000400,
|
40
|
|
|
|
|
|
|
CERT_STORE_BACKUP_RESTORE_FLAG => 0x00000800,
|
41
|
|
|
|
|
|
|
CERT_STORE_READONLY_FLAG => 0x00008000,
|
42
|
|
|
|
|
|
|
CERT_STORE_OPEN_EXISTING_FLAG => 0x00004000,
|
43
|
|
|
|
|
|
|
CERT_STORE_CREATE_NEW_FLAG => 0x00002000,
|
44
|
|
|
|
|
|
|
CERT_STORE_MAXIMUM_ALLOWED_FLAG => 0x00001000,
|
45
|
|
|
|
|
|
|
|
46
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_UNPROTECTED_FLAG => 0x40000000,
|
47
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_LOCATION_MASK => 0x00FF0000,
|
48
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_RELOCATE_FLAG => 0x80000000,
|
49
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
CERT_REGISTRY_STORE_REMOTE_FLAG => 0x10000,
|
51
|
|
|
|
|
|
|
CERT_REGISTRY_STORE_SERIALIZED_FLAG => 0x20000,
|
52
|
|
|
|
|
|
|
CERT_REGISTRY_STORE_CLIENT_GPT_FLAG => 0x80000000,
|
53
|
|
|
|
|
|
|
CERT_REGISTRY_STORE_LM_GPT_FLAG => 0x01000000,
|
54
|
|
|
|
|
|
|
|
55
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_LOCATION_SHIFT => 16,
|
56
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_CURRENT_USER_ID => 1,
|
57
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_LOCAL_MACHINE_ID => 2,
|
58
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_CURRENT_SERVICE_ID => 4,
|
59
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_SERVICES_ID => 5,
|
60
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_USERS_ID => 6,
|
61
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID => 7,
|
62
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID => 8,
|
63
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID => 9,
|
64
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
CERT_LDAP_STORE_SIGN_FLAG => 0x10000,
|
66
|
|
|
|
|
|
|
CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG => 0x20000,
|
67
|
|
|
|
|
|
|
CERT_LDAP_STORE_OPENED_FLAG => 0x40000,
|
68
|
|
|
|
|
|
|
|
69
|
|
|
|
|
|
|
CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG => 0x1,
|
70
|
|
|
|
|
|
|
CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG => 0x2,
|
71
|
|
|
|
|
|
|
CERT_PHYSICAL_STORE_REMOTE_OPEN_DISABLE_FLAG => 0x4,
|
72
|
|
|
|
|
|
|
CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG => 0x8,
|
73
|
|
|
|
|
|
|
|
74
|
|
|
|
|
|
|
CERT_STORE_ADD_NEW => 1,
|
75
|
|
|
|
|
|
|
CERT_STORE_ADD_USE_EXISTING => 2,
|
76
|
|
|
|
|
|
|
CERT_STORE_ADD_REPLACE_EXISTING => 3,
|
77
|
|
|
|
|
|
|
CERT_STORE_ADD_ALWAYS => 4,
|
78
|
|
|
|
|
|
|
CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES => 5,
|
79
|
|
|
|
|
|
|
CERT_STORE_ADD_NEWER => 6,
|
80
|
|
|
|
|
|
|
CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES => 7,
|
81
|
|
|
|
|
|
|
|
82
|
|
|
|
|
|
|
E_INVALIDARG => 0x80070057,
|
83
|
|
|
|
|
|
|
CRYPT_E_MSG_ERROR => 0x80091001,
|
84
|
|
|
|
|
|
|
CRYPT_E_UNKNOWN_ALGO => 0x80091002,
|
85
|
|
|
|
|
|
|
CRYPT_E_OID_FORMAT => 0x80091003,
|
86
|
|
|
|
|
|
|
CRYPT_E_INVALID_MSG_TYPE => 0x80091004,
|
87
|
|
|
|
|
|
|
CRYPT_E_UNEXPECTED_ENCODING => 0x80091005,
|
88
|
|
|
|
|
|
|
CRYPT_E_AUTH_ATTR_MISSING => 0x80091006,
|
89
|
|
|
|
|
|
|
CRYPT_E_HASH_VALUE => 0x80091007,
|
90
|
|
|
|
|
|
|
CRYPT_E_INVALID_INDEX => 0x80091008,
|
91
|
|
|
|
|
|
|
CRYPT_E_ALREADY_DECRYPTED => 0x80091009,
|
92
|
|
|
|
|
|
|
CRYPT_E_NOT_DECRYPTED => 0x8009100A,
|
93
|
|
|
|
|
|
|
CRYPT_E_RECIPIENT_NOT_FOUND => 0x8009100B,
|
94
|
|
|
|
|
|
|
CRYPT_E_CONTROL_TYPE => 0x8009100C,
|
95
|
|
|
|
|
|
|
CRYPT_E_ISSUER_SERIALNUMBER => 0x8009100D,
|
96
|
|
|
|
|
|
|
CRYPT_E_SIGNER_NOT_FOUND => 0x8009100E,
|
97
|
|
|
|
|
|
|
CRYPT_E_ATTRIBUTES_MISSING => 0x8009100F,
|
98
|
|
|
|
|
|
|
CRYPT_E_STREAM_MSG_NOT_READY => 0x80091010,
|
99
|
|
|
|
|
|
|
CRYPT_E_STREAM_INSUFFICIENT_DATA => 0x80091011,
|
100
|
|
|
|
|
|
|
CRYPT_I_NEW_PROTECTION_REQUIRED => 0x00091012,
|
101
|
|
|
|
|
|
|
CRYPT_E_BAD_LEN => 0x80092001,
|
102
|
|
|
|
|
|
|
CRYPT_E_BAD_ENCODE => 0x80092002,
|
103
|
|
|
|
|
|
|
CRYPT_E_FILE_ERROR => 0x80092003,
|
104
|
|
|
|
|
|
|
CRYPT_E_NOT_FOUND => 0x80092004,
|
105
|
|
|
|
|
|
|
CRYPT_E_EXISTS => 0x80092005,
|
106
|
|
|
|
|
|
|
CRYPT_E_NO_PROVIDER => 0x80092006,
|
107
|
|
|
|
|
|
|
CRYPT_E_SELF_SIGNED => 0x80092007,
|
108
|
|
|
|
|
|
|
CRYPT_E_DELETED_PREV => 0x80092008,
|
109
|
|
|
|
|
|
|
CRYPT_E_NO_MATCH => 0x80092009,
|
110
|
|
|
|
|
|
|
CRYPT_E_UNEXPECTED_MSG_TYPE => 0x8009200A,
|
111
|
|
|
|
|
|
|
CRYPT_E_NO_KEY_PROPERTY => 0x8009200B,
|
112
|
|
|
|
|
|
|
CRYPT_E_NO_DECRYPT_CERT => 0x8009200C,
|
113
|
|
|
|
|
|
|
CRYPT_E_BAD_MSG => 0x8009200D,
|
114
|
|
|
|
|
|
|
CRYPT_E_NO_SIGNER => 0x8009200E,
|
115
|
|
|
|
|
|
|
CRYPT_E_PENDING_CLOSE => 0x8009200F,
|
116
|
|
|
|
|
|
|
CRYPT_E_REVOKED => 0x80092010,
|
117
|
|
|
|
|
|
|
CRYPT_E_NO_REVOCATION_DLL => 0x80092011,
|
118
|
|
|
|
|
|
|
CRYPT_E_NO_REVOCATION_CHECK => 0x80092012,
|
119
|
|
|
|
|
|
|
CRYPT_E_REVOCATION_OFFLINE => 0x80092013,
|
120
|
|
|
|
|
|
|
CRYPT_E_NOT_IN_REVOCATION_DATABASE => 0x80092014,
|
121
|
|
|
|
|
|
|
CRYPT_E_INVALID_NUMERIC_STRING => 0x80092020,
|
122
|
|
|
|
|
|
|
CRYPT_E_INVALID_PRINTABLE_STRING => 0x80092021,
|
123
|
|
|
|
|
|
|
CRYPT_E_INVALID_IA5_STRING => 0x80092022,
|
124
|
|
|
|
|
|
|
CRYPT_E_INVALID_X500_STRING => 0x80092023,
|
125
|
|
|
|
|
|
|
CRYPT_E_NOT_CHAR_STRING => 0x80092024,
|
126
|
|
|
|
|
|
|
CRYPT_E_FILERESIZED => 0x80092025,
|
127
|
|
|
|
|
|
|
CRYPT_E_SECURITY_SETTINGS => 0x80092026,
|
128
|
|
|
|
|
|
|
CRYPT_E_NO_VERIFY_USAGE_DLL => 0x80092027,
|
129
|
|
|
|
|
|
|
CRYPT_E_NO_VERIFY_USAGE_CHECK => 0x80092028,
|
130
|
|
|
|
|
|
|
CRYPT_E_VERIFY_USAGE_OFFLINE => 0x80092029,
|
131
|
|
|
|
|
|
|
CRYPT_E_NOT_IN_CTL => 0x8009202A,
|
132
|
|
|
|
|
|
|
CRYPT_E_NO_TRUSTED_SIGNER => 0x8009202B,
|
133
|
|
|
|
|
|
|
CRYPT_E_MISSING_PUBKEY_PARA => 0x8009202C,
|
134
|
|
|
|
|
|
|
CRYPT_E_OSS_ERROR => 0x80093000,
|
135
|
|
|
|
|
|
|
|
136
|
|
|
|
|
|
|
ERROR_NOT_ENOUGH_MEMORY => 8,
|
137
|
|
|
|
|
|
|
ERROR_INVALID_PARAMETER => 87,
|
138
|
|
|
|
|
|
|
ERROR_BUSY => 107,
|
139
|
|
|
|
|
|
|
ERROR_MORE_DATA => 234,
|
140
|
|
|
|
|
|
|
ERROR_NO_MORE_ITEMS => 259,
|
141
|
|
|
|
|
|
|
|
142
|
|
|
|
|
|
|
NTE_BAD_SIGNATURE => 0x80090006,
|
143
|
|
|
|
|
|
|
NTE_BAD_FLAGS => 0x80090009,
|
144
|
|
|
|
|
|
|
NTE_NO_MEMORY => 0x8009000E,
|
145
|
|
|
|
|
|
|
NTE_EXISTS => 0x8009000F,
|
146
|
|
|
|
|
|
|
NTE_BAD_PROV_TYPE => 0x80090014,
|
147
|
|
|
|
|
|
|
NTE_BAD_KEYSET => 0x80090016,
|
148
|
|
|
|
|
|
|
NTE_PROV_TYPE_NOT_DEF => 0x80090017,
|
149
|
|
|
|
|
|
|
NTE_PROV_TYPE_ENTRY_BAD => 0x80090018,
|
150
|
|
|
|
|
|
|
NTE_KEYSET_NOT_DEF => 0x80090019,
|
151
|
|
|
|
|
|
|
NTE_KEYSET_ENTRY_BAD => 0x8009001A,
|
152
|
|
|
|
|
|
|
NTE_PROV_TYPE_NO_MATCH => 0x8009001B,
|
153
|
|
|
|
|
|
|
NTE_SIGNATURE_FILE_BAD => 0x8009001C,
|
154
|
|
|
|
|
|
|
NTE_PROVIDER_DLL_FAIL => 0x8009001D,
|
155
|
|
|
|
|
|
|
NTE_PROV_DLL_NOT_FOUND => 0x8009001E,
|
156
|
|
|
|
|
|
|
NTE_BAD_KEYSET_PARAM => 0x8009001F,
|
157
|
|
|
|
|
|
|
NTE_FAIL => 0x80090020,
|
158
|
|
|
|
|
|
|
|
159
|
|
|
|
|
|
|
CERT_STORE_CTRL_COMMIT_FORCE_FLAG => 0x1,
|
160
|
|
|
|
|
|
|
CERT_STORE_CTRL_COMMIT_CLEAR_FLAG => 0x2,
|
161
|
|
|
|
|
|
|
CERT_STORE_CTRL_INHIBIT_DUPLICATE_HANDLE_FLAG => 0x1,
|
162
|
|
|
|
|
|
|
|
163
|
|
|
|
|
|
|
PP_ENUMALGS => 1,
|
164
|
|
|
|
|
|
|
PP_ENUMCONTAINERS => 2,
|
165
|
|
|
|
|
|
|
PP_IMPTYPE => 3,
|
166
|
|
|
|
|
|
|
PP_NAME => 4,
|
167
|
|
|
|
|
|
|
PP_VERSION => 5,
|
168
|
|
|
|
|
|
|
PP_CONTAINER => 6,
|
169
|
|
|
|
|
|
|
PP_CHANGE_PASSWORD => 7,
|
170
|
|
|
|
|
|
|
PP_KEYSET_SEC_DESCR => 8, # get/set security descriptor of keyset
|
171
|
|
|
|
|
|
|
PP_CERTCHAIN => 9, # for retrieving certificates from tokens
|
172
|
|
|
|
|
|
|
PP_KEY_TYPE_SUBTYPE => 10,
|
173
|
|
|
|
|
|
|
PP_PROVTYPE => 16,
|
174
|
|
|
|
|
|
|
PP_KEYSTORAGE => 17,
|
175
|
|
|
|
|
|
|
PP_APPLI_CERT => 18,
|
176
|
|
|
|
|
|
|
PP_SYM_KEYSIZE => 19,
|
177
|
|
|
|
|
|
|
PP_SESSION_KEYSIZE => 20,
|
178
|
|
|
|
|
|
|
PP_UI_PROMPT => 21,
|
179
|
|
|
|
|
|
|
PP_ENUMALGS_EX => 22,
|
180
|
|
|
|
|
|
|
PP_ENUMMANDROOTS => 25,
|
181
|
|
|
|
|
|
|
PP_ENUMELECTROOTS => 26,
|
182
|
|
|
|
|
|
|
PP_KEYSET_TYPE => 27,
|
183
|
|
|
|
|
|
|
PP_ADMIN_PIN => 31,
|
184
|
|
|
|
|
|
|
PP_KEYEXCHANGE_PIN => 32,
|
185
|
|
|
|
|
|
|
PP_SIGNATURE_PIN => 33,
|
186
|
|
|
|
|
|
|
PP_SIG_KEYSIZE_INC => 34,
|
187
|
|
|
|
|
|
|
PP_KEYX_KEYSIZE_INC => 35,
|
188
|
|
|
|
|
|
|
PP_UNIQUE_CONTAINER => 36,
|
189
|
|
|
|
|
|
|
PP_SGC_INFO => 37,
|
190
|
|
|
|
|
|
|
PP_USE_HARDWARE_RNG => 38,
|
191
|
|
|
|
|
|
|
PP_KEYSPEC => 39,
|
192
|
|
|
|
|
|
|
PP_ENUMEX_SIGNING_PROT => 40,
|
193
|
|
|
|
|
|
|
PP_CRYPT_COUNT_KEY_USE => 41,
|
194
|
|
|
|
|
|
|
|
195
|
|
|
|
|
|
|
CRYPT_FIRST => 1,
|
196
|
|
|
|
|
|
|
CRYPT_NEXT => 2,
|
197
|
|
|
|
|
|
|
CRYPT_SGC_ENUM => 4,
|
198
|
|
|
|
|
|
|
|
199
|
|
|
|
|
|
|
CRYPT_IMPL_HARDWARE => 1,
|
200
|
|
|
|
|
|
|
CRYPT_IMPL_SOFTWARE => 2,
|
201
|
|
|
|
|
|
|
CRYPT_IMPL_MIXED => 3,
|
202
|
|
|
|
|
|
|
CRYPT_IMPL_UNKNOWN => 4,
|
203
|
|
|
|
|
|
|
CRYPT_IMPL_REMOVABLE => 8,
|
204
|
|
|
|
|
|
|
|
205
|
|
|
|
|
|
|
CRYPT_SEC_DESCR => 0x00000001,
|
206
|
|
|
|
|
|
|
CRYPT_PSTORE => 0x00000002,
|
207
|
|
|
|
|
|
|
CRYPT_UI_PROMPT => 0x00000004,
|
208
|
|
|
|
|
|
|
|
209
|
|
|
|
|
|
|
CRYPT_FLAG_PCT1 => 0x0001,
|
210
|
|
|
|
|
|
|
CRYPT_FLAG_SSL2 => 0x0002,
|
211
|
|
|
|
|
|
|
CRYPT_FLAG_SSL3 => 0x0004,
|
212
|
|
|
|
|
|
|
CRYPT_FLAG_TLS1 => 0x0008,
|
213
|
|
|
|
|
|
|
CRYPT_FLAG_IPSEC => 0x0010,
|
214
|
|
|
|
|
|
|
CRYPT_FLAG_SIGNING => 0x0020,
|
215
|
|
|
|
|
|
|
|
216
|
|
|
|
|
|
|
CRYPT_SGC => 0x0001,
|
217
|
|
|
|
|
|
|
CRYPT_FASTSGC => 0x0002,
|
218
|
|
|
|
|
|
|
|
219
|
|
|
|
|
|
|
PP_CLIENT_HWND => 1,
|
220
|
|
|
|
|
|
|
PP_CONTEXT_INFO => 11,
|
221
|
|
|
|
|
|
|
PP_KEYEXCHANGE_KEYSIZE => 12,
|
222
|
|
|
|
|
|
|
PP_SIGNATURE_KEYSIZE => 13,
|
223
|
|
|
|
|
|
|
PP_KEYEXCHANGE_ALG => 14,
|
224
|
|
|
|
|
|
|
PP_SIGNATURE_ALG => 15,
|
225
|
|
|
|
|
|
|
PP_DELETEKEY => 24,
|
226
|
|
|
|
|
|
|
|
227
|
|
|
|
|
|
|
PROV_RSA_FULL => 1,
|
228
|
|
|
|
|
|
|
PROV_RSA_SIG => 2,
|
229
|
|
|
|
|
|
|
PROV_DSS => 3,
|
230
|
|
|
|
|
|
|
PROV_FORTEZZA => 4,
|
231
|
|
|
|
|
|
|
PROV_MS_EXCHANGE => 5,
|
232
|
|
|
|
|
|
|
PROV_SSL => 6,
|
233
|
|
|
|
|
|
|
PROV_RSA_SCHANNEL => 12,
|
234
|
|
|
|
|
|
|
PROV_DSS_DH => 13,
|
235
|
|
|
|
|
|
|
PROV_EC_ECDSA_SIG => 14,
|
236
|
|
|
|
|
|
|
PROV_EC_ECNRA_SIG => 15,
|
237
|
|
|
|
|
|
|
PROV_EC_ECDSA_FULL => 16,
|
238
|
|
|
|
|
|
|
PROV_EC_ECNRA_FULL => 17,
|
239
|
|
|
|
|
|
|
PROV_DH_SCHANNEL => 18,
|
240
|
|
|
|
|
|
|
PROV_SPYRUS_LYNKS => 20,
|
241
|
|
|
|
|
|
|
PROV_RNG => 21,
|
242
|
|
|
|
|
|
|
PROV_INTEL_SEC => 22,
|
243
|
|
|
|
|
|
|
PROV_REPLACE_OWF => 23,
|
244
|
|
|
|
|
|
|
PROV_RSA_AES => 24,
|
245
|
|
|
|
|
|
|
|
246
|
|
|
|
|
|
|
);
|
247
|
|
|
|
|
|
|
|
248
|
|
|
|
|
|
|
%consts = (
|
249
|
|
|
|
|
|
|
%consts,
|
250
|
|
|
|
|
|
|
|
251
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_CURRENT_USER =>
|
252
|
|
|
|
|
|
|
$consts{CERT_SYSTEM_STORE_CURRENT_USER_ID}
|
253
|
|
|
|
|
|
|
<< $consts{CERT_SYSTEM_STORE_LOCATION_SHIFT},
|
254
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_LOCAL_MACHINE =>
|
255
|
|
|
|
|
|
|
$consts{CERT_SYSTEM_STORE_LOCAL_MACHINE_ID}
|
256
|
|
|
|
|
|
|
<< $consts{CERT_SYSTEM_STORE_LOCATION_SHIFT},
|
257
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_CURRENT_SERVICE =>
|
258
|
|
|
|
|
|
|
$consts{CERT_SYSTEM_STORE_CURRENT_SERVICE_ID}
|
259
|
|
|
|
|
|
|
<< $consts{CERT_SYSTEM_STORE_LOCATION_SHIFT},
|
260
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_SERVICES => $consts{CERT_SYSTEM_STORE_SERVICES_ID}
|
261
|
|
|
|
|
|
|
<< $consts{CERT_SYSTEM_STORE_LOCATION_SHIFT},
|
262
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_USERS => $consts{CERT_SYSTEM_STORE_USERS_ID}
|
263
|
|
|
|
|
|
|
<< $consts{CERT_SYSTEM_STORE_LOCATION_SHIFT},
|
264
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY =>
|
265
|
|
|
|
|
|
|
$consts{CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID}
|
266
|
|
|
|
|
|
|
<< $consts{CERT_SYSTEM_STORE_LOCATION_SHIFT},
|
267
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY =>
|
268
|
|
|
|
|
|
|
$consts{CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID}
|
269
|
|
|
|
|
|
|
<< $consts{CERT_SYSTEM_STORE_LOCATION_SHIFT},
|
270
|
|
|
|
|
|
|
CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE =>
|
271
|
|
|
|
|
|
|
$consts{CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID}
|
272
|
|
|
|
|
|
|
<< $consts{CERT_SYSTEM_STORE_LOCATION_SHIFT},
|
273
|
|
|
|
|
|
|
);
|
274
|
|
|
|
|
|
|
}
|
275
|
|
|
|
|
|
|
use constant \%consts;
|
276
|
|
|
|
|
|
|
|
277
|
|
|
|
|
|
|
__PACKAGE__->generate(
|
278
|
|
|
|
|
|
|
{
|
279
|
|
|
|
|
|
|
'advapi32' => [
|
280
|
|
|
|
|
|
|
[ 'CryptAcquireContext', 'PPPNN', 'I' ],
|
281
|
|
|
|
|
|
|
[ 'CryptContextAddRef', 'NPN', 'I' ],
|
282
|
|
|
|
|
|
|
[ 'CryptEnumProviders', 'NPNPPP', 'I' ],
|
283
|
|
|
|
|
|
|
[ 'CryptEnumProviderTypes', 'NPNPPP', 'I' ],
|
284
|
|
|
|
|
|
|
[ 'CryptGetDefaultProvider', 'NPNPP', 'I' ],
|
285
|
|
|
|
|
|
|
[ 'CryptGetProvParam', 'NNPPN', 'I' ],
|
286
|
|
|
|
|
|
|
[ 'CryptInstallDefaultContext', 'NNPNPP', 'I' ],
|
287
|
|
|
|
|
|
|
[ 'CryptReleaseContext', 'NN', 'I' ],
|
288
|
|
|
|
|
|
|
[ 'CryptSetProvider', 'PN', 'I' ],
|
289
|
|
|
|
|
|
|
[ 'CryptSetProviderEx', 'PNPN', 'I' ],
|
290
|
|
|
|
|
|
|
[ 'CryptSetProvParam', 'NNPN', 'I' ],
|
291
|
|
|
|
|
|
|
[ 'CryptUninstallDefaultContext', 'NNP', 'I' ],
|
292
|
|
|
|
|
|
|
],
|
293
|
|
|
|
|
|
|
'crypt32' => [
|
294
|
|
|
|
|
|
|
|
295
|
|
|
|
|
|
|
[ 'CertAddStoreToCollection', 'NNNN', 'I' ],
|
296
|
|
|
|
|
|
|
[ 'CertAddCertificateLinkToStore', 'NNNN', 'I' ],
|
297
|
|
|
|
|
|
|
[ 'CertCloseStore', 'NN', 'I' ],
|
298
|
|
|
|
|
|
|
[ 'CertControlStore', 'NNNP', 'I' ],
|
299
|
|
|
|
|
|
|
[ 'CertDuplicateStore', 'N', 'N' ],
|
300
|
|
|
|
|
|
|
[ 'CertEnumPhysicalStore', 'PNPK', 'I' ],
|
301
|
|
|
|
|
|
|
[ 'CertEnumSystemStore', 'PNPK', 'I' ],
|
302
|
|
|
|
|
|
|
[ 'CertEnumSystemStoreLocation', 'NPK', 'I' ],
|
303
|
|
|
|
|
|
|
[ 'CertGetStoreProperty', 'NNPP', 'I' ],
|
304
|
|
|
|
|
|
|
[ 'CertOpenStore', 'PNNNP', 'N' ],
|
305
|
|
|
|
|
|
|
[ 'CertOpenSystemStore', 'NP', 'N' ],
|
306
|
|
|
|
|
|
|
[ 'CertRegisterPhysicalStore', 'PNPSP', 'I' ],
|
307
|
|
|
|
|
|
|
[ 'CertRegisterSystemStore', 'PNSP', 'I' ],
|
308
|
|
|
|
|
|
|
[ 'CertRemoveStoreFromCollection', 'NN', 'V' ],
|
309
|
|
|
|
|
|
|
[ 'CertSaveStore', 'NNNNPN', 'I' ],
|
310
|
|
|
|
|
|
|
[ 'CertSetStoreProperty', 'NNNP', 'I' ],
|
311
|
|
|
|
|
|
|
[ 'CertUnregisterPhysicalStore', 'PNP', 'I' ],
|
312
|
|
|
|
|
|
|
[ 'CertUnregisterSystemStore', 'PN', 'I' ],
|
313
|
|
|
|
|
|
|
],
|
314
|
|
|
|
|
|
|
}
|
315
|
|
|
|
|
|
|
);
|
316
|
|
|
|
|
|
|
|
317
|
|
|
|
|
|
|
%EXPORT_TAGS = ( consts => [ __PACKAGE__->constant_names ] );
|
318
|
|
|
|
|
|
|
@EXPORT_OK = ( __PACKAGE__->constant_names );
|
319
|
|
|
|
|
|
|
|
320
|
|
|
|
|
|
|
sub constant_names {
|
321
|
|
|
|
|
|
|
return keys %consts;
|
322
|
|
|
|
|
|
|
}
|
323
|
|
|
|
|
|
|
|
324
|
|
|
|
|
|
|
1;
|