ReactOS 0.4.16-dev-1537-g4e425b5
wincrypt.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2002 Travis Michielsen
3 * Copyright (C) 2004-2005 Juan Lang
4 * Copyright (C) 2007 Vijay Kiran Kamuju
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#ifndef __WINE_WINCRYPT_H
22#define __WINE_WINCRYPT_H
23
24#ifdef __REACTOS__
25#include <specstrings.h>
26#endif
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32#include <bcrypt.h>
33#ifndef __REACTOS__
34#include <ncrypt.h>
35#endif
36
37#ifndef WINADVAPI
38#ifdef _ADVAPI32_
39# define WINADVAPI
40#else
41# define WINADVAPI DECLSPEC_IMPORT
42#endif
43#endif
44
45#ifndef WINCRYPT32API
46#ifdef _CRYPT32_
47# define WINCRYPT32API
48#else
49# define WINCRYPT32API DECLSPEC_IMPORT
50#endif
51#endif
52
53/* some typedefs for function parameters */
54typedef unsigned int ALG_ID;
60typedef void *HCERTSTORE;
61typedef void *HCRYPTMSG;
62typedef void *HCERTSTOREPROV;
63typedef void *HCRYPTOIDFUNCSET;
64typedef void *HCRYPTOIDFUNCADDR;
66
67/* CSP Structs */
68
69typedef struct _PROV_ENUMALGS {
75
76typedef struct _PROV_ENUMALGS_EX {
87
88#define SCHANNEL_MAC_KEY 0
89#define SCHANNEL_ENC_KEY 1
90
91typedef struct _SCHANNEL_ALG {
98
99
100#define CRYPT_IPSEC_HMAC_KEY 0x0100
101
102typedef struct _HMAC_INFO {
109
110typedef struct _CRYPTOAPI_BLOB {
126
133
138
143
144typedef struct _PUBLICKEYSTRUC {
150
151typedef struct _RSAPUBKEY {
156
157typedef struct _PUBKEY {
161
162typedef struct _DSSSEED {
166
167typedef struct _PUBKEYVER3 {
174
175typedef struct _PRIVKEYVER3 {
183
184typedef struct _KEY_TYPE_SUBTYPE {
189
191 unsigned char SerialNumber[8];
193 unsigned char CertLabel[36];
195
196typedef struct _CMS_DH_KEY_INFO {
203
204typedef struct _CRYPT_BIT_BLOB {
209
210typedef struct _CRYPT_KEY_PROV_PARAM {
216
217typedef struct _CRYPT_KEY_PROV_INFO {
226
227typedef struct _CERT_KEY_CONTEXT {
232
233typedef struct _CERT_PUBLIC_KEY_INFO {
237
238typedef struct _CERT_EXTENSION {
243
244typedef struct _CERT_EXTENSIONS {
248
249typedef struct _CERT_INFO {
263
264typedef struct _CERT_RDN_ATTR {
269
270typedef struct _CERT_RDN {
274
275typedef struct _CERT_NAME_INFO {
279
280typedef struct _CERT_NAME_VALUE {
284
289
295
300
306
307typedef struct _CERT_ECC_SIGNATURE {
311
312/* byte 0 */
313#define CERT_DIGITAL_SIGNATURE_KEY_USAGE 0x80
314#define CERT_NON_REPUDIATION_KEY_USAGE 0x40
315#define CERT_KEY_ENCIPHERMENT_KEY_USAGE 0x20
316#define CERT_DATA_ENCIPHERMENT_KEY_USAGE 0x10
317#define CERT_KEY_AGREEMENT_KEY_USAGE 0x08
318#define CERT_KEY_CERT_SIGN_KEY_USAGE 0x04
319#define CERT_OFFLINE_CRL_SIGN_KEY_USAGE 0x02
320#define CERT_CRL_SIGN_KEY_USAGE 0x02
321#define CERT_ENCIPHER_ONLY_KEY_USAGE 0x01
322/* byte 1 */
323#define CERT_DECIPHER_ONLY_KEY_USAGE 0x80
324
325typedef struct _CERT_POLICY_ID {
329
335
336typedef struct _CERT_OTHER_NAME {
340
341typedef struct _CERT_ALT_NAME_ENTRY {
343 union {
353
354#define CERT_ALT_NAME_OTHER_NAME 1
355#define CERT_ALT_NAME_RFC822_NAME 2
356#define CERT_ALT_NAME_DNS_NAME 3
357#define CERT_ALT_NAME_X400_ADDRESS 4
358#define CERT_ALT_NAME_DIRECTORY_NAME 5
359#define CERT_ALT_NAME_EDI_PARTY_NAME 6
360#define CERT_ALT_NAME_URL 7
361#define CERT_ALT_NAME_IP_ADDRESS 8
362#define CERT_ALT_NAME_REGISTERED_ID 9
363
364typedef struct _CERT_ALT_NAME_INFO {
368
369#define CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK 0xff
370#define CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT 16
371#define CERT_ALT_NAME_VALUE_ERR_INDEX_MASK 0x0000ffff
372#define CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT 0
373#define GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(x) \
374 (((x) >> CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT) & \
375 CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK)
376#define GET_CERT_ALT_NAME_VALUE_ERR_INDEX(x) \
377 ((x) & CERT_ALT_NAME_VALUE_ERR_INDEX_MASK)
378
386
387#define CERT_CA_SUBJECT_FLAG 0x80
388#define CERT_END_ENTITY_SUBJECT_FLAG 0x40
389
395
400
401typedef struct _CERT_POLICY_INFO {
406
407typedef struct _CERT_POLICIES_INFO {
411
418
423
424typedef struct _CPS_URLS {
429
437
438typedef struct _CERT_POLICY_MAPPING {
442
447
454
460
461typedef struct _CRYPT_CONTENT_INFO {
465
470
476
481
486
487typedef struct _CERT_CONTEXT {
495
496typedef struct _CRL_ENTRY {
502
503typedef struct _CRL_INFO {
514
515typedef struct _CRL_DIST_POINT_NAME {
517 union {
521
522#define CRL_DIST_POINT_NO_NAME 0
523#define CRL_DIST_POINT_FULL_NAME 1
524#define CRL_DIST_POINT_ISSUER_RDN_NAME 2
525
526typedef struct _CRL_DIST_POINT {
531
532#define CRL_REASON_UNUSED_FLAG 0x80
533#define CRL_REASON_KEY_COMPROMISE_FLAG 0x40
534#define CRL_REASON_CA_COMPROMISE_FLAG 0x20
535#define CRL_REASON_AFFILIATION_CHANGED_FLAG 0x10
536#define CRL_REASON_SUPERSEDED_FLAG 0x08
537#define CRL_REASON_CESSATION_OF_OPERATION_FLAG 0x04
538#define CRL_REASON_CERTIFICATE_HOLD_FLAG 0x02
539
540typedef struct _CRL_DIST_POINTS_INFO {
544
545#define CRL_DIST_POINT_ERR_INDEX_MASK 0x7f
546#define CRL_DIST_POINT_ERR_INDEX_SHIFT 24
547#define GET_CRL_DIST_POINT_ERR_INDEX(x) \
548 (((x) >> CRL_DIST_POINT_ERR_INDEX_SHIFT) & CRL_DIST_POINT_ERR_INDEX_MASK)
549
550#ifdef __REACTOS__
551#define CRL_DIST_POINT_ERR_CRL_ISSUER_BIT 0x80000000L
552#else
553#define CRL_DIST_POINT_ERR_CRL_ISSUER_BIT __MSABI_LONG(0x80000000)
554#endif
555#define IS_CRL_DIST_POINT_ERR_CRL_ISSUER(x) \
556 ((x) & CRL_DIST_POINT_ERR_CRL_ISSUER_BIT)
557
563
564#define CROSS_CERT_DIST_POINT_ERR_INDEX_MASK 0xff
565#define CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT 24
566#define GET_CROSS_CERT_DIST_POINT_ERR_INDEX(x) \
567 (((x) >> CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT) & \
568 CROSS_CERT_DIST_POINT_ERR_INDEX_MASK)
569
570typedef struct _CERT_PAIR {
574
582
583typedef struct _CERT_GENERAL_SUBTREE {
589
596
597#ifdef __REACTOS__
598#define CERT_EXCLUDED_SUBTREE_BIT 0x80000000L
599#else
600#define CERT_EXCLUDED_SUBTREE_BIT __MSABI_LONG(0x80000000)
601#endif
602#define IS_CERT_EXCLUDED_SUBTREE(x) ((x) & CERT_EXCLUDED_SUBTREE_BIT)
603
604typedef struct _CRYPT_ATTRIBUTE {
609
610typedef struct _CRYPT_ATTRIBUTES {
614
615typedef struct _CERT_REQUEST_INFO {
622
628
634
635typedef struct _OCSP_SIGNATURE_INFO {
641
646
647typedef struct _OCSP_CERT_ID {
653
654typedef struct _OCSP_REQUEST_ENTRY {
659
660#define OCSP_REQUEST_V1 0
661
662typedef struct _OCSP_REQUEST_INFO {
670
671#define OCSP_SUCCESSFUL_RESPONSE 0
672#define OCSP_MALFORMED_REQUEST_RESPONSE 1
673#define OCSP_INTERNAL_ERROR_RESPONSE 2
674#define OCSP_TRY_LATER_RESPONSE 3
675#define OCSP_SIG_REQUIRED_RESPONSE 5
676#define OCSP_UNAUTHORIZED_RESPONSE 6
677
678#define szOID_PKIX_OCSP_BASIC_SIGNED_RESPONSE "1.3.6.1.5.5.7.48.1.1"
679
680typedef struct _OCSP_RESPONSE_INFO {
685
690
695
696#define OCSP_BASIC_GOOD_CERT_STATUS 0
697#define OCSP_BASIC_REVOKED_CERT_STATUS 1
698#define OCSP_BASIC_UNKNOWN_CERT_STATUS 2
699
703 union {
711
712#define OCSP_BASIC_RESPONSE_V1 0
713#define OCSP_BASIC_BY_NAME_RESPONDER_ID 1
714#define OCSP_BASIC_BY_KEY_RESPONDER_ID 2
715
719 union {
729
730typedef struct _CRL_CONTEXT {
738
739#define SORTED_CTL_EXT_FLAGS_OFFSET (0*4)
740#define SORTED_CTL_EXT_COUNT_OFFSET (1*4)
741#define SORTED_CTL_EXT_MAX_COLLISION_OFFSET (2*4)
742#define SORTED_CTL_EXT_HASH_BUCKET_OFFSET (3*4)
743
744#define SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG 0x1
745
746typedef struct _CERT_DSS_PARAMETERS {
751
752#define CERT_DSS_R_LEN 20
753#define CERT_DSS_S_LEN 20
754#define CERT_DSS_SIGNATURE_LEN (CERT_DSS_R_LEN + CERT_DSS_S_LEN)
755
756#define CERT_MAX_ENCODED_DSS_SIGNATURE_LEN (2 + 2*(2 + 20 +1))
757
758typedef struct _CERT_DH_PARAMETERS {
762
767
775
776#define CRYPT_X942_COUNTER_BYTE_LENGTH 4
777#define CRYPT_X942_KEY_LENGTH_BYTE_LENGTH 4
778#define CRYPT_X942_PUB_INFO_BYTE_LENGTH (512/8)
779
786
792
793#define CRYPT_RC2_40BIT_VERSION 160
794#define CRYPT_RC2_56BIT_VERSION 52
795#define CRYPT_RC2_64BIT_VERSION 120
796#define CRYPT_RC2_128BIT_VERSION 58
797
802
807
808typedef struct _VTableProvStruc {
810#ifndef WINE_NO_STRICT_PROTOTYPES
811 BOOL (WINAPI *FuncVerifyImage)(LPCSTR,BYTE*);
812 void (WINAPI *FuncReturnhWnd)(HWND*);
813#else
814 FARPROC FuncVerifyImage;
815 FARPROC FuncReturnhWnd;
816#endif
822
829
830typedef struct _CTL_USAGE {
834
835typedef struct _CTL_ENTRY {
840
841typedef struct _CTL_INFO {
854
855typedef struct _CTL_CONTEXT {
866
874
879
880typedef struct _CMSG_SIGNER_INFO {
890
891#define CMSG_VERIFY_SIGNER_PUBKEY 1
892#define CMSG_VERIFY_SIGNER_CERT 2
893#define CMSG_VERIFY_SIGNER_CHAIN 3
894#define CMSG_VERIFY_SIGNER_NULL 4
895
903
904typedef struct _CERT_REVOCATION_INFO {
913
914typedef struct _CERT_REVOCATION_PARA {
921#ifdef CERT_REVOCATION_PARA_HAS_EXTRA_FIELDS
922 DWORD dwUrlRetrievalTimeout;
923 BOOL fCheckFreshnessTime;
924 DWORD dwFreshnessTime;
925 LPFILETIME pftCurrentTime;
927#endif
929
930#define CERT_CONTEXT_REVOCATION_TYPE 1
931#define CERT_VERIFY_REV_CHAIN_FLAG 0x00000001
932#define CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION 0x00000002
933#define CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG 0x00000004
934
943
953
954#define CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG 0x1
955#define CERT_VERIFY_TRUSTED_SIGNERS_FLAG 0x2
956#define CERT_VERIFY_NO_TIME_CHECK_FLAG 0x4
957#define CERT_VERIFY_ALLOW_MORE_USAGE_FLAG 0x8
958#define CERT_VERIFY_UPDATED_CTL_FLAG 0x1
959
960typedef struct _CERT_CHAIN {
965
974
975typedef struct _CERT_TRUST_LIST_INFO {
980
981#define CERT_TRUST_NO_ERROR 0x00000000
982#define CERT_TRUST_IS_NOT_TIME_VALID 0x00000001
983#define CERT_TRUST_IS_NOT_TIME_NESTED 0x00000002
984#define CERT_TRUST_IS_REVOKED 0x00000004
985#define CERT_TRUST_IS_NOT_SIGNATURE_VALID 0x00000008
986#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE 0x00000010
987#define CERT_TRUST_IS_UNTRUSTED_ROOT 0x00000020
988#define CERT_TRUST_REVOCATION_STATUS_UNKNOWN 0x00000040
989#define CERT_TRUST_IS_CYCLIC 0x00000080
990#define CERT_TRUST_INVALID_EXTENSION 0x00000100
991#define CERT_TRUST_INVALID_POLICY_CONSTRAINTS 0x00000200
992#define CERT_TRUST_INVALID_BASIC_CONSTRAINTS 0x00000400
993#define CERT_TRUST_INVALID_NAME_CONSTRAINTS 0x00000800
994#define CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT 0x00001000
995#define CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT 0x00002000
996#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT 0x00004000
997#define CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT 0x00008000
998#define CERT_TRUST_IS_OFFLINE_REVOCATION 0x01000000
999#define CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY 0x02000000
1000#define CERT_TRUST_IS_EXPLICIT_DISTRUST 0x04000000
1001#define CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT 0x08000000
1002
1003#define CERT_TRUST_IS_PARTIAL_CHAIN 0x00010000
1004#define CERT_TRUST_CTL_IS_NOT_TIME_VALID 0x00020000
1005#define CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID 0x00040000
1006#define CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE 0x00080000
1007
1008#define CERT_TRUST_HAS_EXACT_MATCH_ISSUER 0x00000001
1009#define CERT_TRUST_HAS_KEY_MATCH_ISSUER 0x00000002
1010#define CERT_TRUST_HAS_NAME_MATCH_ISSUER 0x00000004
1011#define CERT_TRUST_IS_SELF_SIGNED 0x00000008
1012
1013#define CERT_TRUST_HAS_PREFERRED_ISSUER 0x00000100
1014#define CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY 0x00000200
1015#define CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS 0x00000400
1016#define CERT_TRUST_IS_PEER_TRUSTED 0x00000800
1017#define CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED 0x00001000
1018
1019#define CERT_TRUST_IS_COMPLEX_CHAIN 0x00010000
1020
1021typedef struct _CERT_TRUST_STATUS {
1025
1026typedef struct _CERT_CHAIN_ELEMENT {
1035
1036typedef struct _CERT_SIMPLE_CHAIN {
1045
1048
1058};
1059
1065
1073
1074#define CERT_CHAIN_POLICY_BASE ((LPCSTR)1)
1075#define CERT_CHAIN_POLICY_AUTHENTICODE ((LPCSTR)2)
1076#define CERT_CHAIN_POLICY_AUTHENTICODE_TS ((LPCSTR)3)
1077#define CERT_CHAIN_POLICY_SSL ((LPCSTR)4)
1078#define CERT_CHAIN_POLICY_BASIC_CONSTRAINTS ((LPCSTR)5)
1079#define CERT_CHAIN_POLICY_NT_AUTH ((LPCSTR)6)
1080#define CERT_CHAIN_POLICY_MICROSOFT_ROOT ((LPCSTR)7)
1081
1082#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG 0x00000001
1083#define CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG 0x00000002
1084#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG 0x00000004
1085#define CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG 0x00000008
1086
1087#define CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS ( \
1088 CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG \
1089 CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG \
1090 CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG )
1091
1092#define CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG 0x00000010
1093#define CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG 0x00000020
1094#define CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG 0x00000040
1095#define CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG 0x00000080
1096
1097#define CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG 0x00000100
1098#define CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG 0x00000200
1099#define CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG 0x00000400
1100#define CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG 0x00000800
1101
1102#define CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS ( \
1103 CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG \
1104 CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG \
1105 CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG \
1106 CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG )
1107
1108#define CERT_CHAIN_POLICY_IGNORE_PEER_TRUST_FLAG 0x00001000
1109#define CERT_CHAIN_POLICY_IGNORE_NOT_SUPPORTED_CRITICAL_EXT_FLAG 0x00002000
1110#define CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG 0x00004000
1111#define CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG 0x00008000
1112#define MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG 0x00010000
1113#define MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG 0x00020000
1114
1121
1127
1134
1136 union {
1145
1146/* Values for HTTPSPolicyCallbackData's dwAuthType */
1147#define AUTHTYPE_CLIENT 1
1148#define AUTHTYPE_SERVER 2
1149/* Values for HTTPSPolicyCallbackData's fdwChecks are defined in wininet.h */
1150
1151#define BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG 0x80000000
1152#define BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG 0x40000000
1153
1154#define MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG 0x00010000
1155
1156#define USAGE_MATCH_TYPE_AND 0x00000000
1157#define USAGE_MATCH_TYPE_OR 0x00000001
1158
1159typedef struct _CERT_USAGE_MATCH {
1163
1164typedef struct _CTL_USAGE_MATCH {
1168
1169#define CERT_CHAIN_REVOCATION_CHECK_END_CERT 0x10000000
1170#define CERT_CHAIN_REVOCATION_CHECK_CHAIN 0x20000000
1171#define CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT 0x40000000
1172#define CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY 0x80000000
1173
1174#define CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT 0x08000000
1175
1176#define CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING 0x00000040
1177#define CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS 0x00000080
1178#define CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE 0x00000100
1179#define CERT_CHAIN_TIMESTAMP_TIME 0x00000200
1180
1181typedef struct _CERT_CHAIN_PARA {
1184#ifdef CERT_CHAIN_PARA_HAS_EXTRA_FIELDS
1185 CERT_USAGE_MATCH RequestedIssuancePolicy;
1186 DWORD dwUrlRetrievalTimeout;
1187 BOOL fCheckRevocationFreshnessTime;
1188 DWORD dwRevocationFreshnessTime;
1189 LPFILETIME pftCacheResync;
1190#endif
1192
1196
1206
1208 union {
1212 union {
1218
1219#ifdef __REACTOS__
1220typedef BOOL
1222 _In_ LPCWSTR pwszStoreLocation,
1224 _Reserved_ void *pvReserved,
1225 _Inout_opt_ void *pvArg);
1226
1227typedef BOOL
1229 _In_ const void *pvSystemStore,
1231 _In_ PCERT_SYSTEM_STORE_INFO pStoreInfo,
1232 _Reserved_ void *pvReserved,
1233 _Inout_opt_ void *pvArg);
1234
1235typedef BOOL
1237 _In_ const void *pvSystemStore,
1239 _In_ LPCWSTR pwszStoreName,
1241 _Reserved_ void *pvReserved,
1242 _Inout_opt_ void *pvArg);
1243#else
1245 LPCWSTR pwszStoreLocation, DWORD dwFlags, void *pvReserved, void *pvArg);
1246
1247typedef BOOL (WINAPI *PFN_CERT_ENUM_SYSTEM_STORE)(const void *pvSystemStore,
1249 void *pvArg);
1250
1251typedef BOOL (WINAPI *PFN_CERT_ENUM_PHYSICAL_STORE)(const void *pvSystemStore,
1252 DWORD dwFlags, LPCWSTR pwszStoreName, PCERT_PHYSICAL_STORE_INFO pStoreInfo,
1253 void *pvReserved, void *pvArg);
1254#endif // __REACTOS
1255
1256/* Encode/decode object */
1257typedef LPVOID (__WINE_ALLOC_SIZE(1) WINAPI *PFN_CRYPT_ALLOC)(size_t cbsize);
1259
1260typedef struct _CRYPT_ENCODE_PARA {
1262 PFN_CRYPT_ALLOC pfnAlloc;
1265
1266typedef struct _CRYPT_DECODE_PARA {
1268 PFN_CRYPT_ALLOC pfnAlloc;
1271
1280
1281#ifdef __REACTOS__
1282typedef BOOL
1284 _In_ LPCSTR lpszStoreProvider,
1285 _In_ DWORD dwEncodingType,
1286 _In_opt_ HCRYPTPROV_LEGACY hCryptProv,
1288 _In_opt_ const void *pvPara,
1289 _In_ HCERTSTORE hCertStore,
1290 _Inout_ PCERT_STORE_PROV_INFO pStoreProvInfo);
1291
1292typedef void
1294 _Inout_opt_ HCERTSTOREPROV hStoreProv,
1296
1297typedef
1298_Success_(return != 0)
1299BOOL
1301 _Inout_ HCERTSTOREPROV hStoreProv,
1302 _In_ PCCERT_CONTEXT pStoreCertContext,
1304 _Outptr_ PCCERT_CONTEXT *ppProvCertContext);
1305
1306typedef BOOL
1308 _Inout_ HCERTSTOREPROV hStoreProv,
1309 _In_ PCCERT_CONTEXT pCertContext,
1311
1312typedef BOOL
1314 _Inout_ HCERTSTOREPROV hStoreProv,
1315 _In_ PCCERT_CONTEXT pCertContext,
1317
1318typedef BOOL
1320 _Inout_ HCERTSTOREPROV hStoreProv,
1321 _In_ PCCERT_CONTEXT pCertContext,
1322 _In_ DWORD dwPropId,
1324 _In_opt_ const void *pvData);
1325
1326typedef
1327_Success_(return != 0)
1328BOOL
1330 _Inout_ HCERTSTOREPROV hStoreProv,
1331 _In_ PCCRL_CONTEXT pStoreCrlContext,
1333 _Outptr_ PCCRL_CONTEXT *ppProvCrlContext);
1334
1335typedef BOOL
1337 _Inout_ HCERTSTOREPROV hStoreProv,
1338 _In_ PCCRL_CONTEXT pCrlContext,
1340
1341typedef BOOL
1343 _Inout_ HCERTSTOREPROV hStoreProv,
1344 _In_ PCCRL_CONTEXT pCrlContext,
1346
1347typedef BOOL
1349 _Inout_ HCERTSTOREPROV hStoreProv,
1350 _In_ PCCRL_CONTEXT pCrlContext,
1351 _In_ DWORD dwPropId,
1353 _In_opt_ const void *pvData);
1354
1355typedef
1356_Success_(return != 0)
1357BOOL
1359 _Inout_ HCERTSTOREPROV hStoreProv,
1360 _In_ PCCTL_CONTEXT pStoreCtlContext,
1362 _Outptr_ PCCTL_CONTEXT *ppProvCtlContext);
1363
1364typedef BOOL
1366 _Inout_ HCERTSTOREPROV hStoreProv,
1367 _In_ PCCTL_CONTEXT pCtlContext,
1369
1370typedef BOOL
1372 _Inout_ HCERTSTOREPROV hStoreProv,
1373 _In_ PCCTL_CONTEXT pCtlContext,
1375
1376typedef BOOL
1378 _Inout_ HCERTSTOREPROV hStoreProv,
1379 _In_ PCCTL_CONTEXT pCtlContext,
1380 _In_ DWORD dwPropId,
1382 _In_opt_ const void *pvData);
1383
1384typedef BOOL
1386 _Inout_ HCERTSTOREPROV hStoreProv,
1388 _In_ DWORD dwCtrlType,
1389 _In_opt_ void const *pvCtrlPara);
1390#else
1392 LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv,
1393 DWORD dwFlags, const void *pvPara, HCERTSTORE hCertStore,
1394 PCERT_STORE_PROV_INFO pStoreProvInfo);
1395
1397 DWORD dwFlags);
1398
1400 PCCERT_CONTEXT pStoreCertContext, DWORD dwFlags,
1401 PCCERT_CONTEXT *ppProvCertContext);
1402
1404 PCCERT_CONTEXT pCertContext, DWORD dwFlags);
1405
1407 HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwFlags);
1408
1410 HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwPropId,
1411 DWORD dwFlags, const void *pvData);
1412
1414 PCCRL_CONTEXT pStoreCrlContext, DWORD dwFlags,
1415 PCCRL_CONTEXT *ppProvCrlContext);
1416
1418 PCCRL_CONTEXT pCrlContext, DWORD dwFlags);
1419
1421 PCCRL_CONTEXT pCrlContext, DWORD dwFlags);
1422
1424 HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwPropId,
1425 DWORD dwFlags, const void *pvData);
1426
1428 PCCTL_CONTEXT pStoreCtlContext, DWORD dwFlags,
1429 PCCTL_CONTEXT *ppProvCtlContext);
1430
1432 PCCTL_CONTEXT pCtlContext, DWORD dwFlags);
1433
1435 HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwFlags);
1436
1438 HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwPropId,
1439 DWORD dwFlags, const void *pvData);
1440
1442 DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara);
1443#endif
1444
1450 const void *pvFindPara;
1454
1455#ifdef __REACTOS__
1456typedef
1457_Success_(return != 0)
1458BOOL
1460 _Inout_ HCERTSTOREPROV hStoreProv,
1462 _In_ PCCERT_CONTEXT pPrevCertContext,
1464 _Inout_ void **ppvStoreProvFindInfo,
1465 _Outptr_ PCCERT_CONTEXT *ppProvCertContext);
1466
1467typedef BOOL
1469 _Inout_ HCERTSTOREPROV hStoreProv,
1470 _In_ PCCERT_CONTEXT pCertContext,
1471 _In_ void *pvStoreProvFindInfo,
1473
1474typedef BOOL
1476 _Inout_ HCERTSTOREPROV hStoreProv,
1477 _In_ PCCERT_CONTEXT pCertContext,
1478 _In_ DWORD dwPropId,
1480 _Out_writes_bytes_to_opt_(*pcbData, *pcbData) void *pvData,
1481 _Inout_ DWORD *pcbData);
1482
1483typedef
1484_Success_(return != 0)
1485BOOL
1487 _Inout_ HCERTSTOREPROV hStoreProv,
1489 _In_ PCCRL_CONTEXT pPrevCrlContext,
1491 _Inout_ void **ppvStoreProvFindInfo,
1492 _Outptr_ PCCRL_CONTEXT *ppProvCrlContext);
1493
1494typedef BOOL
1496 _Inout_ HCERTSTOREPROV hStoreProv,
1497 _In_ PCCRL_CONTEXT pCrlContext,
1498 _In_ void *pvStoreProvFindInfo,
1500
1501typedef BOOL
1503 _Inout_ HCERTSTOREPROV hStoreProv,
1504 _In_ PCCRL_CONTEXT pCrlContext,
1505 _In_ DWORD dwPropId,
1507 _Out_writes_bytes_to_opt_(*pcbData, *pcbData) void *pvData,
1508 _Inout_ DWORD *pcbData);
1509
1510typedef
1511_Success_(return != 0)
1512BOOL
1514 _In_ HCERTSTOREPROV hStoreProv,
1516 _In_ PCCTL_CONTEXT pPrevCtlContext,
1518 _Inout_ void **ppvStoreProvFindInfo,
1519 _Outptr_ PCCTL_CONTEXT *ppProvCtlContext);
1520
1521typedef BOOL
1523 _Inout_ HCERTSTOREPROV hStoreProv,
1524 _In_ PCCTL_CONTEXT pCtlContext,
1525 _In_ DWORD dwPropId,
1527 _Out_writes_bytes_to_opt_(*pcbData, *pcbData) void *pvData,
1528 _Inout_ DWORD *pcbData);
1529#else
1531 PCCERT_STORE_PROV_FIND_INFO pFindInfo, PCCERT_CONTEXT pPrevCertContext,
1532 DWORD dwFlags, void **ppvStoreProvFindInfo, PCCERT_CONTEXT *ppProvCertContext);
1533
1535 HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext,
1536 void *pvStoreProvFindInfo, DWORD dwFlags);
1537
1539 HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwPropId,
1540 DWORD dwFlags, void *pvData, DWORD *pcbData);
1541
1543 PCCERT_STORE_PROV_FIND_INFO pFindInfo, PCCRL_CONTEXT pPrevCrlContext,
1544 DWORD dwFlags, void **ppvStoreProvFindInfo, PCCRL_CONTEXT *ppProvCrlContext);
1545
1547 HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext,
1548 void *pvStoreProvFindInfo, DWORD dwFlags);
1549
1551 HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwPropId,
1552 DWORD dwFlags, void *pvData, DWORD *pcbData);
1553
1555 PCCTL_CONTEXT pCtlContext, void *pvStoreProvFindInfo, DWORD dwFlags);
1556
1558 HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwPropId,
1559 DWORD dwFlags, void *pvData);
1560#endif
1561
1565 void *pvFree;
1567
1572
1573#ifdef __REACTOS__
1574typedef BOOL
1576 _In_ DWORD dwEncodingType,
1577 _In_ LPCSTR pszFuncName,
1578 _In_ LPCSTR pszOID,
1579 _In_ DWORD cValue,
1580 _In_reads_(cValue) const DWORD rgdwValueType[],
1581 _In_reads_(cValue) LPCWSTR const rgpwszValueName[],
1582 _In_reads_(cValue) const BYTE * const rgpbValueData[],
1583 _In_reads_(cValue) const DWORD rgcbValueData[],
1584 _Inout_opt_ void *pvArg);
1585
1586#else
1587typedef BOOL (WINAPI *PFN_CRYPT_ENUM_OID_FUNC)(DWORD dwEncodingType,
1588 LPCSTR pszFuncName, LPCSTR pszOID, DWORD cValue, const DWORD rgdwValueType[],
1589 LPCWSTR const rgpwszValueName[], const BYTE * const rgpbValueData[],
1590 const DWORD rgcbValueData[], void *pvArg);
1591#endif
1592
1593#define CRYPT_MATCH_ANY_ENCODING_TYPE 0xffffffff
1594
1595#define CALG_OID_INFO_CNG_ONLY 0xffffffff
1596#define CALG_OID_INFO_PARAMETERS 0xfffffffe
1597
1598#if defined(_MSC_VER) || defined(__MINGW32__)
1599#define CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM L"CryptOIDInfoHashParameters"
1600#define CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM L"CryptOIDInfoECCParameters"
1601#define CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM L"CryptOIDInfoMgf1Parameters"
1602#define CRYPT_OID_INFO_NO_SIGN_ALGORITHM L"CryptOIDInfoNoSign"
1603#define CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM L"CryptOIDInfoOAEPParameters"
1604#define CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM L"CryptOIDInfoECCWrapParameters"
1605#define CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM L"CryptOIDInfoNoParameters"
1606#else
1607static const WCHAR CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','H','a','s','h','P','a','r','a','m','e','t','e','r','s',0};
1608static const WCHAR CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','P','a','r','a','m','e','t','e','r','s',0};
1609static const WCHAR CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','M','g','f','1','P','a','r','a','m','e','t','e','r','s',0};
1610static const WCHAR CRYPT_OID_INFO_NO_SIGN_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','N','o','S','i','g','n',0};
1611static const WCHAR CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','O','A','E','P','P','a','r','a','m','e','t','e','r','s',0};
1612static const WCHAR CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','W','r','a','p','P','a','r','a','m','e','t','e','r','s',0};
1613static const WCHAR CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','N','o','P','a','r','a','m','e','t','e','r','s',0};
1614#endif
1615
1616typedef struct _CRYPT_OID_INFO {
1621 union {
1627#ifdef CRYPT_OID_INFO_HAS_EXTRA_FIELDS
1628 LPCWSTR pwszCNGAlgid;
1629 LPCWSTR pwszCNGExtraAlgid;
1630#endif
1633
1634#ifdef __REACTOS__
1635typedef BOOL
1637 _In_ PCCRYPT_OID_INFO pInfo,
1638 _Inout_opt_ void *pvArg);
1639#else
1641 void *pvArg);
1642#endif
1643
1660#ifdef CRYPT_SIGN_MESSAGE_PARA_HAS_CMS_FIELDS
1661 CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm;
1662 void * pvHashEncryptionAuxInfo;
1663#endif
1665
1666#define CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG 0x00000001
1667#define CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG 0x00000002
1668#define CRYPT_MESSAGE_KEYID_SIGNER_FLAG 0x00000004
1669#define CRYPT_MESSAGE_SILENT_KEYSET_FLAG 0x00000008
1670
1671#ifdef __REACTOS__
1672typedef PCCERT_CONTEXT
1674 _Inout_opt_ void *pvGetArg,
1675 _In_ DWORD dwCertEncodingType,
1676 _In_ PCERT_INFO pSignerId,
1677 _In_ HCERTSTORE hMsgCertStore);
1678#else
1680 DWORD dwCertEncodingType, PCERT_INFO pSignerId, HCERTSTORE hMsgCertStore);
1681#endif
1682
1688 void * pvGetArg;
1690
1700
1701#define CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG 0x00000004
1702
1708#ifdef CRYPT_DECRYPT_MESSAGE_PARA_HAS_EXTRA_FIELDS
1709 DWORD dwFlags;
1710#endif
1712
1720
1729
1735
1736typedef struct _CRYPT_URL_ARRAY {
1740
1741typedef struct _CRYPT_URL_INFO {
1747
1748#define URL_OID_CERTIFICATE_ISSUER ((LPCSTR)1)
1749#define URL_OID_CERTIFICATE_CRL_DIST_POINT ((LPCSTR)2)
1750#define URL_OID_CTL_ISSUER ((LPCSTR)3)
1751#define URL_OID_CTL_NEXT_UPDATE ((LPCSTR)4)
1752#define URL_OID_CRL_ISSUER ((LPCSTR)5)
1753#define URL_OID_CERTIFICATE_FRESHEST_CRL ((LPCSTR)6)
1754#define URL_OID_CRL_FRESHEST_CRL ((LPCSTR)7)
1755#define URL_OID_CROSS_CERT_DIST_POINT ((LPCSTR)8)
1756#define URL_OID_CERTIFICATE_OCSP ((LPCSTR)9)
1757#define URL_OID_CERTIFICATE_OCSP_AND_CRL_DIST_POINT ((LPCSTR)10)
1758#define URL_OID_CERTIFICATE_CRL_DIST_POINT_AND_OCSP ((LPCSTR)11)
1759#define URL_OID_CROSS_CERT_SUBJECT_INFO_ACCESS ((LPCSTR)12)
1760
1761#define URL_OID_GET_OBJECT_URL_FUNC "UrlDllGetObjectUrl"
1762
1764
1765#ifdef __REACTOS__
1766typedef void
1768 _In_ LPSTR pszParamOid,
1769 _In_ LPVOID pvParam);
1770#else
1772 LPVOID pvParam);
1773#endif
1774
1775#define CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION ((LPCSTR)1)
1776#define CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL ((LPCSTR)2)
1777
1778#ifdef __REACTOS__
1779typedef void
1781 _Inout_opt_ void *pvCompletion,
1782 _In_ DWORD dwCompletionCode,
1783 _In_ LPCSTR pszURL,
1784 _In_opt_ LPSTR pszObjectOid,
1785 _In_ void *pvObject);
1786
1787typedef struct _CRYPT_ASYNC_RETRIEVAL_COMPLETION {
1791
1792typedef BOOL
1794 _In_opt_ HCRYPTASYNC hAsyncRetrieve);
1795#else
1797 void *pvCompletion, DWORD dwCompletionCode, LPCSTR pszURL, LPSTR pszObjectOid,
1798 void *pvObject);
1799
1801{
1805
1807 HCRYPTASYNC hAsyncRetrieve);
1808#endif
1809
1810typedef struct _CRYPT_BLOB_ARRAY
1811{
1815
1816typedef struct _CRYPT_CREDENTIALS {
1821
1822#define CREDENTIAL_OID_PASSWORD_CREDENTIALS_A ((LPCSTR)1)
1823#define CREDENTIAL_OID_PASSWORD_CREDENTIALS_W ((LPCSTR)2)
1824#define CREDENTIAL_OID_PASSWORD_CREDENTIALS \
1825 WINELIB_NAME_AW(CREDENTIAL_OID_PASSWORD_CREDENTIALS_)
1826
1832
1838#define CRYPT_PASSWORD_CREDENTIALS WINELIB_NAME_AW(CRYPT_PASSWORD_CREDENTIALS)
1839#define PCRYPT_PASSWORD_CREDENTIALS WINELIB_NAME_AW(PCRYPT_PASSWORD_CREDENTIALS)
1840
1846
1847#ifdef __REACTOS__
1848typedef void
1850 _In_opt_ LPCSTR pszObjectOid,
1852 _Inout_opt_ void *pvFreeContext);
1853#else
1855 PCRYPT_BLOB_ARRAY pObject, void *pvFreeContext);
1856#endif
1857
1858#define SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC \
1859 "SchemeDllRetrieveEncodedObject"
1860#define SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC \
1861 "SchemeDllRetrieveEncodedObjectW"
1862/* The signature of SchemeDllRetrieveEncodedObjectW is:
1863BOOL WINAPI SchemeDllRetrieveEncodedObjectW(LPCWSTR pwszUrl,
1864 LPCSTR pszObjectOid, DWORD dwRetrievalFlags, DWORD dwTimeout,
1865 PCRYPT_BLOB_ARRAY pObject, PFN_FREE_ENCODED_OBJECT_FUNC *ppfnFreeObject,
1866 void **ppvFreeContext, HCRYPTASYNC hAsyncRetrieve,
1867 PCRYPT_CREDENTIALS pCredentials, PCRYPT_RETRIEVE_AUX_INFO pAuxInfo);
1868 */
1869
1870#define CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC "ContextDllCreateObjectContext"
1871/* The signature of ContextDllCreateObjectContext is:
1872BOOL WINAPI ContextDllCreateObjectContext(LPCSTR pszObjectOid,
1873 DWORD dwRetrievalFlags, PCRYPT_BLOB_ARRAY pObject, void **ppvContxt);
1874 */
1875
1876#define CONTEXT_OID_CERTIFICATE ((LPCSTR)1)
1877#define CONTEXT_OID_CRL ((LPCSTR)2)
1878#define CONTEXT_OID_CTL ((LPCSTR)3)
1879#define CONTEXT_OID_PKCS7 ((LPCSTR)4)
1880#define CONTEXT_OID_CAPI2_ANY ((LPCSTR)5)
1881
1882#define CRYPT_RETRIEVE_MULTIPLE_OBJECTS 0x00000001
1883#define CRYPT_CACHE_ONLY_RETRIEVAL 0x00000002
1884#define CRYPT_WIRE_ONLY_RETRIEVAL 0x00000004
1885#define CRYPT_DONT_CACHE_RESULT 0x00000008
1886#define CRYPT_ASYNC_RETRIEVAL 0x00000010
1887#define CRYPT_STICKY_CACHE_RETRIEVAL 0x00001000
1888#define CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL 0x00002000
1889#define CRYPT_OFFLINE_CHECK_RETRIEVAL 0x00004000
1890#define CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE 0x00008000
1891#define CRYPT_LDAP_SIGN_RETRIEVAL 0x00010000
1892#define CRYPT_NO_AUTH_RETRIEVAL 0x00020000
1893#define CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL 0x00040000
1894#define CRYPT_AIA_RETRIEVAL 0x00080000
1895
1896#define CRYPT_VERIFY_CONTEXT_SIGNATURE 0x00000020
1897#define CRYPT_VERIFY_DATA_HASH 0x00000040
1898#define CRYPT_KEEP_TIME_VALID 0x00000080
1899#define CRYPT_DONT_VERIFY_SIGNATURE 0x00000100
1900#define CRYPT_DONT_CHECK_TIME_VALIDITY 0x00000200
1901#define CRYPT_CHECK_FRESHNESS_TIME_VALIDITY 0x00000400
1902#define CRYPT_ACCUMULATIVE_TIMEOUT 0x00000800
1903
1904#ifdef __REACTOS__
1905typedef BOOL
1908 _Inout_opt_ void *pvArg);
1909#else
1911#endif
1912
1914{
1919
1920#define TIME_VALID_OID_GET_OBJECT_FUNC "TimeValidDllGetObject"
1921
1922#define TIME_VALID_OID_GET_CTL ((LPCSTR)1)
1923#define TIME_VALID_OID_GET_CRL ((LPCSTR)2)
1924#define TIME_VALID_OID_GET_CRL_FROM_CERT ((LPCSTR)3)
1925#define TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT ((LPCSTR)4)
1926#define TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL ((LPCSTR)5)
1927
1928#define TIME_VALID_OID_FLUSH_OBJECT_FUNC "TimeValidDllFlushObject"
1929
1930#define TIME_VALID_OID_FLUSH_CTL ((LPCSTR)1)
1931#define TIME_VALID_OID_FLUSH_CRL ((LPCSTR)2)
1932#define TIME_VALID_OID_FLUSH_CRL_FROM_CERT ((LPCSTR)3)
1933#define TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CERT ((LPCSTR)4)
1934#define TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CRL ((LPCSTR)5)
1935
1936/* OID group IDs */
1937#define CRYPT_HASH_ALG_OID_GROUP_ID 1
1938#define CRYPT_ENCRYPT_ALG_OID_GROUP_ID 2
1939#define CRYPT_PUBKEY_ALG_OID_GROUP_ID 3
1940#define CRYPT_SIGN_ALG_OID_GROUP_ID 4
1941#define CRYPT_RDN_ATTR_OID_GROUP_ID 5
1942#define CRYPT_EXT_OR_ATTR_OID_GROUP_ID 6
1943#define CRYPT_ENHKEY_USAGE_OID_GROUP_ID 7
1944#define CRYPT_POLICY_OID_GROUP_ID 8
1945#define CRYPT_TEMPLATE_OID_GROUP_ID 9
1946#define CRYPT_LAST_OID_GROUP_ID 9
1947
1948#define CRYPT_FIRST_ALG_OID_GROUP_ID CRYPT_HASH_ALG_OID_GROUP_ID
1949#define CRYPT_LAST_ALG_OID_GROUP_ID CRYPT_SIGN_ALG_OID_GROUP_ID
1950
1951#define CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG 0x1
1952#define CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG 0x2
1953#define CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG 0x4
1954
1955#define CRYPT_OID_INFO_OID_KEY 1
1956#define CRYPT_OID_INFO_NAME_KEY 2
1957#define CRYPT_OID_INFO_ALGID_KEY 3
1958#define CRYPT_OID_INFO_SIGN_KEY 4
1959
1960/* Algorithm IDs */
1961
1962#define GET_ALG_CLASS(x) (x & (7 << 13))
1963#define GET_ALG_TYPE(x) (x & (15 << 9))
1964#define GET_ALG_SID(x) (x & (511))
1965
1966/* Algorithm Classes */
1967#define ALG_CLASS_ANY (0)
1968#define ALG_CLASS_SIGNATURE (1 << 13)
1969#define ALG_CLASS_MSG_ENCRYPT (2 << 13)
1970#define ALG_CLASS_DATA_ENCRYPT (3 << 13)
1971#define ALG_CLASS_HASH (4 << 13)
1972#define ALG_CLASS_KEY_EXCHANGE (5 << 13)
1973#define ALG_CLASS_ALL (7 << 13)
1974/* Algorithm types */
1975#define ALG_TYPE_ANY (0)
1976#define ALG_TYPE_DSS (1 << 9)
1977#define ALG_TYPE_RSA (2 << 9)
1978#define ALG_TYPE_BLOCK (3 << 9)
1979#define ALG_TYPE_STREAM (4 << 9)
1980#define ALG_TYPE_DH (5 << 9)
1981#define ALG_TYPE_SECURECHANNEL (6 << 9)
1982#define ALG_TYPE_ECDH (7 << 9)
1983
1984/* SIDs */
1985#define ALG_SID_ANY (0)
1986/* RSA SIDs */
1987#define ALG_SID_RSA_ANY 0
1988#define ALG_SID_RSA_PKCS 1
1989#define ALG_SID_RSA_MSATWORK 2
1990#define ALG_SID_RSA_ENTRUST 3
1991#define ALG_SID_RSA_PGP 4
1992/* DSS SIDs */
1993#define ALG_SID_DSS_ANY 0
1994#define ALG_SID_DSS_PKCS 1
1995#define ALG_SID_DSS_DMS 2
1996#define ALG_SID_ECDSA 3
1997
1998/* DES SIDs */
1999#define ALG_SID_DES 1
2000#define ALG_SID_3DES 3
2001#define ALG_SID_DESX 4
2002#define ALG_SID_IDEA 5
2003#define ALG_SID_CAST 6
2004#define ALG_SID_SAFERSK64 7
2005#define ALG_SID_SAFERSK128 8
2006#define ALG_SID_3DES_112 9
2007#define ALG_SID_CYLINK_MEK 12
2008#define ALG_SID_RC5 13
2009#define ALG_SID_AES_128 14
2010#define ALG_SID_AES_192 15
2011#define ALG_SID_AES_256 16
2012#define ALG_SID_AES 17
2013/* Fortezza */
2014#define ALG_SID_SKIPJACK 10
2015#define ALG_SID_TEK 11
2016/* Diffie-Hellmans SIDs */
2017#define ALG_SID_DH_SANDF 1
2018#define ALG_SID_DH_EPHEM 2
2019#define ALG_SID_AGREED_KEY_ANY 3
2020#define ALG_SID_KEA 4
2021#define ALG_SID_ECDH 5
2022#define ALG_SID_ECDH_EPHEM 6
2023/* RC2 SIDs */
2024#define ALG_SID_RC4 1
2025#define ALG_SID_RC2 2
2026#define ALG_SID_SEAL 2
2027/* Hash SIDs */
2028#define ALG_SID_MD2 1
2029#define ALG_SID_MD4 2
2030#define ALG_SID_MD5 3
2031#define ALG_SID_SHA 4
2032#define ALG_SID_SHA1 ALG_SID_SHA
2033#define ALG_SID_MAC 5
2034#define ALG_SID_RIPEMD 6
2035#define ALG_SID_RIPEMD160 7
2036#define ALG_SID_SSL3SHAMD5 8
2037#define ALG_SID_HMAC 9
2038#define ALG_SID_TLS1PRF 10
2039#define ALG_SID_HASH_REPLACE_OWF 11
2040#define ALG_SID_SHA_256 12
2041#define ALG_SID_SHA_384 13
2042#define ALG_SID_SHA_512 14
2043/* SCHANNEL SIDs */
2044#define ALG_SID_SSL3_MASTER 1
2045#define ALG_SID_SCHANNEL_MASTER_HASH 2
2046#define ALG_SID_SCHANNEL_MAC_KEY 3
2047#define ALG_SID_PCT1_MASTER 4
2048#define ALG_SID_SSL2_MASTER 5
2049#define ALG_SID_TLS1_MASTER 6
2050#define ALG_SID_SCHANNEL_ENC_KEY 7
2051#define ALG_SID_EXAMPLE 80
2052
2053#define ALG_SID_ECMQV 1
2054
2055/* Algorithm Definitions */
2056#define CALG_MD2 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD2)
2057#define CALG_MD4 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4)
2058#define CALG_MD5 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5)
2059#define CALG_SHA (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA)
2060#define CALG_SHA1 CALG_SHA
2061#define CALG_MAC (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC)
2062#define CALG_SSL3_SHAMD5 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SSL3SHAMD5)
2063#define CALG_HMAC (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HMAC)
2064#define CALG_TLS1PRF (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_TLS1PRF)
2065#define CALG_HASH_REPLACE_OWF (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HASH_REPLACE_OWF)
2066#define CALG_SHA_256 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256)
2067#define CALG_SHA_384 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384)
2068#define CALG_SHA_512 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512)
2069#define CALG_RSA_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY)
2070#define CALG_DSS_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY)
2071#define CALG_NO_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_ANY | ALG_SID_ANY)
2072#define CALG_ECDSA (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_ECDSA)
2073#define CALG_DH_SF (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_DH_SANDF)
2074#define CALG_DH_EPHEM (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_DH_EPHEM)
2075#define CALG_AGREEDKEY_ANY (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_AGREED_KEY_ANY)
2076#define CALG_KEA_KEYX (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_KEA)
2077#define CALG_HUGHES_MD5 (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ANY | ALG_SID_MD5)
2078#define CALG_ECDH (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_ECDH)
2079#define CALG_ECDH_EPHEM (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ECDH | ALG_SID_ECDH_EPHEM)
2080#define CALG_RSA_KEYX (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_RSA | ALG_SID_RSA_ANY)
2081#define CALG_ECMQV (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ANY | ALG_SID_ECMQV)
2082#define CALG_DES (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DES)
2083#define CALG_RC2 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_RC2)
2084#define CALG_3DES (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_3DES)
2085#define CALG_3DES_112 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_3DES_112)
2086#define CALG_DESX (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DESX)
2087#define CALG_AES_128 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_128)
2088#define CALG_AES_192 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_192)
2089#define CALG_AES_256 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_256)
2090#define CALG_AES (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES)
2091#define CALG_RC4 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC4)
2092#define CALG_SEAL (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_SEAL)
2093#define CALG_RC5 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC5)
2094#define CALG_SKIPJACK (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_SKIPJACK)
2095#define CALG_TEK (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_TEK)
2096#define CALG_CYLINK_MEK (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_CYLINK_MEK)
2097#define CALG_SSL3_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SSL3_MASTER)
2098#define CALG_SCHANNEL_MASTER_HASH (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_MASTER_HASH)
2099#define CALG_SCHANNEL_MAC_KEY (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_MAC_KEY)
2100#define CALG_SCHANNEL_ENC_KEY (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_ENC_KEY)
2101#define CALG_PCT1_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_PCT1_MASTER)
2102#define CALG_SSL2_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SSL2_MASTER)
2103#define CALG_TLS1_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_TLS1_MASTER)
2104
2105
2106/* Protocol Flags */
2107#define CRYPT_FLAG_PCT1 0x0001
2108#define CRYPT_FLAG_SSL2 0x0002
2109#define CRYPT_FLAG_SSL3 0x0004
2110#define CRYPT_FLAG_TLS1 0x0008
2111#define CRYPT_FLAG_IPSEC 0x0010
2112#define CRYPT_FLAG_SIGNING 0x0020
2113
2114/* Provider names */
2115#define MS_DEF_PROV_A "Microsoft Base Cryptographic Provider v1.0"
2116#if defined(_MSC_VER) || defined(__MINGW32__)
2117# define MS_DEF_PROV_W L"Microsoft Base Cryptographic Provider v1.0"
2118#else
2119static const WCHAR MS_DEF_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
2120 'B','a','s','e',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ',
2121 'P','r','o','v','i','d','e','r',' ','v','1','.','0',0 };
2122#endif
2123#define MS_DEF_PROV WINELIB_NAME_AW(MS_DEF_PROV_)
2124
2125#define MS_ENHANCED_PROV_A "Microsoft Enhanced Cryptographic Provider v1.0"
2126#if defined(_MSC_VER) || defined(__MINGW32__)
2127# define MS_ENHANCED_PROV_W L"Microsoft Enhanced Cryptographic Provider v1.0"
2128#else
2129static const WCHAR MS_ENHANCED_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
2130 'E','n','h','a','n','c','e','d',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ',
2131 'P','r','o','v','i','d','e','r',' ','v','1','.','0',0 };
2132#endif
2133#define MS_ENHANCED_PROV WINELIB_NAME_AW(MS_ENHANCED_PROV_)
2134
2135#define MS_STRONG_PROV_A "Microsoft Strong Cryptographic Provider"
2136#if defined(_MSC_VER) || defined(__MINGW32__)
2137# define MS_STRONG_PROV_W L"Microsoft Strong Cryptographic Provider"
2138#else
2139static const WCHAR MS_STRONG_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
2140 'S','t','r','o','n','g',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ',
2141 'P','r','o','v','i','d','e','r',0 };
2142#endif
2143#define MS_STRONG_PROV WINELIB_NAME_AW(MS_STRONG_PROV_)
2144
2145#define MS_DEF_RSA_SIG_PROV_A "Microsoft RSA Signature Cryptographic Provider"
2146#if defined(_MSC_VER) || defined(__MINGW32__)
2147# define MS_DEF_RSA_SIG_PROV_W L"Microsoft RSA Signature Cryptographic Provider"
2148#else
2149static const WCHAR MS_DEF_RSA_SIG_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
2150 'R','S','A',' ','S','i','g','n','a','t','u','r','e',' ',
2151 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 };
2152#endif
2153#define MS_DEF_RSA_SIG_PROV WINELIB_NAME_AW(MS_DEF_RSA_SIG_PROV_)
2154
2155#define MS_DEF_RSA_SCHANNEL_PROV_A "Microsoft RSA SChannel Cryptographic Provider"
2156#if defined(_MSC_VER) || defined(__MINGW32__)
2157# define MS_DEF_RSA_SCHANNEL_PROV_W L"Microsoft RSA SChannel Cryptographic Provider"
2158#else
2159static const WCHAR MS_DEF_RSA_SCHANNEL_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
2160 'R','S','A',' ','S','C','h','a','n','n','e','l',' ',
2161 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 };
2162#endif
2163#define MS_DEF_RSA_SCHANNEL_PROV WINELIB_NAME_AW(MS_DEF_RSA_SCHANNEL_PROV_)
2164
2165#define MS_DEF_DSS_PROV_A "Microsoft Base DSS Cryptographic Provider"
2166#if defined(_MSC_VER) || defined(__MINGW32__)
2167# define MS_DEF_DSS_PROV_W L"Microsoft Base DSS Cryptographic Provider"
2168#else
2169static const WCHAR MS_DEF_DSS_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
2170 'B','a','s','e',' ','D','S','S',' ',
2171 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 };
2172#endif
2173#define MS_DEF_DSS_PROV WINELIB_NAME_AW(MS_DEF_DSS_PROV_)
2174
2175#define MS_DEF_DSS_DH_PROV_A "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"
2176#if defined(_MSC_VER) || defined(__MINGW32__)
2177# define MS_DEF_DSS_DH_PROV_W L"Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"
2178#else
2179static const WCHAR MS_DEF_DSS_DH_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
2180 'B','a','s','e',' ','D','S','S',' ','a','n','d',' ',
2181 'D','i','f','f','i','e','-','H','e','l','l','m','a','n',' ',
2182 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 };
2183#endif
2184#define MS_DEF_DSS_DH_PROV WINELIB_NAME_AW(MS_DEF_DSS_DH_PROV_)
2185
2186#define MS_ENH_DSS_DH_PROV_A "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"
2187#if defined(_MSC_VER) || defined(__MINGW32__)
2188# define MS_ENH_DSS_DH_PROV_W L"Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"
2189#else
2190static const WCHAR MS_ENH_DSS_DH_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
2191 'E','n','h','a','n','c','e','d',' ','D','S','S',' ','a','n','d',' ',
2192 'D','i','f','f','i','e','-','H','e','l','l','m','a','n',' ',
2193 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 };
2194#endif
2195#define MS_ENH_DSS_DH_PROV WINELIB_NAME_AW(MS_ENH_DSS_DH_PROV_)
2196
2197#define MS_DEF_DH_SCHANNEL_PROV_A "Microsoft DH SChannel Cryptographic Provider"
2198#if defined(_MSC_VER) || defined(__MINGW32__)
2199# define MS_DEF_DH_SCHANNEL_PROV_W L"Microsoft DH SChannel Cryptographic Provider"
2200#else
2201static const WCHAR MS_DEF_DH_SCHANNEL_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
2202 'D','H',' ','S','C','h','a','n','n','e','l',' ',
2203 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 };
2204#endif
2205#define MS_DEF_DH_SCHANNEL_PROV WINELIB_NAME_AW(MS_DEF_DH_SCHANNEL_PROV_)
2206
2207#define MS_SCARD_PROV_A "Microsoft Base Smart Card Cryptographic Provider"
2208#if defined(_MSC_VER) || defined(__MINGW32__)
2209# define MS_SCARD_PROV_W L"Microsoft Base Smart Card Cryptographic Provider"
2210#else
2211static const WCHAR MS_SCARD_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
2212 'B','a','s','e',' ','S','m','a','r','t',' ','C','a','r','d',' ',
2213 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 };
2214#endif
2215#define MS_SCARD_PROV WINELIB_NAME_AW(MS_SCARD_PROV_)
2216
2217#define MS_ENH_RSA_AES_PROV_A "Microsoft Enhanced RSA and AES Cryptographic Provider"
2218#if defined(_MSC_VER) || defined(__MINGW32__)
2219# define MS_ENH_RSA_AES_PROV_W L"Microsoft Enhanced RSA and AES Cryptographic Provider"
2220#else
2221static const WCHAR MS_ENH_RSA_AES_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
2222 'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ',
2223 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 };
2224#endif
2225#define MS_ENH_RSA_AES_PROV WINELIB_NAME_AW(MS_ENH_RSA_AES_PROV_)
2226
2227#define MS_ENH_RSA_AES_PROV_XP_A "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"
2228#if defined(_MSC_VER) || defined(__MINGW32__)
2229# define MS_ENH_RSA_AES_PROV_XP_W L"Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"
2230#else
2231static const WCHAR MS_ENH_RSA_AES_PROV_XP_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
2232 'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ',
2233 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',' ',
2234 '(','P','r','o','t','o','t','y','p','e',')',0 };
2235#endif
2236#define MS_ENH_RSA_AES_PROV_XP WINELIB_NAME_AW(MS_ENH_RSA_AES_PROV_XP_)
2237
2238/* Key Specs*/
2239#define AT_KEYEXCHANGE 1
2240#define AT_SIGNATURE 2
2241
2242/* Provider Types */
2243#define PROV_RSA_FULL 1
2244#define PROV_RSA_SIG 2
2245#define PROV_DSS 3
2246#define PROV_FORTEZZA 4
2247#define PROV_MS_EXCHANGE 5
2248#define PROV_SSL 6
2249#define PROV_RSA_SCHANNEL 12
2250#define PROV_DSS_DH 13
2251#define PROV_EC_ECDSA_SIG 14
2252#define PROV_EC_ECNRA_SIG 15
2253#define PROV_EC_ECDSA_FULL 16
2254#define PROV_EC_ECNRA_FULL 17
2255#define PROV_DH_SCHANNEL 18
2256#define PROV_SPYRUS_LYNKS 20
2257#define PROV_RNG 21
2258#define PROV_INTEL_SEC 22
2259#define PROV_REPLACE_OWF 23
2260#define PROV_RSA_AES 24
2261
2262/* FLAGS Section */
2263
2264#define CRYPT_FIRST 1
2265#define CRYPT_NEXT 2
2266
2267#define CRYPT_IMPL_HARDWARE 1
2268#define CRYPT_IMPL_SOFTWARE 2
2269#define CRYPT_IMPL_MIXED 3
2270#define CRYPT_IMPL_UNKNOWN 4
2271
2272/* CryptAcquireContext */
2273#define CRYPT_VERIFYCONTEXT 0xF0000000
2274#define CRYPT_NEWKEYSET 0x00000008
2275#define CRYPT_DELETEKEYSET 0x00000010
2276#define CRYPT_MACHINE_KEYSET 0x00000020
2277#define CRYPT_SILENT 0x00000040
2278
2279/* Crypt{Get|Set}Provider */
2280#define CRYPT_MACHINE_DEFAULT 0x00000001
2281#define CRYPT_USER_DEFAULT 0x00000002
2282#define CRYPT_DELETE_DEFAULT 0x00000004
2283
2284/* Crypt{Get/Set}ProvParam */
2285#define PP_CLIENT_HWND 1
2286#define PP_ENUMALGS 1
2287#define PP_ENUMCONTAINERS 2
2288#define PP_IMPTYPE 3
2289#define PP_NAME 4
2290#define PP_VERSION 5
2291#define PP_CONTAINER 6
2292#define PP_CHANGE_PASSWORD 7
2293#define PP_KEYSET_SEC_DESCR 8
2294#define PP_KEY_TYPE_SUBTYPE 10
2295#define PP_CONTEXT_INFO 11
2296#define PP_KEYEXCHANGE_KEYSIZE 12
2297#define PP_SIGNATURE_KEYSIZE 13
2298#define PP_KEYEXCHANGE_ALG 14
2299#define PP_SIGNATURE_ALG 15
2300#define PP_PROVTYPE 16
2301#define PP_KEYSTORAGE 17
2302#define PP_SYM_KEYSIZE 19
2303#define PP_SESSION_KEYSIZE 20
2304#define PP_UI_PROMPT 21
2305#define PP_ENUMALGS_EX 22
2306#define PP_DELETEKEY 24
2307#define PP_ENUMMANDROOTS 25
2308#define PP_ENUMELECTROOTS 26
2309#define PP_KEYSET_TYPE 27
2310#define PP_ADMIN_PIN 31
2311#define PP_KEYEXCHANGE_PIN 32
2312#define PP_SIGNATURE_PIN 33
2313#define PP_SIG_KEYSIZE_INC 34
2314#define PP_KEYX_KEYSIZE_INC 35
2315#define PP_UNIQUE_CONTAINER 36
2316#define PP_SGC_INFO 37
2317#define PP_USE_HARDWARE_RNG 38
2318#define PP_KEYSPEC 39
2319#define PP_ENUMEX_SIGNING_PROT 40
2320#define PP_CRYPT_COUNT_KEY_USE 41
2321#define PP_USER_CERTSTORE 42
2322#define PP_SMARTCARD_READER 43
2323#define PP_SMARTCARD_GUID 45
2324#define PP_ROOT_CERTSTORE 46
2325
2326/* Values returned by CryptGetProvParam of PP_KEYSTORAGE */
2327#define CRYPT_SEC_DESCR 0x00000001
2328#define CRYPT_PSTORE 0x00000002
2329#define CRYPT_UI_PROMPT 0x00000004
2330
2331/* Crypt{Get/Set}KeyParam */
2332#define KP_IV 1
2333#define KP_SALT 2
2334#define KP_PADDING 3
2335#define KP_MODE 4
2336#define KP_MODE_BITS 5
2337#define KP_PERMISSIONS 6
2338#define KP_ALGID 7
2339#define KP_BLOCKLEN 8
2340#define KP_KEYLEN 9
2341#define KP_SALT_EX 10
2342#define KP_P 11
2343#define KP_G 12
2344#define KP_Q 13
2345#define KP_X 14
2346#define KP_Y 15
2347#define KP_RA 16
2348#define KP_RB 17
2349#define KP_INFO 18
2350#define KP_EFFECTIVE_KEYLEN 19
2351#define KP_SCHANNEL_ALG 20
2352#define KP_CLIENT_RANDOM 21
2353#define KP_SERVER_RANDOM 22
2354#define KP_RP 23
2355#define KP_PRECOMP_MD5 24
2356#define KP_PRECOMP_SHA 25
2357#define KP_CERTIFICATE 26
2358#define KP_CLEAR_KEY 27
2359#define KP_PUB_EX_LEN 28
2360#define KP_PUB_EX_VAL 29
2361#define KP_KEYVAL 30
2362#define KP_ADMIN_PIN 31
2363#define KP_KEYEXCHANGE_PIN 32
2364#define KP_SIGNATURE_PIN 33
2365#define KP_PREHASH 34
2366#define KP_ROUNDS 35
2367#define KP_OAEP_PARAMS 36
2368#define KP_CMS_KEY_INFO 37
2369#define KP_CMS_DH_KEY_INFO 38
2370#define KP_PUB_PARAMS 39
2371#define KP_VERIFY_PARAMS 40
2372#define KP_HIGHEST_VERSION 41
2373#define KP_GET_USE_COUNT 42
2374
2375/* Values for KP_PADDING */
2376#define PKCS5_PADDING 1
2377#define RANDOM_PADDING 2
2378#define ZERO_PADDING 3
2379
2380/* CryptSignHash/CryptVerifySignature */
2381#define CRYPT_NOHASHOID 0x00000001
2382#define CRYPT_TYPE2_FORMAT 0x00000002
2383#define CRYPT_X931_FORMAT 0x00000004
2384
2385/* Crypt{Get,Set}HashParam */
2386#define HP_ALGID 0x0001
2387#define HP_HASHVAL 0x0002
2388#define HP_HASHSIZE 0x0004
2389#define HP_HMAC_INFO 0x0005
2390#define HP_TLS1PRF_LABEL 0x0006
2391#define HP_TLS1PRF_SEED 0x0007
2392
2393/* Crypt{Get,Set}KeyParam */
2394#define CRYPT_MODE_CBC 1
2395#define CRYPT_MODE_ECB 2
2396#define CRYPT_MODE_OFB 3
2397#define CRYPT_MODE_CFB 4
2398
2399#define CRYPT_ENCRYPT 0x0001
2400#define CRYPT_DECRYPT 0x0002
2401#define CRYPT_EXPORT 0x0004
2402#define CRYPT_READ 0x0008
2403#define CRYPT_WRITE 0x0010
2404#define CRYPT_MAC 0x0020
2405#define CRYPT_EXPORT_KEY 0x0040
2406#define CRYPT_IMPORT_KEY 0x0080
2407#define CRYPT_ARCHIVE 0x0100
2408
2409/* Crypt*Key */
2410#define CRYPT_EXPORTABLE 0x00000001
2411#define CRYPT_USER_PROTECTED 0x00000002
2412#define CRYPT_CREATE_SALT 0x00000004
2413#define CRYPT_UPDATE_KEY 0x00000008
2414#define CRYPT_NO_SALT 0x00000010
2415#define CRYPT_PREGEN 0x00000040
2416#define CRYPT_SERVER 0x00000400
2417#define CRYPT_ARCHIVABLE 0x00004000
2418
2419/* CryptExportKey */
2420#define CRYPT_SSL2_FALLBACK 0x00000002
2421#define CRYPT_DESTROYKEY 0x00000004
2422#define CRYPT_OAEP 0x00000040
2423
2424/* CryptHashSessionKey */
2425#define CRYPT_LITTLE_ENDIAN 0x00000001
2426
2427/* Crypt{Protect,Unprotect}Data PROMPTSTRUCT flags */
2428#define CRYPTPROTECT_PROMPT_ON_PROTECT 0x0001
2429#define CRYPTPROTECT_PROMPT_ON_UNPROTECT 0x0002
2430/* Crypt{Protect,Unprotect}Data flags */
2431#define CRYPTPROTECT_UI_FORBIDDEN 0x0001
2432#define CRYPTPROTECT_LOCAL_MACHINE 0x0004
2433#define CRYPTPROTECT_AUDIT 0x0010
2434#define CRYPTPROTECT_VERIFY_PROTECTION 0x0040
2435
2436/* Crypt{Protect,Unprotect}Memory */
2437#define CRYPTPROTECTMEMORY_BLOCK_SIZE 16
2438#define CRYPTPROTECTMEMORY_SAME_PROCESS 0x0000
2439#define CRYPTPROTECTMEMORY_CROSS_PROCESS 0x0001
2440#define CRYPTPROTECTMEMORY_SAME_LOGON 0x0002
2441
2442/* Blob Types */
2443#define SIMPLEBLOB 0x1
2444#define PUBLICKEYBLOB 0x6
2445#define PRIVATEKEYBLOB 0x7
2446#define PLAINTEXTKEYBLOB 0x8
2447#define OPAQUEKEYBLOB 0x9
2448#define PUBLICKEYBLOBEX 0xA
2449#define SYMMETRICWRAPKEYBLOB 0xB
2450
2451#define CUR_BLOB_VERSION 2
2452
2453/* cert store provider types */
2454#define CERT_STORE_PROV_MSG ((LPCSTR)1)
2455#define CERT_STORE_PROV_MEMORY ((LPCSTR)2)
2456#define CERT_STORE_PROV_FILE ((LPCSTR)3)
2457#define CERT_STORE_PROV_REG ((LPCSTR)4)
2458#define CERT_STORE_PROV_PKCS7 ((LPCSTR)5)
2459#define CERT_STORE_PROV_SERIALIZED ((LPCSTR)6)
2460#define CERT_STORE_PROV_FILENAME_A ((LPCSTR)7)
2461#define CERT_STORE_PROV_FILENAME_W ((LPCSTR)8)
2462#define CERT_STORE_PROV_SYSTEM_A ((LPCSTR)9)
2463#define CERT_STORE_PROV_SYSTEM_W ((LPCSTR)10)
2464#define CERT_STORE_PROV_SYSTEM CERT_STORE_PROV_SYSTEM_W
2465#define CERT_STORE_PROV_COLLECTION ((LPCSTR)11)
2466#define CERT_STORE_PROV_SYSTEM_REGISTRY_A ((LPCSTR)12)
2467#define CERT_STORE_PROV_SYSTEM_REGISTRY_W ((LPCSTR)13)
2468#define CERT_STORE_PROV_SYSTEM_REGISTRY CERT_STORE_PROV_SYSTEM_REGISTRY_W
2469#define CERT_STORE_PROV_PHYSICAL_W ((LPCSTR)14)
2470#define CERT_STORE_PROV_PHYSICAL CERT_STORE_PROV_PHYSICAL_W
2471#define CERT_STORE_PROV_SMART_CARD_W ((LPCSTR)15)
2472#define CERT_STORE_PROV_SMART_CARD CERT_STORE_PROV_SMART_CARD_W
2473#define CERT_STORE_PROV_LDAP_W ((LPCSTR)16)
2474#define CERT_STORE_PROV_LDAP CERT_STORE_PROV_LDAP_W
2475
2476#define sz_CERT_STORE_PROV_MEMORY "Memory"
2477#define sz_CERT_STORE_PROV_FILENAME_W "File"
2478#define sz_CERT_STORE_PROV_FILENAME sz_CERT_STORE_PROV_FILENAME_W
2479#define sz_CERT_STORE_PROV_SYSTEM_W "System"
2480#define sz_CERT_STORE_PROV_SYSTEM sz_CERT_STORE_PROV_SYSTEM_W
2481#define sz_CERT_STORE_PROV_PKCS7 "PKCS7"
2482#define sz_CERT_STORE_PROV_SERIALIZED "Serialized"
2483#define sz_CERT_STORE_PROV_COLLECTION "Collection"
2484#define sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W "SystemRegistry"
2485#define sz_CERT_STORE_PROV_SYSTEM_REGISTRY sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W
2486#define sz_CERT_STORE_PROV_PHYSICAL_W "Physical"
2487#define sz_CERT_STORE_PROV_PHYSICAL sz_CERT_STORE_PROV_PHYSICAL_W
2488#define sz_CERT_STORE_PROV_SMART_CARD_W "SmartCard"
2489#define sz_CERT_STORE_PROV_SMART_CARD sz_CERT_STORE_PROV_SMART_CARD_W
2490#define sz_CERT_STORE_PROV_LDAP_W "Ldap"
2491#define sz_CERT_STORE_PROV_LDAP sz_CERT_STORE_PROV_LDAP_W
2492
2493/* types for CertOpenStore dwEncodingType */
2494#define CERT_ENCODING_TYPE_MASK 0x0000ffff
2495#define CMSG_ENCODING_TYPE_MASK 0xffff0000
2496#define GET_CERT_ENCODING_TYPE(x) ((x) & CERT_ENCODING_TYPE_MASK)
2497#define GET_CMSG_ENCODING_TYPE(x) ((x) & CMSG_ENCODING_TYPE_MASK)
2498
2499#define CRYPT_ASN_ENCODING 0x00000001
2500#define CRYPT_NDR_ENCODING 0x00000002
2501#define X509_ASN_ENCODING 0x00000001
2502#define X509_NDR_ENCODING 0x00000002
2503#define PKCS_7_ASN_ENCODING 0x00010000
2504#define PKCS_7_NDR_ENCODING 0x00020000
2505
2506/* system store locations */
2507#define CERT_SYSTEM_STORE_LOCATION_MASK 0x00ff0000
2508#define CERT_SYSTEM_STORE_LOCATION_SHIFT 16
2509
2510/* system store location ids */
2511/* hkcu */
2512#define CERT_SYSTEM_STORE_CURRENT_USER_ID 1
2513/* hklm */
2514#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ID 2
2515/* hklm\Software\Microsoft\Cryptography\Services */
2516#define CERT_SYSTEM_STORE_CURRENT_SERVICE_ID 4
2517#define CERT_SYSTEM_STORE_SERVICES_ID 5
2518/* HKEY_USERS */
2519#define CERT_SYSTEM_STORE_USERS_ID 6
2520/* hkcu\Software\Policies\Microsoft\SystemCertificates */
2521#define CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID 7
2522/* hklm\Software\Policies\Microsoft\SystemCertificates */
2523#define CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID 8
2524/* hklm\Software\Microsoft\EnterpriseCertificates */
2525#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID 9
2526
2527/* system store location values */
2528#define CERT_SYSTEM_STORE_CURRENT_USER \
2529 (CERT_SYSTEM_STORE_CURRENT_USER_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
2530#define CERT_SYSTEM_STORE_LOCAL_MACHINE \
2531 (CERT_SYSTEM_STORE_LOCAL_MACHINE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
2532#define CERT_SYSTEM_STORE_CURRENT_SERVICE \
2533 (CERT_SYSTEM_STORE_CURRENT_SERVICE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
2534#define CERT_SYSTEM_STORE_SERVICES \
2535 (CERT_SYSTEM_STORE_SERVICES_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
2536#define CERT_SYSTEM_STORE_USERS \
2537 (CERT_SYSTEM_STORE_USERS_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
2538#define CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY \
2539 (CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
2540#define CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY \
2541 (CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
2542#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE \
2543 (CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
2544
2545#if defined(_MSC_VER) || defined(__MINGW32__)
2546#define CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH \
2547 L"Software\\Microsoft\\SystemCertificates"
2548#define CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH \
2549 L"Software\\Policies\\Microsoft\\SystemCertificates"
2550#else
2552 {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
2553 'S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s',0 };
2555 {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',
2556 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',
2557 't','i','f','i','c','a','t','e','s',0 };
2558#endif
2559
2560#if defined(_MSC_VER) || defined(__MINGW32__)
2561#define CERT_EFSBLOB_REGPATH CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH L"\\EFS"
2562#define CERT_EFSBLOB_VALUE_NAME L"EFSBlob"
2563#else
2565 {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',
2566 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',
2567 't','i','f','i','c','a','t','e','s','\\','E','F','S',0 };
2568static const WCHAR CERT_EFSBLOB_VALUE_NAME[] = { 'E','F','S','B','l','o','b',0 };
2569#endif
2570
2571#if defined(_MSC_VER) || defined(__MINGW32__)
2572#define CERT_PROT_ROOT_FLAGS_REGPATH L"\\Root\\ProtectedRoots"
2573#define CERT_PROT_ROOT_FLAGS_VALUE_NAME L"Flags"
2574#else
2576 { '\\','R','o','o','t','\\','P','r','o','t','e','c','t','e','d','R','o','o',
2577 't','s',0 };
2578static const WCHAR CERT_PROT_ROOT_FLAGS_VALUE_NAME[] = {'F','l','a','g','s',0 };
2579#endif
2580
2581#define CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG 0x01
2582#define CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG 0x02
2583#define CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG 0x04
2584#define CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG 0x08
2585#define CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG 0x10
2586#define CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG 0x20
2587
2588#if defined(_MSC_VER) || defined(__MINGW32__)
2589#define CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH \
2590 CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH L"\\TrustedPublisher\\Safer"
2591#else
2593 {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',
2594 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',
2595 't','i','f','i','c','a','t','e','s','\\','T','r','u','s','t','e','d',
2596 'P','u','b','l','i','s','h','e','r','\\','S','a','f','e','r',0 };
2597#endif
2598
2599#if defined(_MSC_VER) || defined(__MINGW32__)
2600#define CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH \
2601 CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH L"\\TrustedPublisher\\Safer"
2602#define CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME L"AuthenticodeFlags"
2603#else
2605 {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
2606 'S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s','\\',
2607 'T','r','u','s','t','e','d','P','u','b','l','i','s','h','e','r','\\',
2608 'S','a','f','e','r',0 };
2610 { 'A','u','t','h','e','n','t','i','c','o','d','e','F','l','a','g','s',0 };
2611#endif
2612
2613#define CERT_TRUST_PUB_ALLOW_END_USER_TRUST 0x00000000
2614#define CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST 0x00000001
2615#define CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST 0x00000002
2616#define CERT_TRUST_PUB_ALLOW_TRUST_MASK 0x00000003
2617#define CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG 0x00000100
2618#define CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG 0x00000200
2619
2620/* flags for CertOpenStore dwFlags */
2621#define CERT_STORE_NO_CRYPT_RELEASE_FLAG 0x00000001
2622#define CERT_STORE_SET_LOCALIZED_NAME_FLAG 0x00000002
2623#define CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG 0x00000004
2624#define CERT_STORE_DELETE_FLAG 0x00000010
2625#define CERT_STORE_UNSAFE_PHYSICAL_FLAG 0x00000020
2626#define CERT_STORE_SHARE_STORE_FLAG 0x00000040
2627#define CERT_STORE_SHARE_CONTEXT_FLAG 0x00000080
2628#define CERT_STORE_MANIFOLD_FLAG 0x00000100
2629#define CERT_STORE_ENUM_ARCHIVED_FLAG 0x00000200
2630#define CERT_STORE_UPDATE_KEYID_FLAG 0x00000400
2631#define CERT_STORE_BACKUP_RESTORE_FLAG 0x00000800
2632#define CERT_STORE_MAXIMUM_ALLOWED_FLAG 0x00001000
2633#define CERT_STORE_CREATE_NEW_FLAG 0x00002000
2634#define CERT_STORE_OPEN_EXISTING_FLAG 0x00004000
2635#define CERT_STORE_READONLY_FLAG 0x00008000
2636
2637#define CERT_REGISTRY_STORE_REMOTE_FLAG 0x00010000
2638#define CERT_REGISTRY_STORE_SERIALIZED_FLAG 0x00020000
2639#define CERT_REGISTRY_STORE_ROAMING_FLAG 0x00040000
2640#define CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG 0x00080000
2641#define CERT_REGISTRY_STORE_LM_GPT_FLAG 0x01000000
2642#define CERT_REGISTRY_STORE_CLIENT_GPT_FLAG 0x80000000
2643
2644#define CERT_FILE_STORE_COMMIT_ENABLE_FLAG 0x00010000
2645
2646/* CertCloseStore dwFlags */
2647#define CERT_CLOSE_STORE_FORCE_FLAG 0x00000001
2648#define CERT_CLOSE_STORE_CHECK_FLAG 0x00000002
2649
2650/* dwAddDisposition */
2651#define CERT_STORE_ADD_NEW 1
2652#define CERT_STORE_ADD_USE_EXISTING 2
2653#define CERT_STORE_ADD_REPLACE_EXISTING 3
2654#define CERT_STORE_ADD_ALWAYS 4
2655#define CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES 5
2656#define CERT_STORE_ADD_NEWER 6
2657#define CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES 7
2658
2659/* Installable OID function defs */
2660#define CRYPT_OID_OPEN_STORE_PROV_FUNC "CertDllOpenStoreProv"
2661#define CRYPT_OID_ENCODE_OBJECT_FUNC "CryptDllEncodeObject"
2662#define CRYPT_OID_DECODE_OBJECT_FUNC "CryptDllDecodeObject"
2663#define CRYPT_OID_ENCODE_OBJECT_EX_FUNC "CryptDllEncodeObjectEx"
2664#define CRYPT_OID_DECODE_OBJECT_EX_FUNC "CryptDllDecodeObjectEx"
2665#define CRYPT_OID_CREATE_COM_OBJECT_FUNC "CryptDllCreateComObject"
2666#define CRYPT_OID_VERIFY_REVOCATION_FUNC "CertDllVerifyRevocation"
2667#define CRYPT_OID_VERIFY_CTL_USAGE_FUNC "CertDllVerifyCTLUsage"
2668#define CRYPT_OID_FORMAT_OBJECT_FUNC "CryptDllFormatObject"
2669#define CRYPT_OID_FIND_OID_INFO_FUNC "CryptDllFindOIDInfo"
2670#define CRYPT_OID_FIND_LOCALIZED_NAME_FUNC "CryptDllFindLocalizedName"
2671#define CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC "CryptDllExportPublicKeyInfoEx"
2672#define CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC "CryptDllImportPublicKeyInfoEx"
2673#define CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC "CryptDllExportPrivateKeyInfoEx"
2674#define CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC "CryptDllImportPrivateKeyInfoEx"
2675#define CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC \
2676 "CertDllVerifyCertificateChainPolicy"
2677#define CRYPT_OID_CONVERT_PUBLIC_KEY_INFO_FUNC "CryptDllConvertPublicKeyInfo"
2678#define URL_OID_GET_OBJECT_URL_FUNC "UrlDllGetObjectUrl"
2679#define TIME_VALID_OID_GET_OBJECT_FUNC "TimeValidDllGetObject"
2680#define CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC "CryptMsgDllGenContentEncryptKey"
2681#define CMSG_OID_EXPORT_KEY_TRANS_FUNC "CryptMsgDllExportKeyTrans"
2682#define CMSG_OID_IMPORT_KEY_TRANS_FUNC "CryptMsgDllImportKeyTrans"
2683
2684#define CRYPT_OID_REGPATH "Software\\Microsoft\\Cryptography\\OID"
2685#define CRYPT_OID_REG_ENCODING_TYPE_PREFIX "EncodingType "
2686#if defined(_MSC_VER) || defined(__MINGW32__)
2687# define CRYPT_OID_REG_DLL_VALUE_NAME L"Dll"
2688# define CRYPT_OID_REG_FUNC_NAME_VALUE_NAME L"FuncName"
2689# define CRYPT_OID_REG_FLAGS_VALUE_NAME L"CryptFlags"
2690#else
2691static const WCHAR CRYPT_OID_REG_DLL_VALUE_NAME[] = { 'D','l','l',0 };
2693 { 'F','u','n','c','N','a','m','e',0 };
2695 { 'C','r','y','p','t','F','l','a','g','s',0 };
2696#endif
2697#define CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A "FuncName"
2698#define CRYPT_DEFAULT_OID "DEFAULT"
2699
2700#define CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG 1
2701#define CRYPT_INSTALL_OID_INFO_BEFORE_FLAG 1
2702
2703#define CRYPT_GET_INSTALLED_OID_FUNC_FLAG 0x1
2704
2705#define CRYPT_REGISTER_FIRST_INDEX 0
2706#define CRYPT_REGISTER_LAST_INDEX 0xffffffff
2707
2708/* values for CERT_STORE_PROV_INFO's dwStoreProvFlags */
2709#define CERT_STORE_PROV_EXTERNAL_FLAG 0x1
2710#define CERT_STORE_PROV_DELETED_FLAG 0x2
2711#define CERT_STORE_PROV_NO_PERSIST_FLAG 0x4
2712#define CERT_STORE_PROV_SYSTEM_STORE_FLAG 0x8
2713#define CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG 0x10
2714
2715/* function indices */
2716#define CERT_STORE_PROV_CLOSE_FUNC 0
2717#define CERT_STORE_PROV_READ_CERT_FUNC 1
2718#define CERT_STORE_PROV_WRITE_CERT_FUNC 2
2719#define CERT_STORE_PROV_DELETE_CERT_FUNC 3
2720#define CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC 4
2721#define CERT_STORE_PROV_READ_CRL_FUNC 5
2722#define CERT_STORE_PROV_WRITE_CRL_FUNC 6
2723#define CERT_STORE_PROV_DELETE_CRL_FUNC 7
2724#define CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC 8
2725#define CERT_STORE_PROV_READ_CTL_FUNC 9
2726#define CERT_STORE_PROV_WRITE_CTL_FUNC 10
2727#define CERT_STORE_PROV_DELETE_CTL_FUNC 11
2728#define CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC 12
2729#define CERT_STORE_PROV_CONTROL_FUNC 13
2730#define CERT_STORE_PROV_FIND_CERT_FUNC 14
2731#define CERT_STORE_PROV_FREE_FIND_CERT_FUNC 15
2732#define CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC 16
2733#define CERT_STORE_PROV_FIND_CRL_FUNC 17
2734#define CERT_STORE_PROV_FREE_FIND_CRL_FUNC 18
2735#define CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC 19
2736#define CERT_STORE_PROV_FIND_CTL_FUNC 20
2737#define CERT_STORE_PROV_FREE_FIND_CTL_FUNC 21
2738#define CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC 22
2739
2740/* physical store dwFlags, also used by CertAddStoreToCollection as
2741 * dwUpdateFlags
2742 */
2743#define CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG 0x1
2744#define CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG 0x2
2745#define CERT_PHYSICAL_STORE_REMOVE_OPEN_DISABLE_FLAG 0x4
2746#define CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG 0x8
2747
2748/* dwFlag values for CertEnumPhysicalStore callback */
2749#define CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG 0x1
2750
2751/* predefined store names */
2752#if defined(_MSC_VER) || defined(__MINGW32__)
2753# define CERT_PHYSICAL_STORE_DEFAULT_NAME \
2754 L".Default"
2755# define CERT_PHYSICAL_STORE_GROUP_POLICY_NAME \
2756 L".GroupPolicy"
2757# define CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME \
2758 L".LocalMachine"
2759# define CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME \
2760 L".UserCertificate"
2761# define CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME \
2762 L".LocalMachineGroupPolicy"
2763# define CERT_PHYSICAL_STORE_ENTERPRISE_NAME \
2764 L".Enterprise"
2765# define CERT_PHYSICAL_STORE_AUTH_ROOT_NAME \
2766 L".AuthRoot"
2767#else
2769 {'.','D','e','f','a','u','l','t','0'};
2771 {'.','G','r','o','u','p','P','o','l','i','c','y',0};
2773 {'.','L','o','c','a','l','M','a','c','h','i','n','e',0};
2775 {'.','U','s','e','r','C','e','r','t','i','f','i','c','a','t','e',0};
2777 {'.','L','o','c','a','l','M','a','c','h','i','n','e','G','r','o','u','p',
2778 'P','o','l','i','c','y',0};
2780 {'.','E','n','t','e','r','p','r','i','s','e',0};
2782 {'.','A','u','t','h','R','o','o','t',0};
2783#endif
2784
2785/* cert system store flags */
2786#define CERT_SYSTEM_STORE_MASK 0xffff0000
2787#define CERT_SYSTEM_STORE_RELOCATE_FLAG 0x80000000
2788
2789/* CertFindChainInStore dwFindType types */
2790#define CERT_CHAIN_FIND_BY_ISSUER 1
2791
2792/* CertSaveStore dwSaveAs values */
2793#define CERT_STORE_SAVE_AS_STORE 1
2794#define CERT_STORE_SAVE_AS_PKCS7 2
2795/* CertSaveStore dwSaveTo values */
2796#define CERT_STORE_SAVE_TO_FILE 1
2797#define CERT_STORE_SAVE_TO_MEMORY 2
2798#define CERT_STORE_SAVE_TO_FILENAME_A 3
2799#define CERT_STORE_SAVE_TO_FILENAME_W 4
2800#define CERT_STORE_SAVE_TO_FILENAME CERT_STORE_SAVE_TO_FILENAME_W
2801
2802/* CERT_INFO versions/flags */
2803#define CERT_V1 0
2804#define CERT_V2 1
2805#define CERT_V3 2
2806#define CERT_INFO_VERSION_FLAG 1
2807#define CERT_INFO_SERIAL_NUMBER_FLAG 2
2808#define CERT_INFO_SIGNATURE_ALGORITHM_FLAG 3
2809#define CERT_INFO_ISSUER_FLAG 4
2810#define CERT_INFO_NOT_BEFORE_FLAG 5
2811#define CERT_INFO_NOT_AFTER_FLAG 6
2812#define CERT_INFO_SUBJECT_FLAG 7
2813#define CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG 8
2814#define CERT_INFO_ISSUER_UNIQUE_ID_FLAG 9
2815#define CERT_INFO_SUBJECT_UNIQUE_ID_FLAG 10
2816#define CERT_INFO_EXTENSION_FLAG 11
2817
2818/* CERT_REQUEST_INFO versions */
2819#define CERT_REQUEST_V1 0
2820
2821/* CERT_KEYGEN_REQUEST_INFO versions */
2822#define CERT_KEYGEN_REQUEST_V1 0
2823
2824/* CRL versions */
2825#define CRL_V1 0
2826#define CRL_V2 1
2827
2828/* CTL versions */
2829#define CTL_V1 0
2830
2831/* Certificate, CRL, CTL property IDs */
2832#define CERT_KEY_PROV_HANDLE_PROP_ID 1
2833#define CERT_KEY_PROV_INFO_PROP_ID 2
2834#define CERT_SHA1_HASH_PROP_ID 3
2835#define CERT_HASH_PROP_ID CERT_SHA1_HASH_PROP_ID
2836#define CERT_MD5_HASH_PROP_ID 4
2837#define CERT_KEY_CONTEXT_PROP_ID 5
2838#define CERT_KEY_SPEC_PROP_ID 6
2839#define CERT_IE30_RESERVED_PROP_ID 7
2840#define CERT_PUBKEY_HASH_RESERVED_PROP_ID 8
2841#define CERT_ENHKEY_USAGE_PROP_ID 9
2842#define CERT_CTL_USAGE_PROP_ID CERT_ENHKEY_USAGE_PROP_ID
2843#define CERT_NEXT_UPDATE_LOCATION_PROP_ID 10
2844#define CERT_FRIENDLY_NAME_PROP_ID 11
2845#define CERT_PVK_FILE_PROP_ID 12
2846#define CERT_DESCRIPTION_PROP_ID 13
2847#define CERT_ACCESS_STATE_PROP_ID 14
2848#define CERT_SIGNATURE_HASH_PROP_ID 15
2849#define CERT_SMART_CARD_DATA_PROP_ID 16
2850#define CERT_EFS_PROP_ID 17
2851#define CERT_FORTEZZA_DATA_PROP_ID 18
2852#define CERT_ARCHIVED_PROP_ID 19
2853#define CERT_KEY_IDENTIFIER_PROP_ID 20
2854#define CERT_AUTO_ENROLL_PROP_ID 21
2855#define CERT_PUBKEY_ALG_PARA_PROP_ID 22
2856#define CERT_CROSS_CERT_DIST_POINTS_PROP_ID 23
2857#define CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID 24
2858#define CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID 25
2859#define CERT_ENROLLMENT_PROP_ID 26
2860#define CERT_DATE_STAMP_PROP_ID 27
2861#define CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID 28
2862#define CERT_SUBJECT_NAME_MD5_HASH_PROP_ID 29
2863#define CERT_EXTENDED_ERROR_INFO_PROP_ID 30
2864/* 31 -- unused?
2865 32 -- cert prop id
2866 33 -- CRL prop id
2867 34 -- CTL prop id
2868 35 -- KeyId prop id
2869 36-63 -- reserved
2870 */
2871#define CERT_RENEWAL_PROP_ID 64
2872#define CERT_ARCHIVED_KEY_HASH_PROP_ID 65
2873#define CERT_AUTO_ENROLL_RETRY_PROP_ID 66
2874#define CERT_AIA_URL_RETRIEVED_PROP_ID 67
2875#define CERT_AUTHORITY_INFO_ACCESS_PROP_ID 68
2876#define CERT_BACKED_UP_PROP_ID 69
2877#define CERT_OCSP_RESPONSE_PROP_ID 70
2878#define CERT_REQUEST_ORIGINATOR_PROP_ID 71
2879#define CERT_SOURCE_LOCATION_PROP_ID 72
2880#define CERT_SOURCE_URL_PROP_ID 73
2881#define CERT_NEW_KEY_PROP_ID 74
2882#define CERT_OCSP_CACHE_PREFIX_PROP_ID 75
2883#define CERT_SMART_CARD_ROOT_INFO_PROP_ID 76
2884#define CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID 77
2885#define CERT_NCRYPT_KEY_HANDLE_PROP_ID 78
2886#define CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID 79
2887#define CERT_SUBJECT_INFO_ACCESS_PROP_ID 80
2888#define CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID 81
2889#define CERT_CA_DISABLE_CRL_PROP_ID 82
2890#define CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID 83
2891#define CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID 84
2892
2893#define CERT_FIRST_RESERVED_PROP_ID 85
2894#define CERT_LAST_RESERVED_PROP_ID 0x00007fff
2895#define CERT_FIRST_USER_PROP_ID 0x00008000
2896#define CERT_LAST_USER_PROP_ID 0x0000ffff
2897
2898#define IS_CERT_HASH_PROP_ID(x) \
2899 ((x) == CERT_SHA1_HASH_PROP_ID || (x) == CERT_MD5_HASH_PROP_ID || \
2900 (x) == CERT_SIGNATURE_HASH_PROP_ID)
2901
2902#define IS_PUBKEY_HASH_PROP_ID(x) \
2903 ((x) == CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID || \
2904 (x) == CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID)
2905
2906#define IS_CHAIN_HASH_PROP_ID(x) \
2907 ((x) == CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID || \
2908 (x) == CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID || \
2909 (x) == CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID || \
2910 (x) == CERT_SUBJECT_NAME_MD5_HASH_PROP_ID)
2911
2912/* access state flags */
2913#define CERT_ACCESS_STATE_WRITE_PERSIST_FLAG 0x1
2914#define CERT_ACCESS_STATE_SYSTEM_STORE_FLAG 0x2
2915#define CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG 0x4
2916
2917/* CertSetCertificateContextProperty flags */
2918#define CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG 0x40000000
2919#define CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG 0x80000000
2920
2921/* CERT_RDN attribute dwValueType types */
2922#define CERT_RDN_TYPE_MASK 0x000000ff
2923#define CERT_RDN_ANY_TYPE 0
2924#define CERT_RDN_ENCODED_BLOB 1
2925#define CERT_RDN_OCTET_STRING 2
2926#define CERT_RDN_NUMERIC_STRING 3
2927#define CERT_RDN_PRINTABLE_STRING 4
2928#define CERT_RDN_TELETEX_STRING 5
2929#define CERT_RDN_T61_STRING 5
2930#define CERT_RDN_VIDEOTEX_STRING 6
2931#define CERT_RDN_IA5_STRING 7
2932#define CERT_RDN_GRAPHIC_STRING 8
2933#define CERT_RDN_VISIBLE_STRING 9
2934#define CERT_RDN_ISO646_STRING 9
2935#define CERT_RDN_GENERAL_STRING 10
2936#define CERT_RDN_UNIVERSAL_STRING 11
2937#define CERT_RDN_INT4_STRING 11
2938#define CERT_RDN_BMP_STRING 12
2939#define CERT_RDN_UNICODE_STRING 12
2940#define CERT_RDN_UTF8_STRING 13
2941
2942/* CERT_RDN attribute dwValueType flags */
2943#define CERT_RDN_FLAGS_MASK 0xff000000
2944#define CERT_RDN_ENABLE_T61_UNICODE_FLAG 0x80000000
2945#define CERT_RDN_DISABLE_CHECK_TYPE_FLAG 0x4000000
2946#define CERT_RDN_ENABLE_UTF8_UNICODE_FLAG 0x2000000
2947#define CERT_RDN_DISABLE_IE4_UTF8_FLAG 0x0100000
2948
2949#define IS_CERT_RDN_CHAR_STRING(x) \
2950 (((x) & CERT_RDN_TYPE_MASK) >= CERT_RDN_NUMERIC_STRING)
2951
2952/* CertIsRDNAttrsInCertificateName flags */
2953#define CERT_UNICODE_IS_RDN_ATTRS_FLAG 0x1
2954#define CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG 0x2
2955
2956/* CRL reason codes */
2957#define CRL_REASON_UNSPECIFIED 0
2958#define CRL_REASON_KEY_COMPROMISE 1
2959#define CRL_REASON_CA_COMPROMISE 2
2960#define CRL_REASON_AFFILIATION_CHANGED 3
2961#define CRL_REASON_SUPERSEDED 4
2962#define CRL_REASON_CESSATION_OF_OPERATION 5
2963#define CRL_REASON_CERTIFICATE_HOLD 6
2964#define CRL_REASON_REMOVE_FROM_CRL 8
2965
2966/* CertControlStore control types */
2967#define CERT_STORE_CTRL_RESYNC 1
2968#define CERT_STORE_CTRL_NOTIFY_CHANGE 2
2969#define CERT_STORE_CTRL_COMMIT 3
2970#define CERT_STORE_CTRL_AUTO_RESYNC 4
2971#define CERT_STORE_CTRL_CANCEL_NOTIFY 5
2972
2973#define CERT_STORE_CTRL_COMMIT_FORCE_FLAG 0x1
2974#define CERT_STORE_CTRL_COMMIT_CLEAR_FLAG 0x2
2975
2976/* cert store properties */
2977#define CERT_STORE_LOCALIZED_NAME_PROP_ID 0x1000
2978
2979/* CertCreateContext flags */
2980#define CERT_CREATE_CONTEXT_NOCOPY_FLAG 0x1
2981#define CERT_CREATE_CONTEXT_SORTED_FLAG 0x2
2982#define CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG 0x4
2983#define CERT_CREATE_CONTEXT_NO_ENTRY_FLAG 0x8
2984
2985#define CERT_COMPARE_MASK 0xffff
2986#define CERT_COMPARE_SHIFT 16
2987#define CERT_COMPARE_ANY 0
2988#define CERT_COMPARE_SHA1_HASH 1
2989#define CERT_COMPARE_HASH CERT_COMPARE_SHA1_HASH
2990#define CERT_COMPARE_NAME 2
2991#define CERT_COMPARE_ATTR 3
2992#define CERT_COMPARE_MD5_HASH 4
2993#define CERT_COMPARE_PROPERTY 5
2994#define CERT_COMPARE_PUBLIC_KEY 6
2995#define CERT_COMPARE_NAME_STR_A 7
2996#define CERT_COMPARE_NAME_STR_W 8
2997#define CERT_COMPARE_KEY_SPEC 9
2998#define CERT_COMPARE_ENHKEY_USAGE 10
2999#define CERT_COMPARE_CTL_USAGE CERT_COMPARE_ENHKEY_USAGE
3000#define CERT_COMPARE_SUBJECT_CERT 11
3001#define CERT_COMPARE_ISSUER_OF 12
3002#define CERT_COMPARE_EXISTING 13
3003#define CERT_COMPARE_SIGNATURE_HASH 14
3004#define CERT_COMPARE_KEY_IDENTIFIER 15
3005#define CERT_COMPARE_CERT_ID 16
3006#define CERT_COMPARE_CROSS_CERT_DIST_POINTS 17
3007#define CERT_COMPARE_PUBKEY_MD5_HASH 18
3008
3009/* values of dwFindType for CertFind*InStore */
3010#define CERT_FIND_ANY \
3011 (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT)
3012#define CERT_FIND_SHA1_HASH \
3013 (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT)
3014#define CERT_FIND_MD5_HASH \
3015 (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT)
3016#define CERT_FIND_SIGNATURE_HASH \
3017 (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT)
3018#define CERT_FIND_KEY_IDENTIFIER \
3019 (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT)
3020#define CERT_FIND_HASH CERT_FIND_SHA1_HASH
3021#define CERT_FIND_PROPERTY \
3022 (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT)
3023#define CERT_FIND_PUBLIC_KEY \
3024 (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT)
3025#define CERT_FIND_SUBJECT_NAME \
3026 (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)
3027#define CERT_FIND_SUBJECT_ATTR \
3028 (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)
3029#define CERT_FIND_ISSUER_NAME \
3030 (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)
3031#define CERT_FIND_ISSUER_ATTR \
3032 (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)
3033#define CERT_FIND_SUBJECT_STR_A \
3034 (CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)
3035#define CERT_FIND_SUBJECT_STR_W \
3036 (CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)
3037#define CERT_FIND_SUBJECT_STR CERT_FIND_SUBJECT_STR_W
3038#define CERT_FIND_ISSUER_STR_A \
3039 (CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)
3040#define CERT_FIND_ISSUER_STR_W \
3041 (CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)
3042#define CERT_FIND_ISSUER_STR CERT_FIND_ISSUER_STR_W
3043#define CERT_FIND_KEY_SPEC \
3044 (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT)
3045#define CERT_FIND_ENHKEY_USAGE \
3046 (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT)
3047#define CERT_FIND_CTL_USAGE CERT_FIND_ENHKEY_USAGE
3048#define CERT_FIND_SUBJECT_CERT \
3049 (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT)
3050#define CERT_FIND_ISSUER_OF \
3051 (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT)
3052#define CERT_FIND_EXISTING \
3053 (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT)
3054#define CERT_FIND_CERT_ID \
3055 (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT)
3056#define CERT_FIND_CROSS_CERT_DIST_POINTS \
3057 (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT)
3058#define CERT_FIND_PUBKEY_MD5_HASH \
3059 (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT)
3060
3061#define CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG 0x1
3062#define CERT_FIND_OPTIONAL_CTL_USAGE_FLAG 0x1
3063#define CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG 0x2
3064#define CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG 0x2
3065#define CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG 0x4
3066#define CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG 0x4
3067#define CERT_FIND_NO_ENHKEY_USAGE_FLAG 0x8
3068#define CERT_FIND_NO_CTL_USAGE_FLAG 0x8
3069#define CERT_FIND_OR_ENHKEY_USAGE_FLAG 0x10
3070#define CERT_FIND_OR_CTL_USAGE_FLAG 0x10
3071#define CERT_FIND_VALID_ENHKEY_USAGE_FLAG 0x20
3072#define CERT_FIND_VALID_CTL_USAGE_FLAG 0x20
3073
3074#define CRL_FIND_ANY 0
3075#define CRL_FIND_ISSUED_BY 1
3076#define CRL_FIND_EXISTING 2
3077#define CRL_FIND_ISSUED_FOR 3
3078
3079#define CRL_FIND_ISSUED_BY_AKI_FLAG 0x1
3080#define CRL_FIND_ISSUED_BY_SIGNATURE_FLAG 0x2
3081#define CRL_FIND_ISSUED_BY_DELTA_FLAG 0x4
3082#define CRL_FIND_ISSUED_BY_BASE_FLAG 0x8
3083
3085{
3089
3090#define CTL_FIND_ANY 0
3091#define CTL_FIND_SHA1_HASH 1
3092#define CTL_FIND_MD5_HASH 2
3093#define CTL_FIND_USAGE 3
3094#define CTL_FIND_SUBJECT 4
3095#define CTL_FIND_EXISTING 5
3096
3098{
3104
3105#define CTL_FIND_NO_LIST_ID_CBDATA 0xffffffff
3106#define CTL_FIND_NO_SIGNER_PTR ((PCERT_INFO)-1)
3107#define CTL_FIND_SAME_USAGE_FLAG 0x00000001
3108
3110{
3116
3117/* PFN_CERT_STORE_PROV_WRITE_CERT dwFlags values */
3118#define CERT_STORE_PROV_WRITE_ADD_FLAG 0x1
3119
3120/* CertAddSerializedElementToStore context types */
3121#define CERT_STORE_CERTIFICATE_CONTEXT 1
3122#define CERT_STORE_CRL_CONTEXT 2
3123#define CERT_STORE_CTL_CONTEXT 3
3124#define CERT_STORE_ALL_CONTEXT_FLAG ~0U
3125#define CERT_STORE_CERTIFICATE_CONTEXT_FLAG \
3126 (1 << CERT_STORE_CERTIFICATE_CONTEXT)
3127#define CERT_STORE_CRL_CONTEXT_FLAG (1 << CERT_STORE_CRL_CONTEXT)
3128#define CERT_STORE_CTL_CONTEXT_FLAG (1 << CERT_STORE_CTL_CONTEXT)
3129
3130/* CryptBinaryToString/CryptStringToBinary flags */
3131#define CRYPT_STRING_BASE64HEADER 0x00000000
3132#define CRYPT_STRING_BASE64 0x00000001
3133#define CRYPT_STRING_BINARY 0x00000002
3134#define CRYPT_STRING_BASE64REQUESTHEADER 0x00000003
3135#define CRYPT_STRING_HEX 0x00000004
3136#define CRYPT_STRING_HEXASCII 0x00000005
3137#define CRYPT_STRING_BASE64_ANY 0x00000006
3138#define CRYPT_STRING_ANY 0x00000007
3139#define CRYPT_STRING_HEX_ANY 0x00000008
3140#define CRYPT_STRING_BASE64X509CRLHEADER 0x00000009
3141#define CRYPT_STRING_HEXADDR 0x0000000a
3142#define CRYPT_STRING_HEXASCIIADDR 0x0000000b
3143#define CRYPT_STRING_HEXRAW 0x0000000c
3144#define CRYPT_STRING_BASE64URI 0x0000000d
3145
3146#define CRYPT_STRING_PERCENTESCAPE 0x08000000
3147#define CRYPT_STRING_HASHDATA 0x10000000
3148#define CRYPT_STRING_STRICT 0x20000000
3149#define CRYPT_STRING_NOCRLF 0x40000000
3150#define CRYPT_STRING_NOCR 0x80000000
3151
3152/* OIDs */
3153#define szOID_RSA "1.2.840.113549"
3154#define szOID_PKCS "1.2.840.113549.1"
3155#define szOID_RSA_HASH "1.2.840.113549.2"
3156#define szOID_RSA_ENCRYPT "1.2.840.113549.3"
3157#define szOID_PKCS_1 "1.2.840.113549.1.1"
3158#define szOID_PKCS_2 "1.2.840.113549.1.2"
3159#define szOID_PKCS_3 "1.2.840.113549.1.3"
3160#define szOID_PKCS_4 "1.2.840.113549.1.4"
3161#define szOID_PKCS_5 "1.2.840.113549.1.5"
3162#define szOID_PKCS_6 "1.2.840.113549.1.6"
3163#define szOID_PKCS_7 "1.2.840.113549.1.7"
3164#define szOID_PKCS_8 "1.2.840.113549.1.8"
3165#define szOID_PKCS_9 "1.2.840.113549.1.9"
3166#define szOID_PKCS_10 "1.2.840.113549.1.10"
3167#define szOID_PKCS_11 "1.2.840.113549.1.12"
3168#define szOID_RSA_RSA "1.2.840.113549.1.1.1"
3169#define CERT_RSA_PUBLIC_KEY_OBJID szOID_RSA_RSA
3170#define CERT_DEFAULT_OID_PUBLIC_KEY_SIGN szOID_RSA_RSA
3171#define CERT_DEFAULT_OID_PUBLIC_KEY_XCHG szOID_RSA_RSA
3172#define szOID_RSA_MD2RSA "1.2.840.113549.1.1.2"
3173#define szOID_RSA_MD4RSA "1.2.840.113549.1.1.3"
3174#define szOID_RSA_MD5RSA "1.2.840.113549.1.1.4"
3175#define szOID_RSA_SHA1RSA "1.2.840.113549.1.1.5"
3176#define szOID_RSA_SET0AEP_RSA "1.2.840.113549.1.1.6"
3177#define szOID_RSA_SHA256RSA "1.2.840.113549.1.1.11"
3178#define szOID_RSA_SHA384RSA "1.2.840.113549.1.1.12"
3179#define szOID_RSA_SHA512RSA "1.2.840.113549.1.1.13"
3180#define szOID_RSA_DH "1.2.840.113549.1.3.1"
3181#define szOID_RSA_data "1.2.840.113549.1.7.1"
3182#define szOID_RSA_signedData "1.2.840.113549.1.7.2"
3183#define szOID_RSA_envelopedData "1.2.840.113549.1.7.3"
3184#define szOID_RSA_signEnvData "1.2.840.113549.1.7.4"
3185#define szOID_RSA_digestedData "1.2.840.113549.1.7.5"
3186#define szOID_RSA_hashedData "1.2.840.113549.1.7.5"
3187#define szOID_RSA_encryptedData "1.2.840.113549.1.7.6"
3188#define szOID_RSA_emailAddr "1.2.840.113549.1.9.1"
3189#define szOID_RSA_unstructName "1.2.840.113549.1.9.2"
3190#define szOID_RSA_contentType "1.2.840.113549.1.9.3"
3191#define szOID_RSA_messageDigest "1.2.840.113549.1.9.4"
3192#define szOID_RSA_signingTime "1.2.840.113549.1.9.5"
3193#define szOID_RSA_counterSign "1.2.840.113549.1.9.6"
3194#define szOID_RSA_challengePwd "1.2.840.113549.1.9.7"
3195#define szOID_RSA_unstructAddr "1.2.840.113549.1.9.9"
3196#define szOID_RSA_extCertAttrs "1.2.840.113549.1.9.9"
3197#define szOID_RSA_certExtensions "1.2.840.113549.1.9.14"
3198#define szOID_RSA_SMIMECapabilities "1.2.840.113549.1.9.15"
3199#define szOID_RSA_preferSignedData "1.2.840.113549.1.9.15.1"
3200#define szOID_RSA_SMIMEalg "1.2.840.113549.1.9.16.3"
3201#define szOID_RSA_SMIMEalgESDH "1.2.840.113549.1.9.16.3.5"
3202#define szOID_RSA_SMIMEalgCMS3DESwrap "1.2.840.113549.1.9.16.3.6"
3203#define szOID_RSA_SMIMEalgCMSRC2wrap "1.2.840.113549.1.9.16.3.7"
3204#define szOID_RSA_MD2 "1.2.840.113549.2.2"
3205#define szOID_RSA_MD4 "1.2.840.113549.2.4"
3206#define szOID_RSA_MD5 "1.2.840.113549.2.5"
3207#define szOID_RSA_RC2CBC "1.2.840.113549.3.2"
3208#define szOID_RSA_RC4 "1.2.840.113549.3.4"
3209#define szOID_RSA_DES_EDE3_CBC "1.2.840.113549.3.7"
3210#define szOID_RSA_RC5_CBCPad "1.2.840.113549.3.9"
3211#define szOID_ANSI_X942 "1.2.840.10046"
3212#define szOID_ANSI_X942_DH "1.2.840.10046.2.1"
3213#define szOID_X957 "1.2.840.10040"
3214#define szOID_X957_DSA "1.2.840.10040.4.1"
3215#define szOID_X957_SHA1DSA "1.2.840.10040.4.3"
3216#define szOID_ECC_PUBLIC_KEY "1.2.840.10045.2.1"
3217#define szOID_ECC_CURVE_P256 "1.2.840.10045.3.1.7"
3218#define szOID_ECDSA_SPECIFIED "1.2.840.10045.4.3"
3219#define szOID_ECDSA_SHA256 "1.2.840.10045.4.3.2"
3220#define szOID_ECDSA_SHA384 "1.2.840.10045.4.3.3"
3221#define szOID_ECDSA_SHA512 "1.2.840.10045.4.3.4"
3222#define szOID_DS "2.5"
3223#define szOID_DSALG "2.5.8"
3224#define szOID_DSALG_CRPT "2.5.8.1"
3225#define szOID_DSALG_HASH "2.5.8.2"
3226#define szOID_DSALG_SIGN "2.5.8.3"
3227#define szOID_DSALG_RSA "2.5.8.1.1"
3228#define szOID_OIW "1.3.14"
3229#define szOID_OIWSEC "1.3.14.3.2"
3230#define szOID_OIWSEC_md4RSA "1.3.14.3.2.2"
3231#define szOID_OIWSEC_md5RSA "1.3.14.3.2.3"
3232#define szOID_OIWSEC_md4RSA2 "1.3.14.3.2.4"
3233#define szOID_OIWSEC_desECB "1.3.14.3.2.6"
3234#define szOID_OIWSEC_desCBC "1.3.14.3.2.7"
3235#define szOID_OIWSEC_desOFB "1.3.14.3.2.8"
3236#define szOID_OIWSEC_desCFB "1.3.14.3.2.9"
3237#define szOID_OIWSEC_desMAC "1.3.14.3.2.10"
3238#define szOID_OIWSEC_rsaSign "1.3.14.3.2.11"
3239#define szOID_OIWSEC_dsa "1.3.14.3.2.12"
3240#define szOID_OIWSEC_shaDSA "1.3.14.3.2.13"
3241#define szOID_OIWSEC_mdc2RSA "1.3.14.3.2.14"
3242#define szOID_OIWSEC_shaRSA "1.3.14.3.2.15"
3243#define szOID_OIWSEC_dhCommMod "1.3.14.3.2.16"
3244#define szOID_OIWSEC_desEDE "1.3.14.3.2.17"
3245#define szOID_OIWSEC_sha "1.3.14.3.2.18"
3246#define szOID_OIWSEC_mdc2 "1.3.14.3.2.19"
3247#define szOID_OIWSEC_dsaComm "1.3.14.3.2.20"
3248#define szOID_OIWSEC_dsaCommSHA "1.3.14.3.2.21"
3249#define szOID_OIWSEC_rsaXchg "1.3.14.3.2.22"
3250#define szOID_OIWSEC_keyHashSeal "1.3.14.3.2.23"
3251#define szOID_OIWSEC_md2RSASign "1.3.14.3.2.24"
3252#define szOID_OIWSEC_md5RSASign "1.3.14.3.2.25"
3253#define szOID_OIWSEC_sha1 "1.3.14.3.2.26"
3254#define szOID_OIWSEC_dsaSHA1 "1.3.14.3.2.27"
3255#define szOID_OIWSEC_dsaCommSHA1 "1.3.14.3.2.28"
3256#define szOID_OIWSEC_sha1RSASign "1.3.14.3.2.29"
3257#define szOID_OIWDIR "1.3.14.7.2"
3258#define szOID_OIWDIR_CRPT "1.3.14.7.2.1"
3259#define szOID_OIWDIR_HASH "1.3.14.7.2.2"
3260#define szOID_OIWDIR_SIGN "1.3.14.7.2.3"
3261#define szOID_OIWDIR_md2 "1.3.14.7.2.2.1"
3262#define szOID_OIWDIR_md2RSA "1.3.14.7.2.3.1"
3263#define szOID_ECC_CURVE_P384 "1.3.132.0.34"
3264#define szOID_ECC_CURVE_P521 "1.3.132.0.35"
3265#define szOID_INFOSEC "2.16.840.1.101.2.1"
3266#define szOID_INFOSEC_sdnsSignature "2.16.840.1.101.2.1.1.1"
3267#define szOID_INFOSEC_mosaicSignature "2.16.840.1.101.2.1.1.2"
3268#define szOID_INFOSEC_sdnsConfidentiality "2.16.840.1.101.2.1.1.3"
3269#define szOID_INFOSEC_mosaicConfidentiality "2.16.840.1.101.2.1.1.4"
3270#define szOID_INFOSEC_sdnsIntegrity "2.16.840.1.101.2.1.1.5"
3271#define szOID_INFOSEC_mosaicIntegrity "2.16.840.1.101.2.1.1.6"
3272#define szOID_INFOSEC_sdnsTokenProtection "2.16.840.1.101.2.1.1.7"
3273#define szOID_INFOSEC_mosaicTokenProtection "2.16.840.1.101.2.1.1.8"
3274#define szOID_INFOSEC_sdnsKeyManagement "2.16.840.1.101.2.1.1.9"
3275#define szOID_INFOSEC_mosaicKeyManagement "2.16.840.1.101.2.1.1.10"
3276#define szOID_INFOSEC_sdnsKMandSig "2.16.840.1.101.2.1.1.11"
3277#define szOID_INFOSEC_mosaicKMandSig "2.16.840.1.101.2.1.1.12"
3278#define szOID_INFOSEC_SuiteASignature "2.16.840.1.101.2.1.1.13"
3279#define szOID_INFOSEC_SuiteAConfidentiality "2.16.840.1.101.2.1.1.14"
3280#define szOID_INFOSEC_SuiteAIntegrity "2.16.840.1.101.2.1.1.15"
3281#define szOID_INFOSEC_SuiteATokenProtection "2.16.840.1.101.2.1.1.16"
3282#define szOID_INFOSEC_SuiteAKeyManagement "2.16.840.1.101.2.1.1.17"
3283#define szOID_INFOSEC_SuiteAKMandSig "2.16.840.1.101.2.1.1.18"
3284#define szOID_INFOSEC_mosaicUpdatedSig "2.16.840.1.101.2.1.1.19"
3285#define szOID_INFOSEC_mosaicKMandUpdSig "2.16.840.1.101.2.1.1.20"
3286#define szOID_INFOSEC_mosaicUpdateInteg "2.16.840.1.101.2.1.1.21"
3287#define szOID_NIST_sha256 "2.16.840.1.101.3.4.2.1"
3288#define szOID_NIST_sha384 "2.16.840.1.101.3.4.2.2"
3289#define szOID_NIST_sha512 "2.16.840.1.101.3.4.2.3"
3290#define szOID_COMMON_NAME "2.5.4.3"
3291#define szOID_SUR_NAME "2.5.4.4"
3292#define szOID_DEVICE_SERIAL_NUMBER "2.5.4.5"
3293#define szOID_COUNTRY_NAME "2.5.4.6"
3294#define szOID_LOCALITY_NAME "2.5.4.7"
3295#define szOID_STATE_OR_PROVINCE_NAME "2.5.4.8"
3296#define szOID_STREET_ADDRESS "2.5.4.9"
3297#define szOID_ORGANIZATION_NAME "2.5.4.10"
3298#define szOID_ORGANIZATIONAL_UNIT_NAME "2.5.4.11"
3299#define szOID_TITLE "2.5.4.12"
3300#define szOID_DESCRIPTION "2.5.4.13"
3301#define szOID_SEARCH_GUIDE "2.5.4.14"
3302#define szOID_BUSINESS_CATEGORY "2.5.4.15"
3303#define szOID_POSTAL_ADDRESS "2.5.4.16"
3304#define szOID_POSTAL_CODE "2.5.4.17"
3305#define szOID_POST_OFFICE_BOX "2.5.4.18"
3306#define szOID_PHYSICAL_DELIVERY_OFFICE_NAME "2.5.4.19"
3307#define szOID_TELEPHONE_NUMBER "2.5.4.20"
3308#define szOID_TELEX_NUMBER "2.5.4.21"
3309#define szOID_TELETEXT_TERMINAL_IDENTIFIER "2.5.4.22"
3310#define szOID_FACSIMILE_TELEPHONE_NUMBER "2.5.4.23"
3311#define szOID_X21_ADDRESS "2.5.4.24"
3312#define szOID_INTERNATIONAL_ISDN_NUMBER "2.5.4.25"
3313#define szOID_REGISTERED_ADDRESS "2.5.4.26"
3314#define szOID_DESTINATION_INDICATOR "2.5.4.27"
3315#define szOID_PREFERRED_DELIVERY_METHOD "2.5.4.28"
3316#define szOID_PRESENTATION_ADDRESS "2.5.4.29"
3317#define szOID_SUPPORTED_APPLICATION_CONTEXT "2.5.4.30"
3318#define szOID_MEMBER "2.5.4.31"
3319#define szOID_OWNER "2.5.4.32"
3320#define szOID_ROLE_OCCUPANT "2.5.4.33"
3321#define szOID_SEE_ALSO "2.5.4.34"
3322#define szOID_USER_PASSWORD "2.5.4.35"
3323#define szOID_USER_CERTIFICATE "2.5.4.36"
3324#define szOID_CA_CERTIFICATE "2.5.4.37"
3325#define szOID_AUTHORITY_REVOCATION_LIST "2.5.4.38"
3326#define szOID_CERTIFICATE_REVOCATION_LIST "2.5.4.39"
3327#define szOID_CROSS_CERTIFICATE_PAIR "2.5.4.40"
3328#define szOID_GIVEN_NAME "2.5.4.42"
3329#define szOID_INITIALS "2.5.4.43"
3330#define szOID_DN_QUALIFIER "2.5.4.46"
3331#define szOID_AUTHORITY_KEY_IDENTIFIER "2.5.29.1"
3332#define szOID_KEY_ATTRIBUTES "2.5.29.2"
3333#define szOID_CERT_POLICIES_95 "2.5.29.3"
3334#define szOID_KEY_USAGE_RESTRICTION "2.5.29.4"
3335#define szOID_LEGACY_POLICY_MAPPINGS "2.5.29.5"
3336#define szOID_SUBJECT_ALT_NAME "2.5.29.7"
3337#define szOID_ISSUER_ALT_NAME "2.5.29.8"
3338#define szOID_SUBJECT_DIR_ATTRS "2.5.29.9"
3339#define szOID_BASIC_CONSTRAINTS "2.5.29.10"
3340#define szOID_SUBJECT_KEY_IDENTIFIER "2.5.29.14"
3341#define szOID_KEY_USAGE "2.5.29.15"
3342#define szOID_PRIVATEKEY_USAGE_PERIOD "2.5.29.16"
3343#define szOID_SUBJECT_ALT_NAME2 "2.5.29.17"
3344#define szOID_ISSUER_ALT_NAME2 "2.5.29.18"
3345#define szOID_BASIC_CONSTRAINTS2 "2.5.29.19"
3346#define szOID_CRL_NUMBER "2.5.29.20"
3347#define szOID_CRL_REASON_CODE "2.5.29.21"
3348#define szOID_REASON_CODE_HOLD "2.5.29.23"
3349#define szOID_DELTA_CRL_INDICATOR "2.5.29.27"
3350#define szOID_ISSUING_DIST_POINT "2.5.29.28"
3351#define szOID_NAME_CONSTRAINTS "2.5.29.30"
3352#define szOID_CRL_DIST_POINTS "2.5.29.31"
3353#define szOID_CERT_POLICIES "2.5.29.32"
3354#define szOID_ANY_CERT_POLICY "2.5.29.32.0"
3355#define szOID_POLICY_MAPPINGS "2.5.29.33"
3356#define szOID_AUTHORITY_KEY_IDENTIFIER2 "2.5.29.35"
3357#define szOID_POLICY_CONSTRAINTS "2.5.29.36"
3358#define szOID_ENHANCED_KEY_USAGE "2.5.29.37"
3359#define szOID_FRESHEST_CRL "2.5.29.46"
3360#define szOID_INHIBIT_ANY_POLICY "2.5.29.54"
3361#define szOID_DOMAIN_COMPONENT "0.9.2342.19200300.100.1.25"
3362#define szOID_PKCS_12_FRIENDLY_NAME_ATTR "1.2.840.113549.1.9.20"
3363#define szOID_PKCS_12_LOCAL_KEY_ID "1.2.840.113549.1.9.21"
3364#define szOID_CERT_EXTENSIONS "1.3.6.1.4.1.311.2.1.14"
3365#define szOID_NEXT_UPDATE_LOCATION "1.3.6.1.4.1.311.10.2"
3366#define szOID_KP_CTL_USAGE_SIGNING "1.3.6.1.4.1.311.10.3.1"
3367#define szOID_KP_TIME_STAMP_SIGNING "1.3.6.1.4.1.311.10.3.2"
3368#ifndef szOID_SERVER_GATED_CRYPTO
3369#define szOID_SERVER_GATED_CRYPTO "1.3.6.1.4.1.311.10.3.3"
3370#endif
3371#ifndef szOID_SGC_NETSCAPE
3372#define szOID_SGC_NETSCAPE "2.16.840.1.113730.4.1"
3373#endif
3374#define szOID_KP_EFS "1.3.6.1.4.1.311.10.3.4"
3375#define szOID_EFS_RECOVERY "1.3.6.1.4.1.311.10.3.4.1"
3376#define szOID_WHQL_CRYPTO "1.3.6.1.4.1.311.10.3.5"
3377#define szOID_NT5_CRYPTO "1.3.6.1.4.1.311.10.3.6"
3378#define szOID_OEM_WHQL_CRYPTO "1.3.6.1.4.1.311.10.3.7"
3379#define szOID_EMBEDDED_NT_CRYPTO "1.3.6.1.4.1.311.10.3.8"
3380#define szOID_ROOT_LIST_SIGNER "1.3.6.1.4.1.311.10.3.9"
3381#define szOID_KP_QUALIFIED_SUBORDINATION "1.3.6.1.4.1.311.10.3.10"
3382#define szOID_KP_KEY_RECOVERY "1.3.6.1.4.1.311.10.3.11"
3383#define szOID_KP_DOCUMENT_SIGNING "1.3.6.1.4.1.311.10.3.12"
3384#define szOID_KP_LIFETIME_SIGNING "1.3.6.1.4.1.311.10.3.13"
3385#define szOID_KP_MOBILE_DEVICE_SOFTWARE "1.3.6.1.4.1.311.10.3.14"
3386#define szOID_YESNO_TRUST_ATTR "1.3.6.1.4.1.311.10.4.1"
3387#ifndef szOID_DRM
3388#define szOID_DRM "1.3.6.1.4.1.311.10.5.1"
3389#endif
3390#ifndef szOID_DRM_INDIVIDUALIZATION
3391#define szOID_DRM_INDIVIDUALIZATION "1.3.6.1.4.1.311.10.5.2"
3392#endif
3393#ifndef szOID_LICENSES
3394#define szOID_LICENSES "1.3.6.1.4.1.311.10.6.1"
3395#endif
3396#ifndef szOID_LICENSE_SERVER
3397#define szOID_LICENSE_SERVER "1.3.6.1.4.1.311.10.6.2"
3398#endif
3399#define szOID_REMOVE_CERTIFICATE "1.3.6.1.4.1.311.10.8.1"
3400#define szOID_CROSS_CERT_DIST_POINTS "1.3.6.1.4.1.311.10.9.1"
3401#define szOID_CTL "1.3.6.1.4.1.311.10.1"
3402#define szOID_SORTED_CTL "1.3.6.1.4.1.311.10.1.1"
3403#define szOID_ANY_APPLICATION_POLICY "1.3.6.1.4.1.311.10.12.1"
3404#define szOID_RENEWAL_CERTIFICATE "1.3.6.1.4.1.311.13.1"
3405#define szOID_ENROLLMENT_NAME_VALUE_PAIR "1.3.6.1.4.1.311.13.2.1"
3406#define szOID_ENROLLMENT_CSP_PROVIDER "1.3.6.1.4.1.311.13.2.2"
3407#define szOID_OS_VERSION "1.3.6.1.4.1.311.13.2.3"
3408#define szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR "1.3.6.1.4.1.311.17.1"
3409#define szOID_LOCAL_MACHINE_KEYSET "1.3.6.1.4.1.311.17.2"
3410#define szOID_AUTO_ENROLL_CTL_USAGE "1.3.6.1.4.1.311.20.1"
3411#define szOID_ENROLL_CERTTYPE_EXTENSION "1.3.6.1.4.1.311.20.2"
3412#define szOID_ENROLLMENT_AGENT "1.3.6.1.4.1.311.20.2.1"
3413#ifndef szOID_KP_SMARTCARD_LOGON
3414#define szOID_KP_SMARTCARD_LOGON "1.3.6.1.4.1.311.20.2.2"
3415#endif
3416#ifndef szOID_NT_PRINCIPAL_NAME
3417#define szOID_NT_PRINCIPAL_NAME "1.3.6.1.4.1.311.20.2.3"
3418#endif
3419#define szOID_CERT_MANIFOLD "1.3.6.1.4.1.311.20.3"
3420#ifndef szOID_CERTSRV_CA_VERSION
3421#define szOID_CERTSRV_CA_VERSION "1.3.6.1.4.1.311.21.1"
3422#endif
3423#define szOID_CERTSRV_PREVIOUS_CERT_HASH "1.3.6.1.4.1.311.21.2"
3424#define szOID_CRL_VIRTUAL_BASE "1.3.6.1.4.1.311.21.3"
3425#define szOID_CRL_NEXT_PUBLISH "1.3.6.1.4.1.311.21.4"
3426#define szOID_KP_CA_EXCHANGE "1.3.6.1.4.1.311.21.5"
3427#define szOID_KP_KEY_RECOVERY_AGENT "1.3.6.1.4.1.311.21.6"
3428#define szOID_CERTIFICATE_TEMPLATE "1.3.6.1.4.1.311.21.7"
3429#define szOID_ENTERPRISE_OID_ROOT "1.3.6.1.4.1.311.21.8"
3430#define szOID_RDN_DUMMY_SIGNER "1.3.6.1.4.1.311.21.9"
3431#define szOID_APPLICATION_CERT_POLICIES "1.3.6.1.4.1.311.21.10"
3432#define szOID_APPLICATION_POLICY_MAPPINGS "1.3.6.1.4.1.311.21.11"
3433#define szOID_APPLICATION_POLICY_CONSTRAINTS "1.3.6.1.4.1.311.21.12"
3434#define szOID_ARCHIVED_KEY_ATTR "1.3.6.1.4.1.311.21.13"
3435#define szOID_CRL_SELF_CDP "1.3.6.1.4.1.311.21.14"
3436#define szOID_REQUIRE_CERT_CHAIN_POLICY "1.3.6.1.4.1.311.21.15"
3437#define szOID_ARCHIVED_KEY_CERT_HASH "1.3.6.1.4.1.311.21.16"
3438#define szOID_ISSUED_CERT_HASH "1.3.6.1.4.1.311.21.17"
3439#define szOID_DS_EMAIL_REPLICATION "1.3.6.1.4.1.311.21.19"
3440#define szOID_REQUEST_CLIENT_INFO "1.3.6.1.4.1.311.21.20"
3441#define szOID_ENCRYPTED_KEY_HASH "1.3.6.1.4.1.311.21.21"
3442#define szOID_CERTSRV_CROSSCA_VERSION "1.3.6.1.4.1.311.21.22"
3443#define szOID_KEYID_RDN "1.3.6.1.4.1.311.10.7.1"
3444#define szOID_PKIX "1.3.6.1.5.5.7"
3445#define szOID_PKIX_PE "1.3.6.1.5.5.7.1"
3446#define szOID_AUTHORITY_INFO_ACCESS "1.3.6.1.5.5.7.1.1"
3447#define szOID_PKIX_POLICY_QUALIFIER_CPS "1.3.6.1.5.5.7.2.1"
3448#define szOID_PKIX_POLICY_QUALIFIER_USERNOTICE "1.3.6.1.5.5.7.2.2"
3449#define szOID_PKIX_KP "1.3.6.1.5.5.7.3"
3450#define szOID_PKIX_KP_SERVER_AUTH "1.3.6.1.5.5.7.3.1"
3451#define szOID_PKIX_KP_CLIENT_AUTH "1.3.6.1.5.5.7.3.2"
3452#define szOID_PKIX_KP_CODE_SIGNING "1.3.6.1.5.5.7.3.3"
3453#define szOID_PKIX_KP_EMAIL_PROTECTION "1.3.6.1.5.5.7.3.4"
3454#define szOID_PKIX_KP_IPSEC_END_SYSTEM "1.3.6.1.5.5.7.3.5"
3455#define szOID_PKIX_KP_IPSEC_TUNNEL "1.3.6.1.5.5.7.3.6"
3456#define szOID_PKIX_KP_IPSEC_USER "1.3.6.1.5.5.7.3.7"
3457#define szOID_PKIX_KP_TIMESTAMP_SIGNING "1.3.6.1.5.5.7.3.8"
3458#define szOID_PKIX_NO_SIGNATURE "1.3.6.1.5.5.7.6.2"
3459#define szOID_CMC "1.3.6.1.5.5.7.7"
3460#define szOID_CMC_STATUS_INFO "1.3.6.1.5.5.7.7.1"
3461#define szOID_CMC_IDENTIFICATION "1.3.6.1.5.5.7.7.2"
3462#define szOID_CMC_IDENTITY_PROOF "1.3.6.1.5.5.7.7.3"
3463#define szOID_CMC_DATA_RETURN "1.3.6.1.5.5.7.7.4"
3464#define szOID_CMC_TRANSACTION_ID "1.3.6.1.5.5.7.7.5"
3465#define szOID_CMC_SENDER_NONCE "1.3.6.1.5.5.7.7.6"
3466#define szOID_CMC_RECIPIENT_NONCE "1.3.6.1.5.5.7.7.7"
3467#define szOID_CMC_ADD_EXTENSIONS "1.3.6.1.5.5.7.7.8"
3468#define szOID_CMC_ENCRYPTED_POP "1.3.6.1.5.5.7.7.9"
3469#define szOID_CMC_DECRYPTED_POP "1.3.6.1.5.5.7.7.10"
3470#define szOID_CMC_LRA_POP_WITNESS "1.3.6.1.5.5.7.7.11"
3471#define szOID_CMC_GET_CERT "1.3.6.1.5.5.7.7.15"
3472#define szOID_CMC_GET_CRL "1.3.6.1.5.5.7.7.16"
3473#define szOID_CMC_REVOKE_REQUEST "1.3.6.1.5.5.7.7.17"
3474#define szOID_CMC_REG_INFO "1.3.6.1.5.5.7.7.18"
3475#define szOID_CMC_RESPONSE_INFO "1.3.6.1.5.5.7.7.19"
3476#define szOID_CMC_QUERY_PENDING "1.3.6.1.5.5.7.7.21"
3477#define szOID_CMC_ID_POP_LINK_RANDOM "1.3.6.1.5.5.7.7.22"
3478#define szOID_CMC_ID_POP_LINK_WITNESS "1.3.6.1.5.5.7.7.23"
3479#define szOID_CT_PKI_DATA "1.3.6.1.5.5.7.12.2"
3480#define szOID_CT_PKI_RESPONSE "1.3.6.1.5.5.7.12.3"
3481#define szOID_PKIX_ACC_DESCR "1.3.6.1.5.5.7.48"
3482#define szOID_PKIX_OCSP "1.3.6.1.5.5.7.48.1"
3483#define szOID_PKIX_CA_ISSUERS "1.3.6.1.5.5.7.48.2"
3484#define szOID_IPSEC_KP_IKE_INTERMEDIATE "1.3.6.1.5.5.8.2.2"
3485
3486#ifndef szOID_SERIALIZED
3487#define szOID_SERIALIZED "1.3.6.1.4.1.311.10.3.3.1"
3488#endif
3489
3490#ifndef szOID_PRODUCT_UPDATE
3491#define szOID_PRODUCT_UPDATE "1.3.6.1.4.1.311.31.1"
3492#endif
3493
3494#define szOID_NETSCAPE "2.16.840.1.113730"
3495#define szOID_NETSCAPE_CERT_EXTENSION "2.16.840.1.113730.1"
3496#define szOID_NETSCAPE_CERT_TYPE "2.16.840.1.113730.1.1"
3497#define szOID_NETSCAPE_BASE_URL "2.16.840.1.113730.1.2"
3498#define szOID_NETSCAPE_REVOCATION_URL "2.16.840.1.113730.1.3"
3499#define szOID_NETSCAPE_CA_REVOCATION_URL "2.16.840.1.113730.1.4"
3500#define szOID_NETSCAPE_CERT_RENEWAL_URL "2.16.840.1.113730.1.7"
3501#define szOID_NETSCAPE_CA_POLICY_URL "2.16.840.1.113730.1.8"
3502#define szOID_NETSCAPE_SSL_SERVER_NAME "2.16.840.1.113730.1.12"
3503#define szOID_NETSCAPE_COMMENT "2.16.840.1.113730.1.13"
3504#define szOID_NETSCAPE_DATA_TYPE "2.16.840.1.113730.2"
3505#define szOID_NETSCAPE_CERT_SEQUENCE "2.16.840.1.113730.2.5"
3506
3507/* Bits for szOID_NETSCAPE_CERT_TYPE */
3508#define NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE 0x80
3509#define NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE 0x40
3510#define NETSCAPE_SMIME_CERT_TYPE 0x20
3511#define NETSCAPE_SIGN_CERT_TYPE 0x10
3512#define NETSCAPE_SSL_CA_CERT_TYPE 0x04
3513#define NETSCAPE_SMIME_CA_CERT_TYPE 0x02
3514#define NETSCAPE_SIGN_CA_CERT_TYPE 0x01
3515
3516#define CRYPT_ENCODE_DECODE_NONE 0
3517#define X509_CERT ((LPCSTR)1)
3518#define X509_CERT_TO_BE_SIGNED ((LPCSTR)2)
3519#define X509_CERT_CRL_TO_BE_SIGNED ((LPCSTR)3)
3520#define X509_CERT_REQUEST_TO_BE_SIGNED ((LPCSTR)4)
3521#define X509_EXTENSIONS ((LPCSTR)5)
3522#define X509_NAME_VALUE ((LPCSTR)6)
3523#define X509_ANY_STRING X509_NAME_VALUE
3524#define X509_NAME ((LPCSTR)7)
3525#define X509_PUBLIC_KEY_INFO ((LPCSTR)8)
3526#define X509_AUTHORITY_KEY_ID ((LPCSTR)9)
3527#define X509_KEY_ATTRIBUTES ((LPCSTR)10)
3528#define X509_KEY_USAGE_RESTRICTION ((LPCSTR)11)
3529#define X509_ALTERNATE_NAME ((LPCSTR)12)
3530#define X509_BASIC_CONSTRAINTS ((LPCSTR)13)
3531#define X509_KEY_USAGE ((LPCSTR)14)
3532#define X509_BASIC_CONSTRAINTS2 ((LPCSTR)15)
3533#define X509_CERT_POLICIES ((LPCSTR)16)
3534#define PKCS_UTC_TIME ((LPCSTR)17)
3535#define PKCS_TIME_REQUEST ((LPCSTR)18)
3536#define RSA_CSP_PUBLICKEYBLOB ((LPCSTR)19)
3537#define X509_UNICODE_NAME ((LPCSTR)20)
3538#define X509_KEYGEN_REQUEST_TO_BE_SIGNED ((LPCSTR)21)
3539#define PKCS_ATTRIBUTE ((LPCSTR)22)
3540#define PKCS_CONTENT_INFO_SEQUENCE_OF_ANY ((LPCSTR)23)
3541#define X509_UNICODE_NAME_VALUE ((LPCSTR)24)
3542#define X509_UNICODE_ANY_STRING X509_UNICODE_NAME_VALUE
3543#define X509_OCTET_STRING ((LPCSTR)25)
3544#define X509_BITS ((LPCSTR)26)
3545#define X509_INTEGER ((LPCSTR)27)
3546#define X509_MULTI_BYTE_INTEGER ((LPCSTR)28)
3547#define X509_ENUMERATED ((LPCSTR)29)
3548#define X509_CRL_REASON_CODE X509_ENUMERATED
3549#define X509_CHOICE_OF_TIME ((LPCSTR)30)
3550#define X509_AUTHORITY_KEY_ID2 ((LPCSTR)31)
3551#define X509_AUTHORITY_INFO_ACCESS ((LPCSTR)32)
3552#define PKCS_CONTENT_INFO ((LPCSTR)33)
3553#define X509_SEQUENCE_OF_ANY ((LPCSTR)34)
3554#define X509_CRL_DIST_POINTS ((LPCSTR)35)
3555#define X509_ENHANCED_KEY_USAGE ((LPCSTR)36)
3556#define PKCS_CTL ((LPCSTR)37)
3557#define X509_MULTI_BYTE_UINT ((LPCSTR)38)
3558#define X509_DSS_PUBLICKEY X509_MULTI_BYTE_UINT
3559#define X509_DSS_PARAMETERS ((LPCSTR)39)
3560#define X509_DSS_SIGNATURE ((LPCSTR)40)
3561#define PKCS_RC2_CBC_PARAMETERS ((LPCSTR)41)
3562#define PKCS_SMIME_CAPABILITIES ((LPCSTR)42)
3563#define PKCS_RSA_PRIVATE_KEY ((LPCSTR)43)
3564#define PKCS_PRIVATE_KEY_INFO ((LPCSTR)44)
3565#define PKCS_ENCRYPTED_PRIVATE_KEY_INFO ((LPCSTR)45)
3566#define X509_PKIX_POLICY_QUALIFIER_USERNOTICE ((LPCSTR)46)
3567#define X509_DH_PUBLICKEY X509_MULTI_BYTE_UINT
3568#define X509_DH_PARAMETERS ((LPCSTR)47)
3569#define X509_ECC_SIGNATURE ((LPCSTR)47)
3570#define PKCS_ATTRIBUTES ((LPCSTR)48)
3571#define PKCS_SORTED_CTL ((LPCSTR)49)
3572#define X942_DH_PARAMETERS ((LPCSTR)50)
3573#define X509_BITS_WITHOUT_TRAILING_ZEROES ((LPCSTR)51)
3574#define X942_OTHER_INFO ((LPCSTR)52)
3575#define X509_CERT_PAIR ((LPCSTR)53)
3576#define X509_ISSUING_DIST_POINT ((LPCSTR)54)
3577#define X509_NAME_CONSTRAINTS ((LPCSTR)55)
3578#define X509_POLICY_MAPPINGS ((LPCSTR)56)
3579#define X509_POLICY_CONSTRAINTS ((LPCSTR)57)
3580#define X509_CROSS_CERT_DIST_POINTS ((LPCSTR)58)
3581#define CMC_DATA ((LPCSTR)59)
3582#define CMC_RESPONSE ((LPCSTR)60)
3583#define CMC_STATUS ((LPCSTR)61)
3584#define CMC_ADD_EXTENSIONS ((LPCSTR)62)
3585#define CMC_ADD_ATTRIBUTES ((LPCSTR)63)
3586#define X509_CERTIFICATE_TEMPLATE ((LPCSTR)64)
3587#define OCSP_SIGNED_REQUEST ((LPCSTR)65)
3588#define OCSP_REQUEST ((LPCSTR)66)
3589#define OCSP_RESPONSE ((LPCSTR)67)
3590#define OCSP_BASIC_SIGNED_RESPONSE ((LPCSTR)68)
3591#define OCSP_BASIC_RESPONSE ((LPCSTR)69)
3592#define CNG_RSA_PUBLIC_KEY_BLOB ((LPCSTR)72)
3593#define X509_OBJECT_IDENTIFIER ((LPCSTR)73)
3594#define PKCS7_SIGNER_INFO ((LPCSTR)500)
3595#define CMS_SIGNER_INFO ((LPCSTR)501)
3596
3597/* encode/decode flags */
3598#define CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG 0x00008
3599#define CRYPT_ENCODE_ALLOC_FLAG 0x08000
3600#define CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG 0x10000
3601#define CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG \
3602 CERT_RDN_ENABLE_T61_UNICODE_FLAG
3603#define CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG \
3604 CERT_RDN_ENABLE_UTF8_UNICODE_FLAG
3605#define CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG \
3606 CERT_RDN_DISABLE_CHECK_TYPE_FLAG
3607
3608#define CRYPT_DECODE_NOCOPY_FLAG 0x00001
3609#define CRYPT_DECODE_TO_BE_SIGNED_FLAG 0x00002
3610#define CRYPT_DECODE_SHARE_OID_STRING_FLAG 0x00004
3611#define CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG 0x00008
3612#define CRYPT_DECODE_ALLOC_FLAG 0x08000
3613#define CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG \
3614 CERT_RDN_DISABLE_IE4_UTF8_FLAG
3615
3616#define CERT_STORE_SIGNATURE_FLAG 0x00000001
3617#define CERT_STORE_TIME_VALIDITY_FLAG 0x00000002
3618#define CERT_STORE_REVOCATION_FLAG 0x00000004
3619#define CERT_STORE_NO_CRL_FLAG 0x00010000
3620#define CERT_STORE_NO_ISSUER_FLAG 0x00020000
3621
3622#define CERT_STORE_BASE_CRL_FLAG 0x00000100
3623#define CERT_STORE_DELTA_CRL_FLAG 0x00000200
3624
3625/* subject types for CryptVerifyCertificateSignatureEx */
3626#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB 1
3627#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT 2
3628#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL 3
3629
3630/* issuer types for CryptVerifyCertificateSignatureEx */
3631#define CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY 1
3632#define CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT 2
3633#define CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN 3
3634#define CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL 4
3635
3636#define CRYPT_GET_URL_FROM_PROPERTY 0x00000001
3637#define CRYPT_GET_URL_FROM_EXTENSION 0x00000002
3638#define CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE 0x00000004
3639#define CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE 0x00000008
3640
3641/* Certificate name string types and flags */
3642#define CERT_SIMPLE_NAME_STR 1
3643#define CERT_OID_NAME_STR 2
3644#define CERT_X500_NAME_STR 3
3645#define CERT_NAME_STR_SEMICOLON_FLAG 0x40000000
3646#define CERT_NAME_STR_NO_PLUS_FLAG 0x20000000
3647#define CERT_NAME_STR_NO_QUOTING_FLAG 0x10000000
3648#define CERT_NAME_STR_CRLF_FLAG 0x08000000
3649#define CERT_NAME_STR_COMMA_FLAG 0x04000000
3650#define CERT_NAME_STR_REVERSE_FLAG 0x02000000
3651#define CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG 0x00040000
3652#define CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG 0x00020000
3653#define CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG 0x00010000
3654
3655#define CERT_NAME_EMAIL_TYPE 1
3656#define CERT_NAME_RDN_TYPE 2
3657#define CERT_NAME_ATTR_TYPE 3
3658#define CERT_NAME_SIMPLE_DISPLAY_TYPE 4
3659#define CERT_NAME_FRIENDLY_DISPLAY_TYPE 5
3660#define CERT_NAME_DNS_TYPE 6
3661#define CERT_NAME_URL_TYPE 7
3662#define CERT_NAME_UPN_TYPE 8
3663
3664#define CERT_NAME_ISSUER_FLAG 0x00000001
3665#define CERT_NAME_SEARCH_ALL_NAMES_FLAG 0x00000002
3666#define CERT_NAME_DISABLE_IE4_UTF8_FLAG 0x00010000
3667#define CERT_NAME_STR_ENABLE_PUNYCODE_FLAG 0x00200000
3668
3669/* CryptFormatObject flags */
3670#define CRYPT_FORMAT_STR_MULTI_LINE 0x0001
3671#define CRYPT_FORMAT_STR_NO_HEX 0x0010
3672
3673#define CRYPT_FORMAT_SIMPLE 0x0001
3674#define CRYPT_FORMAT_X509 0x0002
3675#define CRYPT_FORMAT_OID 0x0004
3676#define CRYPT_FORMAT_RDN_SEMICOLON 0x0100
3677#define CRYPT_FORMAT_RDN_CRLF 0x0200
3678#define CRYPT_FORMAT_RDN_UNQUOTE 0x0400
3679#define CRYPT_FORMAT_RDN_REVERSE 0x0800
3680
3681#define CRYPT_FORMAT_COMMA 0x1000
3682#define CRYPT_FORMAT_SEMICOLON CRYPT_FORMAT_RDN_SEMICOLON
3683#define CRYPT_FORMAT_CRLF CRYPT_FORMAT_RDN_CRLF
3684
3685/* CryptQueryObject types and flags */
3686#define CERT_QUERY_OBJECT_FILE 1
3687#define CERT_QUERY_OBJECT_BLOB 2
3688
3689#define CERT_QUERY_CONTENT_CERT 1
3690#define CERT_QUERY_CONTENT_CTL 2
3691#define CERT_QUERY_CONTENT_CRL 3
3692#define CERT_QUERY_CONTENT_SERIALIZED_STORE 4
3693#define CERT_QUERY_CONTENT_SERIALIZED_CERT 5
3694#define CERT_QUERY_CONTENT_SERIALIZED_CTL 6
3695#define CERT_QUERY_CONTENT_SERIALIZED_CRL 7
3696#define CERT_QUERY_CONTENT_PKCS7_SIGNED 8
3697#define CERT_QUERY_CONTENT_PKCS7_UNSIGNED 9
3698#define CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED 10
3699#define CERT_QUERY_CONTENT_PKCS10 11
3700#define CERT_QUERY_CONTENT_PFX 12
3701#define CERT_QUERY_CONTENT_CERT_PAIR 13
3702
3703#define CERT_QUERY_CONTENT_FLAG_CERT (1 << CERT_QUERY_CONTENT_CERT)
3704#define CERT_QUERY_CONTENT_FLAG_CTL (1 << CERT_QUERY_CONTENT_CTL)
3705#define CERT_QUERY_CONTENT_FLAG_CRL (1 << CERT_QUERY_CONTENT_CRL)
3706#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE \
3707 (1 << CERT_QUERY_CONTENT_SERIALIZED_STORE)
3708#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT \
3709 (1 << CERT_QUERY_CONTENT_SERIALIZED_CERT)
3710#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL \
3711 (1 << CERT_QUERY_CONTENT_SERIALIZED_CTL)
3712#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL \
3713 (1 << CERT_QUERY_CONTENT_SERIALIZED_CRL)
3714#define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED \
3715 (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED)
3716#define CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED \
3717 (1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED)
3718#define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED \
3719 (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED)
3720#define CERT_QUERY_CONTENT_FLAG_PKCS10 (1 << CERT_QUERY_CONTENT_PKCS10)
3721#define CERT_QUERY_CONTENT_FLAG_PFX (1 << CERT_QUERY_CONTENT_PFX)
3722#define CERT_QUERY_CONTENT_FLAG_CERT_PAIR (1 << CERT_QUERY_CONTENT_CERT_PAIR)
3723
3724#define CERT_QUERY_CONTENT_FLAG_ALL \
3725 CERT_QUERY_CONTENT_FLAG_CERT | \
3726 CERT_QUERY_CONTENT_FLAG_CTL | \
3727 CERT_QUERY_CONTENT_FLAG_CRL | \
3728 CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | \
3729 CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | \
3730 CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | \
3731 CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | \
3732 CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | \
3733 CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | \
3734 CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | \
3735 CERT_QUERY_CONTENT_FLAG_PKCS10 | \
3736 CERT_QUERY_CONTENT_FLAG_PFX | \
3737 CERT_QUERY_CONTENT_FLAG_CERT_PAIR
3738
3739#define CERT_QUERY_FORMAT_BINARY 1
3740#define CERT_QUERY_FORMAT_BASE64_ENCODED 2
3741#define CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED 3
3742
3743#define CERT_QUERY_FORMAT_FLAG_BINARY (1 << CERT_QUERY_FORMAT_BINARY)
3744#define CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED \
3745 (1 << CERT_QUERY_FORMAT_BASE64_ENCODED)
3746#define CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED \
3747 (1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED)
3748
3749#define CERT_QUERY_FORMAT_FLAG_ALL \
3750 CERT_QUERY_FORMAT_FLAG_BINARY | \
3751 CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | \
3752 CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED \
3753
3754#define CERT_SET_KEY_PROV_HANDLE_PROP_ID 0x00000001
3755#define CERT_SET_KEY_CONTEXT_PROP_ID 0x00000001
3756
3757#define CERT_CREATE_SELFSIGN_NO_SIGN 1
3758#define CERT_CREATE_SELFSIGN_NO_KEY_INFO 2
3759
3760/* flags for CryptAcquireCertificatePrivateKey */
3761#define CRYPT_ACQUIRE_CACHE_FLAG 0x00000001
3762#define CRYPT_ACQUIRE_USE_PROV_INFO_FLAG 0x00000002
3763#define CRYPT_ACQUIRE_COMPARE_KEY_FLAG 0x00000004
3764#define CRYPT_ACQUIRE_SILENT_FLAG 0x00000040
3765
3766/* flags for CryptFindCertificateKeyProvInfo */
3767#define CRYPT_FIND_USER_KEYSET_FLAG 0x00000001
3768#define CRYPT_FIND_MACHINE_KEYSET_FLAG 0x00000002
3769#define CRYPT_FIND_SILENT_KEYSET_FLAG 0x00000040
3770
3771/* Chain engines and chains */
3773#define HCCE_CURRENT_USER ((HCERTCHAINENGINE)NULL)
3774#define HCCE_LOCAL_MACHINE ((HCERTCHAINENGINE)1)
3775
3776#define CERT_CHAIN_CACHE_END_CERT 0x00000001
3777#define CERT_CHAIN_THREAD_STORE_SYNC 0x00000002
3778#define CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL 0x00000004
3779#define CERT_CHAIN_USE_LOCAL_MACHINE_STORE 0x00000008
3780#define CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE 0x00000010
3781#define CERT_CHAIN_ENABLE_SHARE_STORE 0x00000020
3782
3784{
3798
3799/* message-related definitions */
3800
3801#ifdef __REACTOS__
3802typedef BOOL
3804 _In_opt_ const void *pvArg,
3805 _In_reads_bytes_opt_(cbData) BYTE *pbData,
3806 _In_ DWORD cbData,
3807 _In_ BOOL fFinal);
3808#else
3809typedef BOOL (WINAPI *PFN_CMSG_STREAM_OUTPUT)(const void *pvArg, BYTE *pbData,
3810 DWORD cbData, BOOL fFinal);
3811#endif
3812
3813#define CMSG_INDEFINITE_LENGTH 0xffffffff
3814
3815typedef struct _CMSG_STREAM_INFO
3816{
3819 void *pvArg;
3821
3823{
3827
3828typedef struct _CERT_ID
3829{
3831 union {
3837
3838#define CERT_ID_ISSUER_SERIAL_NUMBER 1
3839#define CERT_ID_KEY_IDENTIFIER 2
3840#define CERT_ID_SHA1_HASH 3
3841
3842#ifndef USE_WC_PREFIX
3843#undef CMSG_DATA /* may be defined by sys/socket.h */
3844#define CMSG_DATA 1
3845#define CMSG_SIGNED 2
3846#define CMSG_ENVELOPED 3
3847#define CMSG_SIGNED_AND_ENVELOPED 4
3848#define CMSG_HASHED 5
3849#define CMSG_ENCRYPTED 6
3850
3851#define CMSG_ALL_FLAGS ~0U
3852#define CMSG_DATA_FLAG (1 << CMSG_DATA)
3853#define CMSG_SIGNED_FLAG (1 << CMSG_SIGNED)
3854#define CMSG_ENVELOPED_FLAG (1 << CMSG_ENVELOPED)
3855#define CMSG_SIGNED_AND_ENVELOPED_FLAG (1 << CMSG_SIGNED_AND_ENVELOPED)
3856#define CMSG_ENCRYPTED_FLAG (1 << CMSG_ENCRYPTED)
3857#else
3858#define WC_CMSG_DATA 1
3859#define WC_CMSG_SIGNED 2
3860#define WC_CMSG_ENVELOPED 3
3861#define WC_CMSG_SIGNED_AND_ENVELOPED 4
3862#define WC_CMSG_HASHED 5
3863#define WC_CMSG_ENCRYPTED 6
3864
3865#define WC_CMSG_ALL_FLAGS ~0U
3866#define WC_CMSG_DATA_FLAG (1 << WC_CMSG_DATA)
3867#define WC_CMSG_SIGNED_FLAG (1 << WC_CMSG_SIGNED)
3868#define WC_CMSG_ENVELOPED_FLAG (1 << WC_CMSG_ENVELOPED)
3869#define WC_CMSG_SIGNED_AND_ENVELOPED_FLAG (1 << WC_CMSG_SIGNED_AND_ENVELOPED)
3870#define WC_CMSG_ENCRYPTED_FLAG (1 << WC_CMSG_ENCRYPTED)
3871#endif
3872
3874{
3885#ifdef CMSG_SIGNER_ENCODE_INFO_HAS_CMS_FIELDS
3886 CERT_ID SignerId;
3887 CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm;
3888 void *pvHashEncryptionAuxInfo;
3889#endif
3891
3893{
3901#ifdef CMSG_SIGNED_ENCODE_INFO_HAS_CMS_FIELDS
3902 DWORD cAttrCertEncoded;
3903 PCERT_BLOB rgAttrCertEncoded;
3904#endif
3906
3908{
3916
3918{
3926
3928{
3937 union {
3945
3946#define CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE 1
3947#define CMSG_KEY_AGREE_STATIC_KEY_CHOICE 2
3948
3950{
3956 union {
3964
3965#define CMSG_MAIL_LIST_HANDLE_KEY_CHOICE 1
3966
3968{
3970 union {
3976
3977#define CMSG_KEY_TRANS_RECIPIENT 1
3978#define CMSG_KEY_AGREE_RECIPIENT 2
3979#define CMSG_MAIL_LIST_RECIPIENT 3
3980
3982{
3989#ifdef CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS
3990 PCMSG_RECIPIENT_ENCODE_INFO rgCmsRecipients;
3991 DWORD cCertEncoded;
3992 PCERT_BLOB rgCertEncoded;
3993 DWORD cCrlEncoded;
3994 PCRL_BLOB rgCrlEncoded;
3995 DWORD cAttrCertEncoded;
3996 PCERT_BLOB rgAttrCertEncoded;
3997 DWORD cUnprotectedAttr;
3998 PCRYPT_ATTRIBUTE rgUnprotectedAttr;
3999#endif
4001
4003{
4009
4011{
4017
4019{
4024
4025#define CMSG_BARE_CONTENT_FLAG 0x00000001
4026#define CMSG_LENGTH_ONLY_FLAG 0x00000002
4027#define CMSG_DETACHED_FLAG 0x00000004
4028#define CMSG_AUTHENTICATED_ATTRIBUTES_FLAG 0x00000008
4029#define CMSG_CONTENTS_OCTETS_FLAG 0x00000010
4030#define CMSG_MAX_LENGTH_FLAG 0x00000020
4031#define CMSG_CMS_ENCAPSULATED_CONTENT_FLAG 0x00000040
4032#define CMSG_CRYPT_RELEASE_CONTEXT_FLAG 0x00008000
4033
4034#define CMSG_CTRL_VERIFY_SIGNATURE 1
4035#define CMSG_CTRL_DECRYPT 2
4036#define CMSG_CTRL_VERIFY_HASH 5
4037#define CMSG_CTRL_ADD_SIGNER 6
4038#define CMSG_CTRL_DEL_SIGNER 7
4039#define CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR 8
4040#define CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR 9
4041#define CMSG_CTRL_ADD_CERT 10
4042#define CMSG_CTRL_DEL_CERT 11
4043#define CMSG_CTRL_ADD_CRL 12
4044#define CMSG_CTRL_DEL_CRL 13
4045#define CMSG_CTRL_ADD_ATTR_CERT 14
4046#define CMSG_CTRL_DEL_ATTR_CERT 15
4047#define CMSG_CTRL_KEY_TRANS_DECRYPT 16
4048#define CMSG_CTRL_KEY_AGREE_DECRYPT 17
4049#define CMSG_CTRL_MAIL_LIST_DECRYPT 18
4050#define CMSG_CTRL_VERIFY_SIGNATURE_EX 19
4051#define CMSG_CTRL_ADD_CMS_SIGNER_INFO 20
4052
4054{
4060
4062{
4068
4070{
4076
4084
4085#define CMSG_VERIFY_SIGNER_PUBKEY 1
4086#define CMSG_VERIFY_SIGNER_CERT 2
4087#define CMSG_VERIFY_SIGNER_CHAIN 3
4088#define CMSG_VERIFY_SIGNER_NULL 4
4089
4090#define CMSG_TYPE_PARAM 1
4091#define CMSG_CONTENT_PARAM 2
4092#define CMSG_BARE_CONTENT_PARAM 3
4093#define CMSG_INNER_CONTENT_TYPE_PARAM 4
4094#define CMSG_SIGNER_COUNT_PARAM 5
4095#define CMSG_SIGNER_INFO_PARAM 6
4096#define CMSG_SIGNER_CERT_INFO_PARAM 7
4097#define CMSG_SIGNER_HASH_ALGORITHM_PARAM 8
4098#define CMSG_SIGNER_AUTH_ATTR_PARAM 9
4099#define CMSG_SIGNER_UNAUTH_ATTR_PARAM 10
4100#define CMSG_CERT_COUNT_PARAM 11
4101#define CMSG_CERT_PARAM 12
4102#define CMSG_CRL_COUNT_PARAM 13
4103#define CMSG_CRL_PARAM 14
4104#define CMSG_ENVELOPE_ALGORITHM_PARAM 15
4105#define CMSG_RECIPIENT_COUNT_PARAM 17
4106#define CMSG_RECIPIENT_INDEX_PARAM 18
4107#define CMSG_RECIPIENT_INFO_PARAM 19
4108#define CMSG_HASH_ALGORITHM_PARAM 20
4109#define CMSG_HASH_DATA_PARAM 21
4110#define CMSG_COMPUTED_HASH_PARAM 22
4111#define CMSG_ENCRYPT_PARAM 26
4112#define CMSG_ENCRYPTED_DIGEST 27
4113#define CMSG_ENCODED_SIGNER 28
4114#define CMSG_ENCODED_MESSAGE 29
4115#define CMSG_VERSION_PARAM 30
4116#define CMSG_ATTR_CERT_COUNT_PARAM 31
4117#define CMSG_ATTR_CERT_PARAM 32
4118#define CMSG_CMS_RECIPIENT_COUNT_PARAM 33
4119#define CMSG_CMS_RECIPIENT_INDEX_PARAM 34
4120#define CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM 35
4121#define CMSG_CMS_RECIPIENT_INFO_PARAM 36
4122#define CMSG_UNPROTECTED_ATTR_PARAM 37
4123#define CMSG_SIGNER_CERT_ID_PARAM 38
4124#define CMSG_CMS_SIGNER_INFO_PARAM 39
4125
4135
4137
4138#define CMSG_SIGNED_DATA_V1 1
4139#define CMSG_SIGNED_DATA_V3 3
4140#define CMSG_SIGNED_DATA_PKCS_1_5_VERSION CMSG_SIGNED_DATA_V1
4141#define CMSG_SIGNED_DATA_CMS_VERSION CMSG_SIGNED_DATA_V3
4142
4143#define CMSG_SIGNER_INFO_V1 1
4144#define CMSG_SIGNER_INFO_V3 3
4145#define CMSG_SIGNER_INFO_PKCS_1_5_VERSION CMSG_SIGNER_INFO_V1
4146#define CMSG_SIGNER_INFO_CMS_VERSION CMSG_SIGNER_INFO_V3
4147
4148#define CMSG_HASHED_DATA_V0 0
4149#define CMSG_HASHED_DATA_V2 2
4150#define CMSG_HASHED_DATA_PKCS_1_5_VERSION CMSG_HASHED_DATA_V0
4151#define CMSG_HASHED_DATA_CMS_VERSION CMSG_HASHED_DATA_V2
4152
4153#define CMSG_ENVELOPED_DATA_V0 0
4154#define CMSG_ENVELOPED_DATA_V2 2
4155#define CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION CMSG_ENVELOPED_DATA_V0
4156#define CMSG_ENVELOPED_DATA_CMS_VERSION CMSG_ENVELOPED_DATA_V2
4157
4164
4170
4174 union {
4182
4183#define CMSG_KEY_AGREE_ORIGINATOR_CERT 1
4184#define CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY 2
4185
4194
4197 union {
4203
4204#define CMSG_ENVELOPED_RECIPIENT_V0 0
4205#define CMSG_ENVELOPED_RECIPIENT_V2 2
4206#define CMSG_ENVELOPED_RECIPIENT_V3 3
4207#define CMSG_ENVELOPED_RECIPIENT_V4 4
4208#define CMSG_KEY_TRANS_PKCS_1_5_VERSION CMSG_ENVELOPED_RECIPIENT_V0
4209#define CMSG_KEY_TRANS_CMS_VERSION CMSG_ENVELOPED_RECIPIENT_V2
4210#define CMSG_KEY_AGREE_VERSION CMSG_ENVELOPED_RECIPIENT_V3
4211#define CMSG_MAIL_LIST_VERSION CMSG_ENVELOPED_RECIPIENT_V4
4212
4213typedef void * (__WINE_ALLOC_SIZE(1) WINAPI *PFN_CMSG_ALLOC)(size_t cb);
4214typedef void (WINAPI *PFN_CMSG_FREE)(void *pv);
4215
4223 PFN_CMSG_ALLOC pfnAlloc;
4229
4237
4245
4251
4255 union {
4256 void *pvInfo;
4258 char *pszOID;
4261
4262#define CERT_STRONG_SIGN_SERIALIZED_INFO_CHOICE 1
4263#define CERT_STRONG_SIGN_OID_INFO_CHOICE 2
4264
4265#define CERT_STRONG_SIGN_ENABLE_CRL_CHECK 0x1
4266#define CERT_STRONG_SIGN_ENABLE_OCSP_CHECK 0x2
4267
4268#ifdef __REACTOS__
4269typedef BOOL
4271 _Inout_ PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo,
4273 _Reserved_ void *pvReserved);
4274
4275typedef BOOL
4277 _In_ PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo,
4278 _In_ PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTransEncodeInfo,
4279 _Inout_ PCMSG_KEY_TRANS_ENCRYPT_INFO pKeyTransEncryptInfo,
4281 _Reserved_ void *pvReserved);
4282
4283typedef BOOL
4285 _In_ PCRYPT_ALGORITHM_IDENTIFIER pContentEncryptionAlgorithm,
4286 _In_ PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara,
4288 _Reserved_ void *pvReserved,
4289 _Out_ HCRYPTKEY *phContentEncryptKey);
4290#else
4292 PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, DWORD dwFlags,
4293 void *pvReserved);
4294
4296 PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo,
4297 PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTransEncodeInfo,
4298 PCMSG_KEY_TRANS_ENCRYPT_INFO pKeyTransEncryptInfo,
4299 DWORD dwFlags, void *pvReserved);
4300
4302 PCRYPT_ALGORITHM_IDENTIFIER pContentEncryptionAlgorithm,
4303 PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara, DWORD dwFlags,
4304 void *pvReserved, HCRYPTKEY *phContentEncryptKey);
4305#endif
4306
4307/* CryptMsgGetAndVerifySigner flags */
4308#define CMSG_TRUSTED_SIGNER_FLAG 0x1
4309#define CMSG_SIGNER_ONLY_FLAG 0x2
4310#define CMSG_USE_SIGNER_INDEX_FLAG 0x4
4311
4312/* CryptMsgSignCTL flags */
4313#define CMSG_CMS_ENCAPSULATED_CTL_FLAG 0x00008000
4314
4315/* CryptMsgEncodeAndSignCTL flags */
4316#define CMSG_ENCODED_SORTED_CTL_FLAG 0x1
4317#define CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG 0x2
4318
4319/* PFXImportCertStore flags */
4320#define CRYPT_USER_KEYSET 0x00001000
4321#define PKCS12_IMPORT_SILENT 0x00000040
4322#define PKCS12_PREFER_CNG_KSP 0x00000100
4323#define PKCS12_ALWAYS_CNG_KSP 0x00000200
4324#define PKCS12_ONLY_CERTIFICATES 0x00000400
4325#define PKCS12_ONLY_NOT_ENCRYPTED_CERTIFICATES 0x00000800
4326#define PKCS12_ALLOW_OVERWRITE_KEY 0x00004000
4327#define PKCS12_NO_PERSIST_KEY 0x00008000
4328#define PKCS12_VIRTUAL_ISOLATION_KEY 0x00010000
4329#define PKCS12_IMPORT_RESERVED_MASK 0xffff0000
4330/* PFXExportCertStore flags */
4331#define REPORT_NO_PRIVATE_KEY 0x00000001
4332#define REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY 0x00000002
4333#define EXPORT_PRIVATE_KEYS 0x00000004
4334#define PKCS12_EXPORT_RESERVED_MASK 0xffff0000
4335
4336#define CRYPT_USERDATA 0x00000001
4337
4338/* function declarations */
4339#ifdef __REACTOS__
4340/* advapi32.dll */
4342BOOL
4343WINAPI
4345 _Out_ HCRYPTPROV *,
4348 _In_ DWORD,
4349 _In_ DWORD);
4350
4352BOOL
4353WINAPI
4355 _Out_ HCRYPTPROV *,
4358 _In_ DWORD,
4359 _In_ DWORD);
4360
4361#define CryptAcquireContext WINELIB_NAME_AW(CryptAcquireContext)
4362
4364BOOL
4365WINAPI
4368 _In_ DWORD dwLen,
4369 _Inout_updates_bytes_(dwLen) BYTE *pbBuffer);
4370
4372BOOL
4373WINAPI
4376 _Reserved_ DWORD *,
4377 _In_ DWORD);
4378
4380BOOL
4381WINAPI
4384 _In_ ALG_ID,
4386 _In_ DWORD,
4387 _Out_ HCRYPTHASH *);
4388
4389_Success_(return != 0)
4391BOOL
4392WINAPI
4395 _In_ HCRYPTHASH hHash,
4396 _In_ BOOL Final,
4398 _Inout_updates_bytes_to_(*pdwDataLen, *pdwDataLen) BYTE *pbData,
4399 _Inout_ DWORD *pdwDataLen);
4400
4402BOOL
4403WINAPI
4406 _In_ ALG_ID,
4408 _In_ DWORD,
4409 _Out_ HCRYPTKEY *);
4410
4413
4415BOOL
4416WINAPI
4419 _Reserved_ DWORD *,
4420 _In_ DWORD,
4421 _Out_ HCRYPTKEY *);
4422
4424BOOL
4425WINAPI
4428 _Reserved_ DWORD *,
4429 _In_ DWORD,
4430 _Out_ HCRYPTHASH *);
4431
4432_Success_(return != 0)
4434BOOL
4435WINAPI
4438 _In_ HCRYPTHASH hHash,
4439 _In_ BOOL Final,
4441 _Inout_updates_bytes_to_opt_(dwBufLen, *pdwDataLen) BYTE *pbData,
4442 _Inout_ DWORD *pdwDataLen,
4443 _In_ DWORD dwBufLen);
4444
4445_Success_(return != 0)
4447BOOL
4448WINAPI
4450 _In_ DWORD dwIndex,
4451 _Reserved_ DWORD *pdwReserved,
4453 _Out_ DWORD *pdwProvType,
4454 _Out_writes_bytes_to_opt_(*pcbProvName, *pcbProvName) LPSTR szProvName,
4455 _Inout_ DWORD *pcbProvName);
4456
4457_Success_(return != 0)
4459BOOL
4460WINAPI
4462 _In_ DWORD dwIndex,
4463 _Reserved_ DWORD *pdwReserved,
4465 _Out_ DWORD *pdwProvType,
4466 _Out_writes_bytes_to_opt_(*pcbProvName, *pcbProvName) LPWSTR szProvName,
4467 _Inout_ DWORD *pcbProvName);
4468
4469#define CryptEnumProviders WINELIB_NAME_AW(CryptEnumProviders)
4470
4471_Success_(return != 0)
4473BOOL
4474WINAPI
4476 _In_ DWORD dwIndex,
4477 _Reserved_ DWORD *pdwReserved,
4479 _Out_ DWORD *pdwProvType,
4480 _Out_writes_bytes_to_opt_(*pcbTypeName, *pcbTypeName) LPSTR szTypeName,
4481 _Inout_ DWORD *pcbTypeName);
4482
4483_Success_(return != 0)
4485BOOL
4486WINAPI
4488 _In_ DWORD dwIndex,
4489 _Reserved_ DWORD *pdwReserved,
4491 _Out_ DWORD *pdwProvType,
4492 _Out_writes_bytes_to_opt_(*pcbTypeName, *pcbTypeName) LPWSTR szTypeName,
4493 _Inout_ DWORD *pcbTypeName);
4494
4495#define CryptEnumProviderTypes WINELIB_NAME_AW(CryptEnumProviderTypes)
4496
4498BOOL
4499WINAPI
4502 _In_ HCRYPTKEY hExpKey,
4503 _In_ DWORD dwBlobType,
4505 _Out_writes_bytes_to_opt_(*pdwDataLen, *pdwDataLen) BYTE *pbData,
4506 _Inout_ DWORD *pdwDataLen);
4507
4509BOOL
4510WINAPI
4513 _In_ ALG_ID,
4514 _In_ DWORD,
4515 _Out_ HCRYPTKEY *);
4516
4518BOOL
4519WINAPI
4522 _In_ DWORD dwParam,
4523 _Out_writes_bytes_to_opt_(*pdwDataLen, *pdwDataLen) BYTE *pbData,
4524 _Inout_ DWORD *pdwDataLen,
4526
4528BOOL
4529WINAPI
4531 _In_ HCRYPTHASH hHash,
4532 _In_ DWORD dwParam,
4533 _Out_writes_bytes_to_opt_(*pdwDataLen, *pdwDataLen) BYTE *pbData,
4534 _Inout_ DWORD *pdwDataLen,
4536
4538BOOL
4539WINAPI
4542 _In_ DWORD dwParam,
4543 _Out_writes_bytes_to_opt_(*pdwDataLen, *pdwDataLen) BYTE *pbData,
4544 _Inout_ DWORD *pdwDataLen,
4546
4547_Success_(return != 0)
4549BOOL
4550WINAPI
4552 _In_ DWORD dwProvType,
4553 _Reserved_ DWORD *pdwReserved,
4555 _Out_writes_bytes_to_opt_(*pcbProvName, *pcbProvName) LPSTR pszProvName,
4556 _Inout_ DWORD *pcbProvName);
4557
4558_Success_(return != 0)
4560BOOL
4561WINAPI
4563 _In_ DWORD dwProvType,
4564 _Reserved_ DWORD *pdwReserved,
4566 _Out_writes_bytes_to_opt_(*pcbProvName, *pcbProvName) LPWSTR pszProvName,
4567 _Inout_ DWORD *pcbProvName);
4568
4569#define CryptGetDefaultProvider WINELIB_NAME_AW(CryptGetDefaultProvider)
4570
4572
4574BOOL
4575WINAPI
4577 _In_ HCRYPTHASH hHash,
4578 _In_reads_bytes_(dwDataLen) CONST BYTE *pbData,
4579 _In_ DWORD dwDataLen,
4581
4583
4585BOOL
4586WINAPI
4589 _In_reads_bytes_(dwDataLen) CONST BYTE *pbData,
4590 _In_ DWORD dwDataLen,
4591 _In_ HCRYPTKEY hPubKey,
4593 _Out_ HCRYPTKEY *phKey);
4594
4596
4598BOOL
4599WINAPI
4602 _In_ DWORD,
4603 _In_ CONST BYTE *,
4604 _In_ DWORD);
4605
4607BOOL
4608WINAPI
4611 _In_ DWORD,
4612 _In_ CONST BYTE *,
4613 _In_ DWORD);
4614
4617
4618#define CryptSetProvider WINELIB_NAME_AW(CryptSetProvider)
4619
4621BOOL
4622WINAPI
4624 _In_ LPCSTR,
4625 _In_ DWORD,
4626 _Reserved_ DWORD *,
4627 _In_ DWORD);
4628
4630BOOL
4631WINAPI
4633 _In_ LPCWSTR,
4634 _In_ DWORD,
4635 _Reserved_ DWORD *,
4636 _In_ DWORD);
4637
4638#define CryptSetProviderEx WINELIB_NAME_AW(CryptSetProviderEx)
4639
4641
4643BOOL
4644WINAPI
4646 _In_ HCRYPTHASH hHash,
4647 _In_ DWORD dwKeySpec,
4650 _Out_writes_bytes_to_opt_(*pdwSigLen, *pdwSigLen) BYTE *pbSignature,
4651 _Inout_ DWORD *pdwSigLen);
4652
4654BOOL
4655WINAPI
4657 _In_ HCRYPTHASH hHash,
4658 _In_ DWORD dwKeySpec,
4661 _Out_writes_bytes_to_opt_(*pdwSigLen, *pdwSigLen) BYTE *pbSignature,
4662 _Inout_ DWORD *pdwSigLen);
4663
4664#define CryptSignHash WINELIB_NAME_AW(CryptSignHash)
4665
4667BOOL
4668WINAPI
4670 _In_ HCRYPTHASH hHash,
4671 _In_reads_bytes_(dwSigLen) CONST BYTE *pbSignature,
4672 _In_ DWORD dwSigLen,
4673 _In_ HCRYPTKEY hPubKey,
4676
4678BOOL
4679WINAPI
4681 _In_ HCRYPTHASH hHash,
4682 _In_reads_bytes_(dwSigLen) CONST BYTE *pbSignature,
4683 _In_ DWORD dwSigLen,
4684 _In_ HCRYPTKEY hPubKey,
4687
4688#define CryptVerifySignature WINELIB_NAME_AW(CryptVerifySignature)
4689
4690/* crypt32.dll functions */
4694
4695_Success_(return != 0)
4696BOOL
4697WINAPI
4699 _In_reads_bytes_(cbBinary) const BYTE *pbBinary,
4700 _In_ DWORD cbBinary,
4702 _Out_writes_to_opt_(*pcchString, *pcchString) LPSTR pszString,
4703 _Inout_ DWORD *pcchString);
4704
4705_Success_(return != 0)
4706BOOL
4707WINAPI
4709 _In_reads_bytes_(cbBinary) const BYTE *pbBinary,
4710 _In_ DWORD cbBinary,
4712 _Out_writes_to_opt_(*pcchString, *pcchString) LPWSTR pszString,
4713 _Inout_ DWORD *pcchString);
4714
4715#define CryptBinaryToString WINELIB_NAME_AW(CryptBinaryToString)
4716
4717BOOL
4718WINAPI
4720 _In_reads_(cchString) LPCSTR pszString,
4721 _In_ DWORD cchString,
4723 _Out_writes_bytes_to_opt_(*pcbBinary, *pcbBinary) BYTE *pbBinary,
4724 _Inout_ DWORD *pcbBinary,
4725 _Out_opt_ DWORD *pdwSkip,
4726 _Out_opt_ DWORD *pdwFlags);
4727
4728BOOL
4729WINAPI
4731 _In_reads_(cchString) LPCWSTR pszString,
4732 _In_ DWORD cchString,
4734 _Out_writes_bytes_to_opt_(*pcbBinary, *pcbBinary) BYTE *pbBinary,
4735 _Inout_ DWORD *pcbBinary,
4736 _Out_opt_ DWORD *pdwSkip,
4737 _Out_opt_ DWORD *pdwFlags);
4738
4739#define CryptStringToBinary WINELIB_NAME_AW(CryptStringToBinary)
4740
4741BOOL
4742WINAPI
4745 _Out_ PHCRYPTASYNC phAsync);
4746
4747BOOL
4748WINAPI
4750 _In_ HCRYPTASYNC hAsync,
4751 _In_ LPSTR pszParamOid,
4752 _In_opt_ LPVOID pvParam,
4754
4755BOOL
4756WINAPI
4758 _In_ HCRYPTASYNC hAsync,
4759 _In_ LPSTR pszParamOid,
4762
4763BOOL
4764WINAPI
4766 _In_ DWORD,
4767 _In_ LPCSTR,
4768 _In_ DWORD,
4769 _In_ LPCWSTR);
4770
4771BOOL
4772WINAPI
4774 _In_ DWORD,
4775 _In_ LPCSTR,
4776 _In_ LPCSTR,
4779
4780BOOL
4781WINAPI
4783 _In_ DWORD dwEncodingType,
4784 _In_ LPCSTR pszFuncName,
4785 _In_ LPCSTR pszOID,
4787 _Out_opt_ DWORD *pdwValueType,
4788 _Out_writes_bytes_to_opt_(*pcbValueData, *pcbValueData) BYTE *pbValueData,
4789 _Inout_opt_ DWORD *pcbValueData);
4790
4791BOOL
4792WINAPI
4794 _In_ DWORD dwEncodingType,
4795 _In_ LPCSTR pszFuncName,
4796 _In_ LPCSTR pszOID,
4798 _In_ DWORD dwValueType,
4799 _In_reads_bytes_opt_(cbValueData) const BYTE *pbValueData,
4800 _In_ DWORD cbValueData);
4801
4804
4805BOOL
4806WINAPI
4808 _In_ DWORD dwEncodingType,
4809 _In_opt_ LPCSTR pszFuncName,
4810 _In_opt_ LPCSTR pszOID,
4812 _Inout_opt_ void *pvArg,
4813 __callback PFN_CRYPT_ENUM_OID_FUNC pfnEnumOIDFunc);
4814
4816
4817_Success_(return != 0)
4818BOOL
4819WINAPI
4821 _In_ HCRYPTOIDFUNCSET hFuncSet,
4822 _In_ DWORD dwEncodingType,
4823 _Out_writes_to_opt_(*pcchDllList, *pcchDllList) _Post_ _NullNull_terminated_ WCHAR *pwszDllList,
4824 _Inout_ DWORD *pcchDllList);
4825
4826_Success_(return != 0)
4827BOOL
4828WINAPI
4830 _In_ HCRYPTOIDFUNCSET hFuncSet,
4831 _In_ DWORD dwEncodingType,
4832 _In_opt_ LPCWSTR pwszDll,
4834 _Outptr_ void **ppvFuncAddr,
4835 _Inout_ HCRYPTOIDFUNCADDR *phFuncAddr);
4836
4837_Success_(return != 0)
4838BOOL
4839WINAPI
4841 _In_ HCRYPTOIDFUNCSET hFuncSet,
4842 _In_ DWORD dwEncodingType,
4843 _In_ LPCSTR pszOID,
4845 _Outptr_ void **ppvFuncAddr,
4846 _Out_ HCRYPTOIDFUNCADDR *phFuncAddr);
4847
4848BOOL
4849WINAPI
4851 _In_ HCRYPTOIDFUNCADDR hFuncAddr,
4853
4854BOOL
4855WINAPI
4858 _In_ DWORD dwEncodingType,
4859 _In_ LPCSTR pszFuncName,
4860 _In_ DWORD cFuncEntry,
4861 _In_reads_(cFuncEntry) const CRYPT_OID_FUNC_ENTRY rgFuncEntry[],
4863
4864BOOL
4865WINAPI
4867 _In_ HCRYPTPROV hCryptProv,
4868 _In_ DWORD dwDefaultType,
4869 _In_opt_ const void *pvDefaultPara,
4871 _Reserved_ void *pvReserved,
4872 _Out_ HCRYPTDEFAULTCONTEXT *phDefaultContext);
4873
4874BOOL
4875WINAPI
4877 _In_opt_ HCRYPTDEFAULTCONTEXT hDefaultContext,
4879 _Reserved_ void *pvReserved);
4880
4881BOOL
4882WINAPI
4884 _In_ DWORD dwGroupId,
4886 _Inout_opt_ void *pvArg,
4887 __callback PFN_CRYPT_ENUM_OID_INFO pfnEnumOIDInfo);
4888
4890WINAPI
4892 _In_ DWORD dwKeyType,
4893 _In_ void *pvKey,
4894 _In_ DWORD dwGroupId);
4895
4898
4900
4903
4904/* cert store functions */
4907WINAPI
4909 _In_ LPCSTR lpszStoreProvider,
4910 _In_ DWORD dwEncodingType,
4911 _In_opt_ HCRYPTPROV_LEGACY hCryptProv,
4913 _In_opt_ const void *pvPara);
4914
4916WINAPI
4919 _In_ LPCSTR szSubsystemProtocol);
4920
4922WINAPI
4925 _In_ LPCWSTR szSubSystemProtocol);
4926
4927#define CertOpenSystemStore WINELIB_NAME_AW(CertOpenSystemStore)
4928
4930WINAPI
4932 _In_ HCERTSTORE hCertStore,
4933 _In_opt_ PCCERT_CONTEXT pPrev);
4934
4936WINAPI
4938 _In_ HCERTSTORE hCertStore,
4939 _In_opt_ PCCRL_CONTEXT pPrevCrlContext);
4940
4942WINAPI
4944 _In_ HCERTSTORE hCertStore,
4945 _In_opt_ PCCTL_CONTEXT pPrevCtlContext);
4946
4947BOOL
4948WINAPI
4951 _Inout_opt_ void *pvArg,
4953
4954BOOL
4955WINAPI
4958 _In_opt_ void *pvSystemStoreLocationPara,
4959 _Inout_opt_ void *pvArg,
4961
4962BOOL
4963WINAPI
4965 _In_ const void *pvSystemStore,
4968 _Reserved_ void *pvReserved);
4969
4970BOOL
4971WINAPI
4973 _In_ const void *pvSystemStore,
4975
4976BOOL
4977WINAPI
4979 _In_ const void *pvSystemStore,
4981 _Inout_opt_ void *pvArg,
4983
4984BOOL
4985WINAPI
4987 _In_ const void *pvSystemStore,
4989 _In_ LPCWSTR pwszStoreName,
4991 _Reserved_ void *pvReserved);
4992
4993BOOL
4994WINAPI
4996 _In_ HCERTSTORE hCertStore,
4997 _In_ DWORD dwEncodingType,
4998 _In_ DWORD dwSaveAs,
4999 _In_ DWORD dwSaveTo,
5000 _Inout_ void *pvSaveToPara,
5002
5003BOOL
5004WINAPI
5006 _In_ HCERTSTORE hCollectionStore,
5007 _In_opt_ HCERTSTORE hSiblingStore,
5008 _In_ DWORD dwUpdateFlags,
5009 _In_ DWORD dwPriority);
5010
5011void
5012WINAPI
5014 _In_ HCERTSTORE hCollectionStore,
5015 _In_ HCERTSTORE hSiblingStore);
5016
5017_Success_(return != 0)
5018BOOL
5019WINAPI
5022 _Out_ HCERTCHAINENGINE *phChainEngine);
5023
5025
5027
5028_Success_(return != 0)
5029BOOL
5030WINAPI
5032 _In_opt_ HCERTCHAINENGINE hChainEngine,
5033 _In_ PCCERT_CONTEXT pCertContext,
5034 _In_opt_ LPFILETIME pTime,
5035 _In_opt_ HCERTSTORE hAdditionalStore,
5036 _In_ PCERT_CHAIN_PARA pChainPara,
5039 _Out_ PCCERT_CHAIN_CONTEXT* ppChainContext);
5040
5042WINAPI
5044 _In_ PCCERT_CHAIN_CONTEXT pChainContext);
5045
5047
5049WINAPI
5051 _In_ HCERTSTORE hCertStore,
5052 _In_ DWORD dwCertEncodingType,
5053 _In_ DWORD dwFindFlags,
5054 _In_ DWORD dwFindType,
5055 _In_opt_ const void *pvFindPara,
5056 _In_opt_ PCCERT_CHAIN_CONTEXT pPrevChainContext);
5057
5058BOOL
5059WINAPI
5061 _In_ LPCSTR pszPolicyOID,
5062 _In_ PCCERT_CHAIN_CONTEXT pChainContext,
5063 _In_ PCERT_CHAIN_POLICY_PARA pPolicyPara,
5064 _Inout_ PCERT_CHAIN_POLICY_STATUS pPolicyStatus);
5065
5066DWORD
5067WINAPI
5069 _In_ PCCERT_CONTEXT pCertContext,
5070 _In_ DWORD dwPropId);
5071
5072BOOL
5073WINAPI
5075 _In_ PCCERT_CONTEXT pCertContext,
5076 _In_ DWORD dwPropId,
5077 _Out_writes_bytes_to_opt_(*pcbData, *pcbData) void *pvData,
5078 _Inout_ DWORD *pcbData);
5079
5080BOOL
5081WINAPI
5083 _In_ PCCERT_CONTEXT pCertContext,
5084 _In_ DWORD dwPropId,
5086 _In_opt_ const void *pvData);
5087
5088DWORD
5089WINAPI
5091 _In_ PCCRL_CONTEXT pCRLContext,
5092 _In_ DWORD dwPropId);
5093
5094BOOL
5095WINAPI
5097 _In_ PCCRL_CONTEXT pCrlContext,
5098 _In_ DWORD dwPropId,
5099 _Out_writes_bytes_to_opt_(*pcbData, *pcbData) void *pvData,
5100 _Inout_ DWORD *pcbData);
5101
5102BOOL
5103WINAPI
5105 _In_ PCCRL_CONTEXT pCrlContext,
5106 _In_ DWORD dwPropId,
5108 _In_opt_ const void *pvData);
5109
5110DWORD
5111WINAPI
5113 _In_ PCCTL_CONTEXT pCTLContext,
5114 _In_ DWORD dwPropId);
5115
5116BOOL
5117WINAPI
5119 _In_ PCCTL_CONTEXT pCtlContext,
5120 _Inout_ void **ppvNextSubject,
5121 _Out_opt_ PCRYPT_DER_BLOB pSubjectIdentifier,
5122 _Out_opt_ PCRYPT_DER_BLOB pEncodedAttributes);
5123
5124BOOL
5125WINAPI
5127 _In_ PCCTL_CONTEXT pCtlContext,
5128 _In_ DWORD dwPropId,
5129 _Out_writes_bytes_to_opt_(*pcbData, *pcbData) void *pvData,
5130 _Inout_ DWORD *pcbData);
5131
5132BOOL
5133WINAPI
5135 _In_ PCCTL_CONTEXT pCtlContext,
5136 _In_ DWORD dwPropId,
5138 _In_opt_ const void *pvData);
5139
5140_Success_(return != 0)
5141BOOL
5142WINAPI
5144 _In_ HCERTSTORE hCertStore,
5145 _In_ DWORD dwPropId,
5146 _Out_writes_bytes_to_opt_(*pcbData, *pcbData) void *pvData,
5147 _Inout_ DWORD *pcbData);
5148
5149BOOL
5150WINAPI
5152 _In_ HCERTSTORE hCertStore,
5153 _In_ DWORD dwPropId,
5155 _In_opt_ const void *pvData);
5156
5157BOOL
5158WINAPI
5160 _In_ HCERTSTORE hCertStore,
5162 _In_ DWORD dwCtrlType,
5163 _In_opt_ void const *pvCtrlPara);
5164
5166
5168
5170
5172
5174
5175_Success_(return != 0)
5176BOOL
5177WINAPI
5179 _In_opt_ HCERTSTORE hCertStore,
5180 _In_ PCCERT_CONTEXT pCertContext,
5181 _In_ DWORD dwAddDisposition,
5182 _Outptr_opt_ PCCERT_CONTEXT *ppStoreContext);
5183
5184_Success_(return != 0)
5185BOOL
5186WINAPI
5188 _In_opt_ HCERTSTORE hCertStore,
5189 _In_ PCCRL_CONTEXT pCrlContext,
5190 _In_ DWORD dwAddDisposition,
5191 _Outptr_opt_ PCCRL_CONTEXT *ppStoreContext);
5192
5193_Success_(return != 0)
5194BOOL
5195WINAPI
5197 _In_opt_ HCERTSTORE hCertStore,
5198 _In_ PCCTL_CONTEXT pCtlContext,
5199 _In_ DWORD dwAddDisposition,
5200 _Outptr_opt_ PCCTL_CONTEXT *ppStoreContext);
5201
5202_Success_(return != 0)
5203BOOL
5204WINAPI
5206 _In_ HCERTSTORE hCertStore,
5207 _In_ PCCERT_CONTEXT pCertContext,
5208 _In_ DWORD dwAddDisposition,
5209 _Outptr_opt_ PCCERT_CONTEXT *ppStoreContext);
5210
5211_Success_(return != 0)
5212BOOL
5213WINAPI
5215 _In_ HCERTSTORE hCertStore,
5216 _In_ PCCRL_CONTEXT pCrlContext,
5217 _In_ DWORD dwAddDisposition,
5218 _Outptr_opt_ PCCRL_CONTEXT *ppStoreContext);
5219
5220_Success_(return != 0)
5221BOOL
5222WINAPI
5224 _In_ HCERTSTORE hCertStore,
5225 _In_ PCCTL_CONTEXT pCtlContext,
5226 _In_ DWORD dwAddDisposition,
5227 _Outptr_opt_ PCCTL_CONTEXT *ppStoreContext);
5228
5229_Success_(return != 0)
5230BOOL
5231WINAPI
5233 _In_opt_ HCERTSTORE hCertStore,
5234 _In_ DWORD dwCertEncodingType,
5235 _In_reads_bytes_(cbCertEncoded) const BYTE *pbCertEncoded,
5236 _In_ DWORD cbCertEncoded,
5237 _In_ DWORD dwAddDisposition,
5238 _Outptr_opt_ PCCERT_CONTEXT *ppCertContext);
5239
5240BOOL
5241WINAPI
5243 _In_ LPCSTR szCertStoreName,
5244 _In_reads_bytes_(cbCertEncoded) const BYTE *pbCertEncoded,
5245 _In_ DWORD cbCertEncoded);
5246
5247BOOL
5248WINAPI
5250 _In_ LPCWSTR szCertStoreName,
5251 _In_reads_bytes_(cbCertEncoded) const BYTE *pbCertEncoded,
5252 _In_ DWORD cbCertEncoded);
5253
5254#define CertAddEncodedCertificateToSystemStore \
5255 WINELIB_NAME_AW(CertAddEncodedCertificateToSystemStore)
5256
5257_Success_(return != 0)
5258BOOL
5259WINAPI
5261 _In_opt_ HCERTSTORE hCertStore,
5262 _In_ DWORD dwCertEncodingType,
5263 _In_reads_bytes_(cbCrlEncoded) const BYTE *pbCrlEncoded,
5264 _In_ DWORD cbCrlEncoded,
5265 _In_ DWORD dwAddDisposition,
5266 _Outptr_opt_ PCCRL_CONTEXT *ppCrlContext);
5267
5268_Success_(return != 0)
5269BOOL
5270WINAPI
5272 _In_opt_ HCERTSTORE hCertStore,
5273 _In_ DWORD dwMsgAndCertEncodingType,
5274 _In_reads_bytes_(cbCtlEncoded) const BYTE *pbCtlEncoded,
5275 _In_ DWORD cbCtlEncoded,
5276 _In_ DWORD dwAddDisposition,
5277 _Outptr_opt_ PCCTL_CONTEXT *ppCtlContext);
5278
5279_Success_(return != 0)
5280BOOL
5281WINAPI
5283 _In_opt_ HCERTSTORE hCertStore,
5284 _In_reads_bytes_(cbElement) const BYTE *pbElement,
5285 _In_ DWORD cbElement,
5286 _In_ DWORD dwAddDisposition,
5288 _In_ DWORD dwContextTypeFlags,
5289 _Out_opt_ DWORD *pdwContextType,
5290 _Outptr_opt_ const void **ppvContext);
5291
5292BOOL
5293WINAPI
5295 _In_ DWORD dwCertEncodingType,
5296 _In_ PCERT_INFO pCertId1,
5297 _In_ PCERT_INFO pCertId2);
5298
5299BOOL
5300WINAPI
5302 _In_ DWORD dwCertEncodingType,
5303 _In_ PCERT_NAME_BLOB pCertName1,
5304 _In_ PCERT_NAME_BLOB pCertName2);
5305
5306BOOL
5307WINAPI
5311
5312BOOL
5313WINAPI
5315 _In_ DWORD dwCertEncodingType,
5316 _In_ PCERT_PUBLIC_KEY_INFO pPublicKey1,
5317 _In_ PCERT_PUBLIC_KEY_INFO pPublicKey2);
5318
5319DWORD
5320WINAPI
5322 _In_ DWORD dwCertEncodingType,
5323 _In_ PCERT_PUBLIC_KEY_INFO pPublicKey);
5324
5325const void *
5326WINAPI
5328 _In_ DWORD dwContextType,
5329 _In_ DWORD dwEncodingType,
5331 _In_ DWORD cbEncoded,
5334
5336WINAPI
5338 _In_ DWORD dwCertEncodingType,
5339 _In_reads_bytes_(cbCertEncoded) const BYTE *pbCertEncoded,
5340 _In_ DWORD cbCertEncoded);
5341
5343WINAPI
5345 _In_ DWORD dwCertEncodingType,
5346 _In_reads_bytes_(cbCrlEncoded) const BYTE *pbCrlEncoded,
5347 _In_ DWORD cbCrlEncoded);
5348
5350WINAPI
5352 _In_ DWORD dwMsgAndCertEncodingType,
5353 _In_reads_bytes_(cbCtlEncoded) const BYTE *pbCtlEncoded,
5354 _In_ DWORD cbCtlEncoded);
5355
5357WINAPI
5360 _In_ PCERT_NAME_BLOB pSubjectIssuerBlob,
5362 _In_opt_ PCRYPT_KEY_PROV_INFO pKeyProvInfo,
5363 _In_opt_ PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
5364 _In_opt_ PSYSTEMTIME pStartTime,
5365 _In_opt_ PSYSTEMTIME pEndTime,
5366 _In_opt_ PCERT_EXTENSIONS pExtensions);
5367
5369
5371
5373
5375WINAPI
5377 _In_opt_ PCCERT_CONTEXT pCertContext);
5378
5380
5382
5384WINAPI
5386 _In_ HCERTSTORE hCertStore,
5387 _In_ DWORD dwCertEncodingType,
5388 _In_ DWORD dwFindFlags,
5389 _In_ DWORD dwFindType,
5390 _In_opt_ const void *pvFindPara,
5391 _In_opt_ PCCERT_CONTEXT pPrevCertContext);
5392
5394WINAPI
5396 _In_ HCERTSTORE hCertStore,
5397 _In_ DWORD dwCertEncodingType,
5398 _In_ DWORD dwFindFlags,
5399 _In_ DWORD dwFindType,
5400 _In_opt_ const void *pvFindPara,
5401 _In_opt_ PCCRL_CONTEXT pPrevCrlContext);
5402
5404WINAPI
5406 _In_ HCERTSTORE hCertStore,
5407 _In_ DWORD dwMsgAndCertEncodingType,
5408 _In_ DWORD dwFindFlags,
5409 _In_ DWORD dwFindType,
5410 _In_opt_ const void *pvFindPara,
5411 _In_opt_ PCCTL_CONTEXT pPrevCtlContext);
5412
5414WINAPI
5416 _In_ HCERTSTORE hCertStore,
5417 _In_ PCCERT_CONTEXT pSubjectContext,
5418 _In_opt_ PCCERT_CONTEXT pPrevIssuerContext,
5419 _Inout_ DWORD *pdwFlags);
5420
5422WINAPI
5424 _In_ HCERTSTORE hCertStore,
5425 _In_ DWORD dwCertEncodingType,
5426 _In_ PCERT_INFO pCertId);
5427
5429WINAPI
5431 _In_ HCERTSTORE hCertStore,
5432 _In_opt_ PCCERT_CONTEXT pIssuerContext,
5433 _In_opt_ PCCRL_CONTEXT pPrevCrlContext,
5434 _Inout_ DWORD *pdwFlags);
5435
5436BOOL
5437WINAPI
5439 _In_ PCCERT_CONTEXT pCertContext,
5441 _Out_writes_bytes_to_opt_(*pcbElement, *pcbElement) BYTE *pbElement,
5442 _Inout_ DWORD *pcbElement);
5443
5444BOOL
5445WINAPI
5447 _In_ PCCRL_CONTEXT pCrlContext,
5449 _Out_writes_bytes_to_opt_(*pcbElement, *pcbElement) BYTE *pbElement,
5450 _Inout_ DWORD *pcbElement);
5451
5452BOOL
5453WINAPI
5455 _In_ PCCTL_CONTEXT pCtlContext,
5457 _Out_writes_bytes_to_opt_(*pcbElement, *pcbElement) BYTE *pbElement,
5458 _Inout_ DWORD *pcbElement);
5459
5460BOOL
5461WINAPI
5463 _In_ DWORD dwCertEncodingType,
5464 _In_ PCERT_INFO pCertInfo,
5465 _Out_writes_bytes_all_(cbKeyUsage) BYTE *pbKeyUsage,
5466 _In_ DWORD cbKeyUsage);
5467
5468BOOL
5469WINAPI
5471 _In_ PCCERT_CONTEXT pCertContext,
5473 _Out_writes_bytes_to_opt_(*pcbUsage, *pcbUsage) PCERT_ENHKEY_USAGE pUsage,
5474 _Inout_ DWORD *pcbUsage);
5475
5476BOOL
5477WINAPI
5479 _In_ PCCERT_CONTEXT pCertContext,
5481
5482BOOL
5483WINAPI
5485 _In_ PCCERT_CONTEXT pCertContext,
5486 _In_ LPCSTR pszUsageIdentifier);
5487
5488BOOL
5489WINAPI
5491 _In_ PCCERT_CONTEXT pCertContext,
5492 _In_ LPCSTR pszUsageIdentifier);
5493
5494_Success_(return != 0)
5495BOOL
5496WINAPI
5498 _In_ DWORD cCerts,
5499 _In_reads_(cCerts) PCCERT_CONTEXT *rghCerts,
5500 _Out_ int *cNumOIDs,
5501 _Out_writes_bytes_to_opt_(*pcbOIDs, *pcbOIDs) LPSTR *rghOIDs,
5502 _Inout_ DWORD *pcbOIDs);
5503
5504BOOL
5505WINAPI
5507 _In_ DWORD dwCertEncodingType,
5508 _In_ LPCSTR lpszStructType,
5509 _In_ const void *pvStructInfo,
5512
5513BOOL
5514WINAPI
5516 _In_ DWORD dwCertEncodingType,
5517 _In_ LPCSTR lpszStructType,
5518 _In_ const void *pvStructInfo,
5520 _In_opt_ PCRYPT_ENCODE_PARA pEncodePara,
5521 _Out_opt_ void *pvEncoded,
5523
5524BOOL
5525WINAPI
5527 _In_ DWORD dwCertEncodingType,
5528 _In_ LPCSTR lpszStructType,
5530 _In_ DWORD cbEncoded,
5532 _Out_writes_bytes_to_opt_(*pcbStructInfo, *pcbStructInfo) void *pvStructInfo,
5533 _Inout_ DWORD *pcbStructInfo);
5534
5535BOOL
5536WINAPI
5538 _In_ DWORD dwCertEncodingType,
5539 _In_ LPCSTR lpszStructType,
5541 _In_ DWORD cbEncoded,
5543 _In_opt_ PCRYPT_DECODE_PARA pDecodePara,
5544 _Out_opt_ void *pvStructInfo,
5545 _Inout_ DWORD *pcbStructInfo);
5546
5547BOOL
5548WINAPI
5550 _In_ DWORD dwCertEncodingType,
5551 _In_ DWORD dwFormatType,
5552 _In_ DWORD dwFormatStrType,
5553 _In_opt_ void *pFormatStruct,
5554 _In_opt_ LPCSTR lpszStructType,
5556 _In_ DWORD cbEncoded,
5557 _At_((WCHAR *) pbFormat, _Out_writes_bytes_to_opt_(*pcbFormat, *pcbFormat)) void *pbFormat,
5558 _Inout_ DWORD *pcbFormat);
5559
5560BOOL
5561WINAPI
5563 _In_opt_ HCRYPTPROV_LEGACY hCryptProv,
5564 _In_ ALG_ID Algid,
5567 _In_ DWORD cbEncoded,
5568 _Out_writes_bytes_to_opt_(*pcbComputedHash, *pcbComputedHash) BYTE *pbComputedHash,
5569 _Inout_ DWORD *pcbComputedHash);
5570
5571BOOL
5572WINAPI
5574 _In_opt_ HCRYPTPROV_LEGACY hCryptProv,
5575 _In_ ALG_ID Algid,
5577 _In_ DWORD dwCertEncodingType,
5579 _Out_writes_bytes_to_opt_(*pcbComputedHash, *pcbComputedHash) BYTE *pbComputedHash,
5580 _Inout_ DWORD *pcbComputedHash);
5581
5582BOOL
5583WINAPI
5585 _In_opt_ HCRYPTPROV_LEGACY hCryptProv,
5586 _In_ DWORD dwCertEncodingType,
5588 _In_ DWORD cbEncoded,
5589 _Out_writes_bytes_to_opt_(*pcbComputedHash, *pcbComputedHash) BYTE *pbComputedHash,
5590 _Inout_ DWORD *pcbComputedHash);
5591
5592BOOL
5593WINAPI
5595 _In_ DWORD dwObjectType,
5596 _In_ const void *pvObject,
5597 _In_ DWORD dwExpectedContentTypeFlags,
5598 _In_ DWORD dwExpectedFormatTypeFlags,
5600 _Out_opt_ DWORD *pdwMsgAndCertEncodingType,
5601 _Out_opt_ DWORD *pdwContentType,
5602 _Out_opt_ DWORD *pdwFormatType,
5603 _Out_opt_ HCERTSTORE *phCertStore,
5604 _Out_opt_ HCRYPTMSG *phMsg,
5605 _Outptr_opt_result_maybenull_ const void **ppvContext);
5606
5607BOOL
5608WINAPI
5610 _In_opt_ HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey,
5611 _In_opt_ DWORD dwKeySpec,
5612 _In_ DWORD dwCertEncodingType,
5613 _In_reads_bytes_(cbEncodedToBeSigned) const BYTE *pbEncodedToBeSigned,
5614 _In_ DWORD cbEncodedToBeSigned,
5615 _In_ PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
5616 _In_opt_ const void *pvHashAuxInfo,
5617 _Out_writes_bytes_to_opt_(*pcbSignature, *pcbSignature) BYTE *pbSignature,
5618 _Inout_ DWORD *pcbSignature);
5619
5620BOOL
5621WINAPI
5623 _In_opt_ HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey,
5624 _In_opt_ DWORD dwKeySpec,
5625 _In_ DWORD dwCertEncodingType,
5626 _In_ LPCSTR lpszStructType,
5627 _In_ const void *pvStructInfo,
5628 _In_ PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
5629 _In_opt_ const void *pvHashAuxInfo,
5632
5634BOOL
5635WINAPI
5637 _In_opt_ HCRYPTPROV_LEGACY hCryptProv,
5638 _In_ DWORD dwCertEncodingType,
5640 _In_ DWORD cbEncoded,
5641 _In_ PCERT_PUBLIC_KEY_INFO pPublicKey);
5642
5644BOOL
5645WINAPI
5647 _In_opt_ HCRYPTPROV_LEGACY hCryptProv,
5648 _In_ DWORD dwCertEncodingType,
5649 _In_ DWORD dwSubjectType,
5650 _In_ void *pvSubject,
5651 _In_ DWORD dwIssuerType,
5652 _In_opt_ void *pvIssuer,
5654 _Inout_opt_ void *pvExtra);
5655
5657WINAPI
5659 _In_ LPCSTR pszObjId,
5660 _In_ DWORD cAttr,
5661 _In_reads_(cAttr) CRYPT_ATTRIBUTE rgAttr[]);
5662
5664WINAPI
5666 _In_ LPCSTR pszObjId,
5667 _In_ DWORD cExtensions,
5668 _In_reads_(cExtensions) CERT_EXTENSION rgExtensions[]);
5669
5671WINAPI
5673 _In_ LPCSTR pszObjId,
5675
5676BOOL
5677WINAPI
5679 _In_ PCRYPT_DATA_BLOB pSubjectIdentifier,
5680 _In_ PCCTL_CONTEXT pCtlContext,
5682 _Reserved_ void *pvReserved,
5683 _Out_opt_ PCRYPT_DER_BLOB pEncodedAttributes);
5684
5685BOOL
5686WINAPI
5688 _In_ DWORD dwCertEncodingType,
5690 _In_ PCERT_NAME_BLOB pCertName,
5691 _In_ PCERT_RDN pRDN);
5692
5693BOOL
5694WINAPI
5696 _In_ PCCERT_CONTEXT pCert,
5697 _In_ PCCRL_CONTEXT pCrl,
5699 _Reserved_ void *pvReserved);
5700
5701BOOL
5702WINAPI
5704 _In_ PCCERT_CONTEXT pCert,
5705 _In_ PCCRL_CONTEXT pCrlContext,
5707 _Reserved_ void *pvReserved,
5709
5710BOOL
5711WINAPI
5713 _In_ DWORD dwCertEncodingType,
5714 _In_ PCERT_INFO pCertId,
5715 _In_ DWORD cCrlInfo,
5716 _In_reads_(cCrlInfo) PCRL_INFO rgpCrlInfo[]);
5717
5718BOOL
5719WINAPI
5721 _In_ PCCERT_CONTEXT pSubject,
5722 _In_opt_ PCCERT_CONTEXT pIssuer,
5723 _Inout_ DWORD *pdwFlags);
5724
5725LONG
5726WINAPI
5728 _In_opt_ LPFILETIME pTimeToVerify,
5729 _In_ PCRL_INFO pCrlInfo);
5730
5731LONG
5732WINAPI
5734 _In_opt_ LPFILETIME pTimeToVerify,
5735 _In_ PCERT_INFO pCertInfo);
5736
5737BOOL
5738WINAPI
5740 _In_ PCERT_INFO pSubjectInfo,
5741 _In_ PCERT_INFO pIssuerInfo);
5742
5743BOOL
5744WINAPI
5746 _In_ DWORD dwEncodingType,
5747 _In_ DWORD dwSubjectType,
5748 _In_ void *pvSubject,
5749 _In_ PCTL_USAGE pSubjectUsage,
5751 _In_opt_ PCTL_VERIFY_USAGE_PARA pVerifyUsagePara,
5752 _Inout_ PCTL_VERIFY_USAGE_STATUS pVerifyUsageStatus);
5753
5754BOOL
5755WINAPI
5757 _In_ DWORD dwEncodingType,
5758 _In_ DWORD dwRevType,
5759 _In_ DWORD cContext,
5760 _In_reads_(cContext) PVOID rgpvContext[],
5763 _Inout_ PCERT_REVOCATION_STATUS pRevStatus);
5764
5765BOOL
5766WINAPI
5768 _In_ HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey,
5769 _In_opt_ DWORD dwKeySpec,
5770 _In_ DWORD dwCertEncodingType,
5771 _Out_writes_bytes_to_opt_(*pcbInfo, *pcbInfo) PCERT_PUBLIC_KEY_INFO pInfo,
5772 _Inout_ DWORD *pcbInfo);
5773
5774BOOL
5775WINAPI
5777 _In_ HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey,
5778 _In_opt_ DWORD dwKeySpec,
5779 _In_ DWORD dwCertEncodingType,
5780 _In_opt_ LPSTR pszPublicKeyObjId,
5782 _In_opt_ void *pvAuxInfo,
5783 _Out_writes_bytes_to_opt_(*pcbInfo, *pcbInfo) PCERT_PUBLIC_KEY_INFO pInfo,
5784 _Inout_ DWORD *pcbInfo);
5785
5786BOOL
5787WINAPI
5789 _In_ HCRYPTPROV hCryptProv,
5790 _In_ DWORD dwCertEncodingType,
5792 _Out_ HCRYPTKEY *phKey);
5793
5794BOOL
5795WINAPI
5797 _In_ HCRYPTPROV hCryptProv,
5798 _In_ DWORD dwCertEncodingType,
5800 _In_ ALG_ID aiKeyAlg,
5802 _In_opt_ void *pvAuxInfo,
5803 _Out_ HCRYPTKEY *phKey);
5804
5805BOOL
5806WINAPI
5808 _In_ PCCERT_CONTEXT pCert,
5810 _In_opt_ void *pvParameters,
5811 _Out_ HCRYPTPROV_OR_NCRYPT_KEY_HANDLE *phCryptProvOrNCryptKey,
5812 _Out_opt_ DWORD *pdwKeySpec,
5813 _Out_opt_ BOOL *pfCallerFreeProvOrNCryptKey);
5814
5815BOOL
5816WINAPI
5818 _In_ PCCERT_CONTEXT pCert,
5820 _Reserved_ void *pvReserved);
5821
5822BOOL WINAPI CryptProtectData( DATA_BLOB* pDataIn, LPCWSTR szDataDescr,
5823 DATA_BLOB* pOptionalEntropy, PVOID pvReserved,
5824 CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, DWORD dwFlags, DATA_BLOB* pDataOut );
5825
5826BOOL WINAPI CryptUnprotectData( DATA_BLOB* pDataIn, LPWSTR* ppszDataDescr,
5827 DATA_BLOB* pOptionalEntropy, PVOID pvReserved,
5828 CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, DWORD dwFlags, DATA_BLOB* pDataOut );
5829
5830DWORD
5831WINAPI
5833 _In_ PCCERT_CONTEXT pCertContext,
5834 _In_ DWORD dwType,
5836 _In_opt_ void *pvTypePara,
5837 _Out_writes_to_opt_(cchNameString, return) LPSTR pszNameString,
5838 _In_ DWORD cchNameString);
5839
5840DWORD
5841WINAPI
5843 _In_ PCCERT_CONTEXT pCertContext,
5844 _In_ DWORD dwType,
5846 _In_opt_ void *pvTypePara,
5847 _Out_writes_to_opt_(cchNameString, return) LPWSTR pszNameString,
5848 _In_ DWORD cchNameString);
5849
5850#define CertGetNameString WINELIB_NAME_AW(CertGetNameString)
5851
5852DWORD
5853WINAPI
5855 _In_ DWORD dwValueType,
5857 _Out_writes_to_opt_(csz, return) LPSTR psz,
5858 _In_ DWORD csz);
5859
5860DWORD
5861WINAPI
5863 _In_ DWORD dwValueType,
5865 _Out_writes_to_opt_(csz, return) LPWSTR psz,
5866 _In_ DWORD csz);
5867
5868#define CertRDNValueToStr WINELIB_NAME_AW(CertRDNValueToStr)
5869
5870DWORD
5871WINAPI
5873 _In_ DWORD dwCertEncodingType,
5876 _Out_writes_to_opt_(csz, return) LPSTR psz,
5877 _In_ DWORD csz);
5878
5879DWORD
5880WINAPI
5882 _In_ DWORD dwCertEncodingType,
5885 _Out_writes_to_opt_(csz, return) LPWSTR psz,
5886 _In_ DWORD csz);
5887
5888#define CertNameToStr WINELIB_NAME_AW(CertNameToStr)
5889
5890BOOL
5891WINAPI
5893 _In_ DWORD dwCertEncodingType,
5896 _Reserved_ void *pvReserved,
5900
5901BOOL
5902WINAPI
5904 _In_ DWORD dwCertEncodingType,
5907 _Reserved_ void *pvReserved,
5911
5912#define CertStrToName WINELIB_NAME_AW(CertStrToName)
5913
5914DWORD
5915WINAPI
5917 _In_ DWORD dwMsgEncodingType,
5919 _In_ DWORD dwMsgType,
5920 _In_ void const *pvMsgEncodeInfo,
5921 _In_opt_ LPSTR pszInnerContentObjID,
5922 _In_ DWORD cbData);
5923
5925
5926BOOL
5927WINAPI
5929 _In_ HCRYPTMSG hCryptMsg,
5931 _In_ DWORD dwCtrlType,
5932 _In_opt_ void const *pvCtrlPara);
5933
5934BOOL
5935WINAPI
5937 _In_ HCRYPTMSG hCryptMsg,
5938 _In_ DWORD dwIndex,
5939 _In_ DWORD cCountersigners,
5940 _In_reads_(cCountersigners) PCMSG_SIGNER_ENCODE_INFO rgCountersigners);
5941
5942BOOL
5943WINAPI
5945 _In_ DWORD dwEncodingType,
5946 _In_reads_bytes_(cbSignerInfo) PBYTE pbSignerInfo,
5947 _In_ DWORD cbSignerInfo,
5948 _In_ DWORD cCountersigners,
5949 _In_reads_(cCountersigners) PCMSG_SIGNER_ENCODE_INFO rgCountersigners,
5950 _Out_writes_bytes_to_opt_(*pcbCountersignature, *pcbCountersignature) PBYTE pbCountersignature,
5951 _Inout_ PDWORD pcbCountersignature);
5952
5954
5955BOOL
5956WINAPI
5958 _In_ DWORD dwMsgEncodingType,
5959 _In_ PCTL_INFO pCtlInfo,
5964
5965_Success_(return == 0)
5966BOOL
5967WINAPI
5969 _In_ HCRYPTMSG hCryptMsg,
5970 _In_ DWORD cSignerStore,
5971 _In_reads_opt_(cSignerStore) HCERTSTORE *rghSignerStore,
5973 _Outptr_opt_ PCCERT_CONTEXT *ppSigner,
5974 _Inout_opt_ DWORD *pdwSignerIndex);
5975
5976BOOL
5977WINAPI
5979 _In_ HCRYPTMSG hCryptMsg,
5980 _In_ DWORD dwParamType,
5981 _In_ DWORD dwIndex,
5982 _Out_writes_bytes_to_opt_(*pcbData, *pcbData) void *pvData,
5983 _Inout_ DWORD *pcbData);
5984
5986WINAPI
5988 _In_ DWORD dwMsgEncodingType,
5990 _In_ DWORD dwMsgType,
5991 _In_opt_ HCRYPTPROV_LEGACY hCryptProv,
5992 _Reserved_ PCERT_INFO pRecipientInfo,
5993 _In_opt_ PCMSG_STREAM_INFO pStreamInfo);
5994
5996WINAPI
5998 _In_ DWORD dwMsgEncodingType,
6000 _In_ DWORD dwMsgType,
6001 _In_ void const *pvMsgEncodeInfo,
6002 _In_opt_ LPSTR pszInnerContentObjID,
6003 _In_opt_ PCMSG_STREAM_INFO pStreamInfo);
6004
6005BOOL
6006WINAPI
6008 _In_ DWORD dwMsgEncodingType,
6009 _In_reads_bytes_(cbCtlContent) BYTE *pbCtlContent,
6010 _In_ DWORD cbCtlContent,
6015
6016BOOL
6017WINAPI
6019 _In_ HCRYPTMSG hCryptMsg,
6020 _In_reads_bytes_opt_(cbData) const BYTE *pbData,
6021 _In_ DWORD cbData,
6022 _In_ BOOL fFinal);
6023
6024BOOL
6025WINAPI
6027 _In_opt_ HCRYPTPROV_LEGACY hCryptProv,
6028 _In_ DWORD dwEncodingType,
6029 _In_reads_bytes_(cbSignerInfo) PBYTE pbSignerInfo,
6030 _In_ DWORD cbSignerInfo,
6031 _In_reads_bytes_(cbSignerInfoCountersignature) PBYTE pbSignerInfoCountersignature,
6032 _In_ DWORD cbSignerInfoCountersignature,
6033 _In_ PCERT_INFO pciCountersigner);
6034
6035BOOL
6036WINAPI
6038 _In_opt_ HCRYPTPROV_LEGACY hCryptProv,
6039 _In_ DWORD dwEncodingType,
6040 _In_reads_bytes_(cbSignerInfo) PBYTE pbSignerInfo,
6041 _In_ DWORD cbSignerInfo,
6042 _In_reads_bytes_(cbSignerInfoCountersignature) PBYTE pbSignerInfoCountersignature,
6043 _In_ DWORD cbSignerInfoCountersignature,
6044 _In_ DWORD dwSignerType,
6045 _In_ void *pvSigner,
6047 _Inout_opt_ void *pvExtra);
6048
6049BOOL
6050WINAPI
6053 _In_ BOOL fDetachedSignature,
6054 _In_ DWORD cToBeSigned,
6055 _In_reads_opt_(cToBeSigned) const BYTE *rgpbToBeSigned[],
6056 _In_reads_(cToBeSigned) DWORD rgcbToBeSigned[],
6057 _Out_writes_bytes_to_opt_(*pcbSignedBlob, *pcbSignedBlob) BYTE *pbSignedBlob,
6058 _Inout_ DWORD *pcbSignedBlob);
6059
6060BOOL
6061WINAPI
6064 _In_reads_bytes_(cbToBeSigned) const BYTE *pbToBeSigned,
6065 _In_ DWORD cbToBeSigned,
6066 _Out_writes_bytes_to_opt_(*pcbSignedBlob, *pcbSignedBlob) BYTE *pbSignedBlob,
6067 _Inout_ DWORD *pcbSignedBlob);
6068
6069BOOL
6070WINAPI
6072 _In_ PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
6073 _In_ DWORD dwSignerIndex,
6074 _In_reads_bytes_(cbSignedBlob) const BYTE *pbSignedBlob,
6075 _In_ DWORD cbSignedBlob,
6076 _Out_writes_bytes_to_opt_(*pcbDecoded, *pcbDecoded) BYTE *pbDecoded,
6077 _Inout_opt_ DWORD *pcbDecoded,
6079
6080BOOL
6081WINAPI
6084 _In_opt_ PCERT_PUBLIC_KEY_INFO pPublicKeyInfo,
6085 _In_reads_bytes_(cbSignedBlob) const BYTE *pbSignedBlob,
6086 _In_ DWORD cbSignedBlob,
6087 _Out_writes_bytes_to_opt_(*pcbDecoded, *pcbDecoded) BYTE *pbDecoded,
6088 _Inout_opt_ DWORD *pcbDecoded);
6089
6090BOOL
6091WINAPI
6093 _In_ PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
6094 _In_ DWORD dwSignerIndex,
6095 _In_reads_bytes_(cbDetachedSignBlob) const BYTE *pbDetachedSignBlob,
6096 _In_ DWORD cbDetachedSignBlob,
6097 _In_ DWORD cToBeSigned,
6098 _In_reads_(cToBeSigned) const BYTE *rgpbToBeSigned[],
6099 _In_reads_(cToBeSigned) DWORD rgcbToBeSigned[],
6101
6102LONG
6103WINAPI
6105 _In_ DWORD dwMsgEncodingType,
6106 _In_reads_bytes_(cbSignedBlob) const BYTE *pbSignedBlob,
6107 _In_ DWORD cbSignedBlob);
6108
6109BOOL
6110WINAPI
6112 _In_ PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara,
6113 _In_ DWORD cRecipientCert,
6114 _In_reads_(cRecipientCert) PCCERT_CONTEXT rgpRecipientCert[],
6115 _In_reads_bytes_opt_(cbToBeEncrypted) const BYTE *pbToBeEncrypted,
6116 _In_ DWORD cbToBeEncrypted,
6117 _Out_writes_bytes_to_opt_(*pcbEncryptedBlob, *pcbEncryptedBlob) BYTE *pbEncryptedBlob,
6118 _Inout_ DWORD *pcbEncryptedBlob);
6119
6120BOOL
6121WINAPI
6123 _In_ PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara,
6124 _In_reads_bytes_(cbEncryptedBlob) const BYTE *pbEncryptedBlob,
6125 _In_ DWORD cbEncryptedBlob,
6126 _Out_writes_bytes_to_opt_(*pcbDecrypted, *pcbDecrypted) BYTE *pbDecrypted,
6127 _Inout_opt_ DWORD *pcbDecrypted,
6129
6130BOOL
6131WINAPI
6134 _In_ PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara,
6135 _In_ DWORD cRecipientCert,
6136 _In_reads_(cRecipientCert) PCCERT_CONTEXT rgpRecipientCert[],
6137 _In_reads_bytes_(cbToBeSignedAndEncrypted) const BYTE *pbToBeSignedAndEncrypted,
6138 _In_ DWORD cbToBeSignedAndEncrypted,
6139 _Out_writes_bytes_to_opt_(*pcbSignedAndEncryptedBlob, *pcbSignedAndEncryptedBlob) BYTE *pbSignedAndEncryptedBlob,
6140 _Inout_ DWORD *pcbSignedAndEncryptedBlob);
6141
6142BOOL
6143WINAPI
6145 _In_ PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara,
6146 _In_ PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara,
6147 _In_ DWORD dwSignerIndex,
6148 _In_reads_bytes_(cbEncryptedBlob) const BYTE *pbEncryptedBlob,
6149 _In_ DWORD cbEncryptedBlob,
6150 _Out_writes_bytes_to_opt_(*pcbDecrypted, *pcbDecrypted) BYTE *pbDecrypted,
6151 _Inout_opt_ DWORD *pcbDecrypted,
6154
6156WINAPI
6158 _In_ DWORD dwMsgAndCertEncodingType,
6159 _In_opt_ HCRYPTPROV_LEGACY hCryptProv,
6161 _In_reads_bytes_(cbSignedBlob) const BYTE *pbSignedBlob,
6162 _In_ DWORD cbSignedBlob);
6163
6164BOOL
6165WINAPI
6167 _In_ DWORD dwMsgTypeFlags,
6170 _In_ DWORD dwSignerIndex,
6171 _In_reads_bytes_(cbEncodedBlob) const BYTE *pbEncodedBlob,
6172 _In_ DWORD cbEncodedBlob,
6173 _In_ DWORD dwPrevInnerContentType,
6174 _Out_opt_ DWORD *pdwMsgType,
6175 _Out_opt_ DWORD *pdwInnerContentType,
6176 _Out_writes_bytes_to_opt_(*pcbDecoded, *pcbDecoded) BYTE *pbDecoded,
6177 _Inout_opt_ DWORD *pcbDecoded,
6180
6181BOOL
6182WINAPI
6185 _In_ BOOL fDetachedHash,
6186 _In_ DWORD cToBeHashed,
6187 _In_reads_(cToBeHashed) const BYTE *rgpbToBeHashed[],
6188 _In_reads_(cToBeHashed) DWORD rgcbToBeHashed[],
6189 _Out_writes_bytes_to_opt_(*pcbHashedBlob, *pcbHashedBlob) BYTE *pbHashedBlob,
6190 _Inout_opt_ DWORD *pcbHashedBlob,
6191 _Out_writes_bytes_to_opt_(*pcbComputedHash, *pcbComputedHash) BYTE *pbComputedHash,
6192 _Inout_opt_ DWORD *pcbComputedHash);
6193
6194BOOL
6195WINAPI
6198 _In_reads_bytes_(cbHashedBlob) BYTE *pbHashedBlob,
6199 _In_ DWORD cbHashedBlob,
6200 _Out_writes_bytes_to_opt_(*pcbToBeHashed, *pcbToBeHashed) BYTE *pbToBeHashed,
6201 _Inout_opt_ DWORD *pcbToBeHashed,
6202 _Out_writes_bytes_to_opt_(*pcbComputedHash, *pcbComputedHash) BYTE *pbComputedHash,
6203 _Inout_opt_ DWORD *pcbComputedHash);
6204
6205BOOL
6206WINAPI
6209 _In_reads_bytes_(cbDetachedHashBlob) BYTE *pbDetachedHashBlob,
6210 _In_ DWORD cbDetachedHashBlob,
6211 _In_ DWORD cToBeHashed,
6212 _In_reads_(cToBeHashed) const BYTE *rgpbToBeHashed[],
6213 _In_reads_(cToBeHashed) DWORD rgcbToBeHashed[],
6214 _Out_writes_bytes_to_opt_(*pcbComputedHash, *pcbComputedHash) BYTE *pbComputedHash,
6215 _Inout_opt_ DWORD *pcbComputedHash);
6216
6217/* PFX functions */
6219WINAPI
6221 _In_ CRYPT_DATA_BLOB *pPFX,
6222 _In_ LPCWSTR szPassword,
6224
6226
6227BOOL
6228WINAPI
6230 _In_ CRYPT_DATA_BLOB *pPFX,
6231 _In_ LPCWSTR szPassword,
6233
6234BOOL
6235WINAPI
6237 _In_ HCERTSTORE hStore,
6239 _In_ LPCWSTR szPassword,
6240 _In_ void* pvPara,
6242
6243BOOL
6244WINAPI
6246 _In_ HCERTSTORE hStore,
6248 _In_ LPCWSTR szPassword,
6250
6252 DWORD dwFlags);
6253
6254/* cryptnet.dll functions */
6256
6257BOOL
6258WINAPI
6260 _In_ LPCSTR pszUrlOid,
6261 _In_ LPVOID pvPara,
6263 _Out_writes_bytes_to_opt_(*pcbUrlArray, *pcbUrlArray) PCRYPT_URL_ARRAY pUrlArray,
6264 _Inout_ DWORD* pcbUrlArray,
6265 _Out_writes_bytes_to_opt_(*pcbUrlInfo, *pcbUrlInfo) PCRYPT_URL_INFO pUrlInfo,
6266 _Inout_opt_ DWORD* pcbUrlInfo,
6268
6269_Success_(return != 0)
6270BOOL
6271WINAPI
6273 _In_ LPCSTR pszTimeValidOid,
6274 _In_ void *pvPara,
6275 _In_ PCCERT_CONTEXT pIssuer,
6276 _In_opt_ LPFILETIME pftValidFor,
6278 _In_ DWORD dwTimeout,
6279 _Outptr_opt_ void **ppvObject,
6280 _In_opt_ PCRYPT_CREDENTIALS pCredentials,
6281 _Inout_opt_ void *pvReserved);
6282
6283BOOL
6284WINAPI
6286 _In_ LPCSTR pszFlushTimeValidOid,
6287 _In_ void *pvPara,
6288 _In_ PCCERT_CONTEXT pIssuer,
6290 _Reserved_ void *pvReserved);
6291
6292BOOL
6293WINAPI
6296 _In_opt_ const void *pvArg,
6298 _Reserved_ void *pvReserved);
6299
6300BOOL
6301WINAPI
6304 _Reserved_ void *pvReserved);
6305
6306_Success_(return != 0)
6307BOOL
6308WINAPI
6310 _In_ LPCSTR pszUrl,
6311 _In_opt_ LPCSTR pszObjectOid,
6312 _In_ DWORD dwRetrievalFlags,
6313 _In_ DWORD dwTimeout,
6314 _Outptr_ LPVOID* ppvObject,
6315 _In_opt_ HCRYPTASYNC hAsyncRetrieve,
6316 _In_opt_ PCRYPT_CREDENTIALS pCredentials,
6317 _In_opt_ LPVOID pvVerify,
6319
6320_Success_(return != 0)
6321BOOL
6322WINAPI
6324 _In_ LPCWSTR pszUrl,
6325 _In_opt_ LPCSTR pszObjectOid,
6326 _In_ DWORD dwRetrievalFlags,
6327 _In_ DWORD dwTimeout,
6328 _Outptr_ LPVOID* ppvObject,
6329 _In_opt_ HCRYPTASYNC hAsyncRetrieve,
6330 _In_opt_ PCRYPT_CREDENTIALS pCredentials,
6331 _In_opt_ LPVOID pvVerify,
6333
6334#define CryptRetrieveObjectByUrl WINELIB_NAME_AW(CryptRetrieveObjectByUrl)
6335
6336/* Not found in crypt32.dll but in softpub.dll */
6337HRESULT
6338WINAPI
6340 _Out_writes_bytes_to_opt_(*pcbCertChains, *pcbCertChains) PCERT_CHAIN pCertChains,
6341 _Inout_ DWORD *pcbCertChains,
6342 _Out_ DWORD *pcCertChains,
6343 _In_reads_bytes_opt_(cbEncodedIssuerName) BYTE* pbEncodedIssuerName,
6344 _In_ DWORD cbEncodedIssuerName,
6345 _In_opt_ LPCWSTR pwszPurpose,
6346 _In_ DWORD dwKeySpec);
6347
6348#ifdef _MSC_VER
6349#pragma warning(pop)
6350#endif
6351#else
6352/* advapi32.dll */
6355#define CryptAcquireContext WINELIB_NAME_AW(CryptAcquireContext)
6368#define CryptEnumProviders WINELIB_NAME_AW(CryptEnumProviders)
6371#define CryptEnumProviderTypes WINELIB_NAME_AW(CryptEnumProviderTypes)
6379#define CryptGetDefaultProvider WINELIB_NAME_AW(CryptGetDefaultProvider)
6389#define CryptSetProvider WINELIB_NAME_AW(CryptSetProvider)
6392#define CryptSetProviderEx WINELIB_NAME_AW(CryptSetProviderEx)
6396#define CryptSignHash WINELIB_NAME_AW(CryptSignHash)
6399#define CryptVerifySignature WINELIB_NAME_AW(CryptVerifySignature)
6400
6401/* crypt32.dll functions */
6408
6410 DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString);
6412 DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString);
6413#define CryptBinaryToString WINELIB_NAME_AW(CryptBinaryToString)
6414
6416 DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary,
6417 DWORD *pdwSkip, DWORD *pdwFlags);
6419 DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary,
6420 DWORD *pdwSkip, DWORD *pdwFlags);
6421#define CryptStringToBinary WINELIB_NAME_AW(CryptStringToBinary)
6422
6425 LPVOID pvParam, PFN_CRYPT_ASYNC_PARAM_FREE_FUNC pfnFree);
6427 LPVOID *ppvParam, PFN_CRYPT_ASYNC_PARAM_FREE_FUNC *ppfnFree);
6429
6432WINCRYPT32API BOOL WINAPI CryptGetOIDFunctionValue(DWORD dwEncodingType, LPCSTR pszFuncName,
6433 LPCSTR pszOID, LPCWSTR szValueName, DWORD *pdwValueType,
6434 BYTE *pbValueData, DWORD *pcbValueData);
6435WINCRYPT32API BOOL WINAPI CryptSetOIDFunctionValue(DWORD dwEncodingType, LPCSTR pszFuncName,
6436 LPCSTR pszOID, LPCWSTR pwszValueName, DWORD dwValueType,
6437 const BYTE *pbValueData, DWORD cbValueData);
6441 LPCSTR pszOID, DWORD dwFlags, void *pvArg,
6442 PFN_CRYPT_ENUM_OID_FUNC pfnEnumOIDFunc);
6445 DWORD dwEncodingType, LPWSTR pwszDllList, DWORD *pcchDllList);
6447 DWORD dwEncodingType, LPCWSTR pwszDll, DWORD dwFlags, void **ppvFuncAddr,
6448 HCRYPTOIDFUNCADDR *phFuncAddr);
6450 DWORD dwEncodingType, LPCSTR pszOID, DWORD dwFlags, void **ppvFuncAddr,
6451 HCRYPTOIDFUNCADDR *phFuncAddr);
6453 DWORD dwFlags);
6455 DWORD dwEncodingType, LPCSTR pszFuncName, DWORD cFuncEntry,
6456 const CRYPT_OID_FUNC_ENTRY rgFuncEntry[], DWORD dwFlags);
6458 DWORD dwDefaultType, const void *pvDefaultPara, DWORD dwFlags,
6459 void *pvReserved, HCRYPTDEFAULTCONTEXT *phDefaultContext);
6461 DWORD dwFlags, void *pvReserved);
6462
6464 PFN_CRYPT_ENUM_OID_INFO pfnEnumOIDInfo);
6466 DWORD dwGroupId);
6469
6471
6474
6475/* cert store functions */
6476WINCRYPT32API HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwEncodingType,
6477 HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara);
6478
6480 LPCSTR szSubSystemProtocol);
6482 LPCWSTR szSubSystemProtocol);
6483#define CertOpenSystemStore WINELIB_NAME_AW(CertOpenSystemStore)
6484
6486 PCCERT_CONTEXT pPrev);
6487
6489 PCCRL_CONTEXT pPrev);
6490
6492 PCCTL_CONTEXT pPrev);
6493
6496
6497WINCRYPT32API BOOL WINAPI CertEnumSystemStore(DWORD dwFlags, void *pvSystemStoreLocationPara,
6498 void *pvArg, PFN_CERT_ENUM_SYSTEM_STORE pfnEnum);
6499
6502
6504
6505WINCRYPT32API BOOL WINAPI CertEnumPhysicalStore(const void *pvSystemStore, DWORD dwFlags,
6506 void *pvArg, PFN_CERT_ENUM_PHYSICAL_STORE pfnEnum);
6507
6509 LPCWSTR pwszStoreName, PCERT_PHYSICAL_STORE_INFO pStoreInfo, void *pvReserved);
6510
6512 LPCWSTR pwszStoreName);
6513
6514WINCRYPT32API BOOL WINAPI CertSaveStore(HCERTSTORE hCertStore, DWORD dwMsgAndCertEncodingType,
6515 DWORD dwSaveAs, DWORD dwSaveTo, void* pvSaveToPara, DWORD dwFlags);
6516
6518 HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority);
6519
6521 HCERTSTORE hSiblingStore);
6522
6524 HCERTCHAINENGINE *phChainEngine);
6525
6527
6529
6531 PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore,
6533 PCCERT_CHAIN_CONTEXT *ppChainContext);
6534
6536 PCCERT_CHAIN_CONTEXT pChainContext);
6537
6539
6541 DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType,
6542 const void *pvFindPara, PCCERT_CHAIN_CONTEXT pPrevChainContext);
6543
6545 PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara,
6546 PCERT_CHAIN_POLICY_STATUS pPolicyStatus);
6547
6549 DWORD dwPropId);
6550
6552 DWORD dwPropId, void *pvData, DWORD *pcbData);
6553
6555 DWORD dwPropId, DWORD dwFlags, const void *pvData);
6556
6558 DWORD dwPropId);
6559
6561 DWORD dwPropId, void *pvData, DWORD *pcbData);
6562
6564 DWORD dwPropId, DWORD dwFlags, const void *pvData);
6565
6567 DWORD dwPropId);
6568
6570 void **ppvNextSubject, PCRYPT_DER_BLOB pSubjectIdentifier,
6571 PCRYPT_DER_BLOB pEncodedAttributes);
6572
6574 DWORD dwPropId, void *pvData, DWORD *pcbData);
6575
6577 DWORD dwPropId, DWORD dwFlags, const void *pvData);
6578
6580 void *pvData, DWORD *pcbData);
6581
6583 DWORD dwFlags, const void *pvData);
6584
6586 DWORD dwCtrlType, void const *pvCtrlPara);
6587
6589
6591
6593
6595
6597
6599 PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition,
6600 PCCERT_CONTEXT *ppStoreContext);
6601
6603 PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition,
6604 PCCRL_CONTEXT *ppStoreContext );
6605
6607 PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition,
6608 PCCTL_CONTEXT *ppStoreContext );
6609
6611 PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition,
6612 PCCERT_CONTEXT *ppStoreContext);
6613
6615 PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition,
6616 PCCRL_CONTEXT *ppStoreContext);
6617
6619 PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition,
6620 PCCTL_CONTEXT *ppStoreContext);
6621
6623 DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded,
6624 DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext);
6625
6627 const BYTE *pbCertEncoded, DWORD cbCertEncoded);
6629 const BYTE *pbCertEncoded, DWORD cbCertEncoded);
6630#define CertAddEncodedCertificateToSystemStore \
6631 WINELIB_NAME_AW(CertAddEncodedCertificateToSystemStore)
6632
6634 DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded,
6635 DWORD dwAddDisposition, PCCRL_CONTEXT *ppCrlContext);
6636
6638 DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded,
6639 DWORD dwAddDisposition, PCCTL_CONTEXT *ppCtlContext);
6640
6642 const BYTE *pbElement, DWORD cbElement, DWORD dwAddDisposition, DWORD dwFlags,
6643 DWORD dwContextTypeFlags, DWORD *pdwContentType, const void **ppvContext);
6644
6646 PCERT_INFO pCertId1, PCERT_INFO pCertId2);
6648 PCERT_NAME_BLOB pCertName1, PCERT_NAME_BLOB pCertName2);
6650 PCRYPT_INTEGER_BLOB pInt2);
6652 PCERT_PUBLIC_KEY_INFO pPublicKey1, PCERT_PUBLIC_KEY_INFO pPublicKey2);
6654 PCERT_PUBLIC_KEY_INFO pPublicKey);
6655
6656WINCRYPT32API const void * WINAPI CertCreateContext(DWORD dwContextType, DWORD dwEncodingType,
6657 const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags,
6658 PCERT_CREATE_CONTEXT_PARA pCreatePara);
6659
6661 const BYTE *pbCertEncoded, DWORD cbCertEncoded);
6662
6664 const BYTE* pbCrlEncoded, DWORD cbCrlEncoded);
6665
6667 const BYTE *pbCtlEncoded, DWORD cbCtlEncoded);
6668
6670 PCERT_NAME_BLOB pSubjectIssuerBlob, DWORD dwFlags,
6671 PCRYPT_KEY_PROV_INFO pKeyProvInfo,
6672 PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, PSYSTEMTIME pStartTime,
6673 PSYSTEMTIME pEndTime, PCERT_EXTENSIONS pExtensions);
6674
6676
6678
6680
6682 PCCERT_CONTEXT pCertContext);
6683
6685
6687
6689 DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType,
6690 const void *pvFindPara, PCCERT_CONTEXT pPrevCertContext );
6691
6693 DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType,
6694 const void *pvFindPara, PCCRL_CONTEXT pPrevCrlContext);
6695
6697 DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType,
6698 const void *pvFindPara, PCCTL_CONTEXT pPrevCtlContext);
6699
6701 PCCERT_CONTEXT pSubjectContext, PCCERT_CONTEXT pPrevIssuerContext,
6702 DWORD *pdwFlags);
6703
6705 DWORD dwCertEncodingType, PCERT_INFO pCertId);
6706
6708 PCCERT_CONTEXT pIssuerContext, PCCRL_CONTEXT pPrevCrlContext, DWORD *pdwFlags);
6709
6711 DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement);
6712
6714 DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement);
6715
6717 DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement);
6718
6720 PCERT_INFO pCertInfo, BYTE *pbKeyUsage, DWORD cbKeyUsage);
6721
6723 PCERT_ENHKEY_USAGE pUsage, DWORD *pcbUsage);
6725 PCERT_ENHKEY_USAGE pUsage);
6727 LPCSTR pszUsageIdentifier);
6729 LPCSTR pszUsageIdentifier);
6731 int *cNumOIDs, LPSTR *rghOIDs, DWORD *pcbOIDs);
6732
6733WINCRYPT32API BOOL WINAPI CryptEncodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType,
6734 const void *pvStructInfo, BYTE *pbEncoded, DWORD *pcbEncoded);
6735WINCRYPT32API BOOL WINAPI CryptEncodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType,
6736 const void *pvStructInfo, DWORD dwFlags, PCRYPT_ENCODE_PARA pEncodePara,
6737 void *pvEncoded, DWORD *pcbEncoded);
6738
6739WINCRYPT32API BOOL WINAPI CryptDecodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType,
6740 const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, void *pvStructInfo,
6741 DWORD *pcbStructInfo);
6742WINCRYPT32API BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType,
6743 const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags,
6744 PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo);
6745
6746WINCRYPT32API BOOL WINAPI CryptFormatObject(DWORD dwCertEncodingType, DWORD dwFormatType,
6747 DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType,
6748 const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat);
6749
6751 DWORD dwFlags, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash,
6752 DWORD *pcbComputedHash);
6753
6755 void *pvReserved, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash,
6756 DWORD *pcbComputedHash);
6757
6759 DWORD dwFlags, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo,
6760 BYTE *pbComputedHash, DWORD *pcbComputedHash);
6761
6763 const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash,
6764 DWORD *pcbComputedHash);
6765
6766WINCRYPT32API BOOL WINAPI CryptQueryObject(DWORD dwObjectType, const void* pvObject,
6767 DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags,
6768 DWORD dwFlags, DWORD* pdwMsgAndCertEncodingType, DWORD* pdwContentType,
6769 DWORD* pdwFormatType, HCERTSTORE* phCertStore, HCRYPTMSG* phMsg,
6770 const void** ppvContext);
6771
6773 DWORD dwCertEncodingType, const BYTE *pbEncodedToBeSigned,
6774 DWORD cbEncodedToBeSigned, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
6775 const void *pvHashAuxInfo, BYTE *pbSignature, DWORD *pcbSignature);
6776
6778 DWORD dwKeySpec, DWORD dwCertEncodingType, LPCSTR lpszStructType,
6779 const void *pvStructInfo, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
6780 const void *pvHashAuxInfo, BYTE *pbEncoded, DWORD *pcbEncoded);
6781
6783 DWORD dwCertEncodingType, const BYTE *pbEncoded, DWORD cbEncoded,
6784 PCERT_PUBLIC_KEY_INFO pPublicKey);
6785
6787 DWORD dwCertEncodingType, DWORD dwSubjectType, void *pvSubject,
6788 DWORD dwIssuerType, void *pvIssuer, DWORD dwFlags, void *pvReserved);
6789
6791 CRYPT_ATTRIBUTE rgAttr[]);
6793 CERT_EXTENSION rgExtensions[]);
6795
6797 PCCTL_CONTEXT pCtlContext, DWORD dwFlags, void *pvReserved,
6798 PCRYPT_DER_BLOB pEncodedAttributes);
6799
6801 DWORD dwFlags, PCERT_NAME_BLOB pCertName, PCERT_RDN pRDN);
6802
6804 PCCRL_CONTEXT pCrl, DWORD dwFlags, void *pvReserved);
6806 PCCRL_CONTEXT pCrlContext, DWORD dwFlags, void *pvReserved,
6807 PCRL_ENTRY *ppCrlEntry);
6809 PCERT_INFO pCertId, DWORD cCrlInfo, PCRL_INFO rgpCrlInfo[]);
6810
6812 PCCERT_CONTEXT pIssuer, DWORD *pdwFlags);
6813
6815 PCRL_INFO pCrlInfo);
6817 PCERT_INFO pCertInfo);
6819 PCERT_INFO pIssuerInfo);
6820
6821WINCRYPT32API BOOL WINAPI CertVerifyCTLUsage(DWORD dwEncodingType, DWORD dwSubjectType,
6822 void *pvSubject, PCTL_USAGE pSubjectUsage, DWORD dwFlags,
6823 PCTL_VERIFY_USAGE_PARA pVerifyUsagePara,
6824 PCTL_VERIFY_USAGE_STATUS pVerifyUsageStatus);
6825
6826WINCRYPT32API BOOL WINAPI CertVerifyRevocation(DWORD dwEncodingType, DWORD dwRevType,
6827 DWORD cContext, PVOID rgpvContext[], DWORD dwFlags,
6828 PCERT_REVOCATION_PARA pRevPara, PCERT_REVOCATION_STATUS pRevStatus);
6829
6831 DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo);
6833 DWORD dwCertEncodingType, LPSTR pszPublicKeyObjId, DWORD dwFlags,
6834 void *pvAuxInfo, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo);
6836 DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, HCRYPTKEY *phKey);
6838 DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, ALG_ID aiKeyAlg,
6839 DWORD dwFlags, void *pvAuxInfo, HCRYPTKEY *phKey);
6841 PCERT_PUBLIC_KEY_INFO pInfo, DWORD dwFlags, void *pvAuxInfo,
6842 BCRYPT_KEY_HANDLE *phKey);
6843
6845 DWORD dwFlags, void *pvReserved, HCRYPTPROV_OR_NCRYPT_KEY_HANDLE *phCryptProv, DWORD *pdwKeySpec,
6846 BOOL *pfCallerFreeProv);
6847
6849 DWORD dwFlags, void *pvReserved);
6850
6852 DATA_BLOB* pOptionalEntropy, PVOID pvReserved,
6853 CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, DWORD dwFlags, DATA_BLOB* pDataOut );
6854
6856 DATA_BLOB* pOptionalEntropy, PVOID pvReserved,
6857 CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, DWORD dwFlags, DATA_BLOB* pDataOut );
6858
6861
6863 DWORD dwFlags, void *pvTypePara, LPSTR pszNameString, DWORD cchNameString);
6865 DWORD dwFlags, void *pvTypePara, LPWSTR pszNameString, DWORD cchNameString);
6866#define CertGetNameString WINELIB_NAME_AW(CertGetNameString)
6867
6869 LPSTR psz, DWORD csz);
6871 LPWSTR psz, DWORD csz);
6872#define CertRDNValueToStr WINELIB_NAME_AW(CertRDNValueToStr)
6873
6875 DWORD dwStrType, LPSTR psz, DWORD csz);
6877 DWORD dwStrType, LPWSTR psz, DWORD csz);
6878#define CertNameToStr WINELIB_NAME_AW(CertNameToStr)
6879
6882 LPCSTR *ppszError);
6886#define CertStrToName WINELIB_NAME_AW(CertStrToName)
6887
6889 DWORD dwFlags, DWORD dwMsgType, const void *pvMsgEncodeInfo,
6890 LPSTR pszInnerContentObjID, DWORD cbData);
6891
6893
6895 DWORD dwCtrlType, const void *pvCtrlPara);
6896
6898 DWORD dwCountersigners, PCMSG_SIGNER_ENCODE_INFO rgCountersigners);
6899
6901 DWORD cbSignerInfo, DWORD cCountersigners,
6902 PCMSG_SIGNER_ENCODE_INFO rgCountersigners, PBYTE pbCountersignature,
6903 PDWORD pcbCountersignature);
6904
6906
6908 PCTL_INFO pCtlInfo, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags,
6910
6912 HCERTSTORE *rghSignerStore, DWORD dwFlags, PCCERT_CONTEXT *ppSigner,
6913 DWORD *pdwSignerIndex);
6914
6916 DWORD dwIndex, void *pvData, DWORD *pcbData);
6917
6919 DWORD dwMsgType, HCRYPTPROV_LEGACY hCryptProv, PCERT_INFO pRecipientInfo,
6920 PCMSG_STREAM_INFO pStreamInfo);
6921
6923 DWORD dwMsgType, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID,
6924 PCMSG_STREAM_INFO pStreamInfo);
6925
6926WINCRYPT32API BOOL WINAPI CryptMsgSignCTL(DWORD dwMsgEncodingType, BYTE *pbCtlContent,
6927 DWORD cbCtlContent, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags,
6929
6930WINCRYPT32API BOOL WINAPI CryptMsgUpdate(HCRYPTMSG hCryptMsg, const BYTE *pbData,
6931 DWORD cbData, BOOL fFinal);
6932
6934 DWORD dwEncodingType, PBYTE pbSignerInfo, DWORD cbSignerInfo,
6935 PBYTE pbSignerInfoCountersignature, DWORD cbSignerInfoCountersignature,
6936 PCERT_INFO pciCountersigner);
6937
6939 DWORD dwEncodingType, PBYTE pbSignerInfo, DWORD cbSignerInfo,
6940 PBYTE pbSignerInfoCountersignature, DWORD cbSignerInfoCountersignature,
6941 DWORD dwSignerType, void *pvSigner, DWORD dwFlags, void *pvReserved);
6942
6944 BOOL fDetachedSignature, DWORD cToBeSigned, const BYTE *rgpbToBeSigned[],
6945 DWORD rgcbToBeSigned[], BYTE *pbSignedBlob, DWORD *pcbSignedBlob);
6947 const BYTE *pbToBeSigned, DWORD cbToBeSigned, BYTE *pbSignedBlob,
6948 DWORD *pcbSignedBlob);
6949
6951 DWORD dwSignerIndex, const BYTE* pbSignedBlob, DWORD cbSignedBlob,
6952 BYTE* pbDecoded, DWORD* pcbDecoded, PCCERT_CONTEXT* ppSignerCert);
6955 PCERT_PUBLIC_KEY_INFO pPublicKeyInfo, const BYTE *pbSignedBlob,
6956 DWORD cbSignedBlob, BYTE *pbDecoded, DWORD *pcbDecoded);
6957
6959 PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex,
6960 const BYTE *pbDetachedSignBlob, DWORD cbDetachedSignBlob, DWORD cToBeSigned,
6961 const BYTE *rgpbToBeSigned[], DWORD rgcbToBeSigned[],
6962 PCCERT_CONTEXT *ppSignerCert);
6964 const BYTE *pbSignedBlob, DWORD cbSignedBlob);
6965
6967 DWORD cRecipientCert, PCCERT_CONTEXT rgpRecipientCert[],
6968 const BYTE *pbToBeEncrypted, DWORD cbToBeEncrypted, BYTE *pbEncryptedBlob,
6969 DWORD *pcbEncryptedBlob);
6971 const BYTE *pbEncryptedBlob, DWORD cbEncryptedBlob, BYTE *pbDecrypted,
6972 DWORD *pcbDecrypted, PCCERT_CONTEXT *ppXchgCert);
6973
6975 PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, DWORD cRecipientCert,
6976 PCCERT_CONTEXT rgpRecipientCert[], const BYTE *pbToBeSignedAndEncrypted,
6977 DWORD cbToBeSignedAndEncrypted, BYTE *pbSignedAndEncryptedBlob,
6978 DWORD *pcbSignedAndEncryptedBlob);
6980 PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara,
6981 PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex,
6982 const BYTE *pbEncryptedBlob, DWORD cbEncryptedBlob, BYTE *pbDecrypted,
6983 DWORD *pcbDecrypted, PCCERT_CONTEXT *ppXchgCert, PCCERT_CONTEXT *ppSignerCert);
6984
6986 HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const BYTE *pbSignedBlob,
6987 DWORD cbSignedBlob);
6988
6990 PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara,
6991 PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex,
6992 const BYTE *pbEncodedBlob, DWORD cbEncodedBlob, DWORD dwPrevInnerContentType,
6993 DWORD *pdwMsgType, DWORD *pdwInnerContentType, BYTE *pbDecoded,
6994 DWORD *pcbDecoded, PCCERT_CONTEXT *ppXchgCert, PCCERT_CONTEXT *ppSignerCert);
6995
6997 BOOL fDetachedHash, DWORD cToBeHashed, const BYTE *rgpbToBeHashed[],
6998 DWORD rgcbToBeHashed[], BYTE *pbHashedBlob, DWORD *pcbHashedBlob,
6999 BYTE *pbComputedHash, DWORD *pcbComputedHash);
7001 BYTE *pbHashedBlob, DWORD cbHashedBlob, BYTE *pbToBeHashed,
7002 DWORD *pcbToBeHashed, BYTE *pbComputedHash, DWORD *pcbComputedHash);
7004 BYTE *pbDetachedHashBlob, DWORD cbDetachedHashBlob, DWORD cToBeHashed,
7005 const BYTE *rgpbToBeHashed[], DWORD rgcbToBeHashed[], BYTE *pbComputedHash,
7006 DWORD *pcbComputedHash);
7007
7008/* PFX functions */
7010 DWORD dwFlags);
7013 DWORD dwFlags);
7015 LPCWSTR szPassword, void *pvReserved, DWORD dwFlags);
7017 LPCWSTR szPassword, DWORD dwFlags);
7018
7019/* cryptnet.dll functions */
7021
7023 PCRYPT_URL_ARRAY pUrlArray, DWORD *pcbUrlArray, PCRYPT_URL_INFO pUrlInfo,
7024 DWORD *pcbUrlInfo, LPVOID pvReserved);
7025
7026BOOL WINAPI CryptGetTimeValidObject(LPCSTR pszTimeValidOid, void *pvPara,
7027 PCCERT_CONTEXT pIssuer, LPFILETIME pftValidFor, DWORD dwFlags, DWORD dwTimeout,
7028 void **ppvObject, PCRYPT_CREDENTIALS pCredentials, void *pvReserved);
7029
7030BOOL WINAPI CryptFlushTimeValidObject(LPCSTR pszFlushTimeValidOid, void *pvPara,
7031 PCCERT_CONTEXT pIssuer, DWORD dwFlags, void *pvReserved);
7032
7034 const void *pvArg, DWORD dwFlags, void *pvReserved);
7035
7037
7039 DWORD dwRetrievalFlags, DWORD dwTimeout, LPVOID *ppvObject,
7040 HCRYPTASYNC hAsyncRetrieve, PCRYPT_CREDENTIALS pCredentials, LPVOID pvVerify,
7041 PCRYPT_RETRIEVE_AUX_INFO pAuxInfo);
7043 DWORD dwRetrievalFlags, DWORD dwTimeout, LPVOID *ppvObject,
7044 HCRYPTASYNC hAsyncRetrieve, PCRYPT_CREDENTIALS pCredentials, LPVOID pvVerify,
7045 PCRYPT_RETRIEVE_AUX_INFO pAuxInfo);
7046#define CryptRetrieveObjectByUrl WINELIB_NAME_AW(CryptRetrieveObjectByUrl)
7047
7048/* Not found in crypt32.dll but in softpub.dll */
7049HRESULT WINAPI FindCertsByIssuer(PCERT_CHAIN pCertChains, DWORD *pcbCertChains,
7050 DWORD *pcCertChains, BYTE* pbEncodedIssuerName, DWORD cbEncodedIssuerName,
7051 LPCWSTR pwszPurpose, DWORD dwKeySpec);
7052#endif
7053
7054#ifdef __cplusplus
7055}
7056#endif
7057
7058#endif
#define VOID
Definition: acefi.h:82
return
Definition: dirsup.c:529
static const WCHAR szDescription[]
Definition: provider.c:55
HMODULE hModule
Definition: animate.c:44
int(* FARPROC)()
Definition: compat.h:36
r reserved
Definition: btrfs.c:3006
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
FxAutoRegKey hKey
FxObject * pObject
PWCHAR pValue
GLbitfield flags
Definition: glext.h:7161
LPCWSTR LPCWSTR LPCWSTR DWORD dwFlags
Definition: env.c:37
static LPSTR pName
Definition: security.c:75
static LPCSTR DWORD void BYTE * pbEncoded
Definition: str.c:196
static LPCSTR pszX500
Definition: str.c:196
static LPCSTR DWORD void BYTE DWORD LPCSTR * ppszError
Definition: str.c:197
static LPCSTR DWORD void * pvReserved
Definition: str.c:196
static LPCSTR DWORD void BYTE DWORD * pcbEncoded
Definition: str.c:197
static LPCSTR DWORD dwStrType
Definition: str.c:196
static HMODULE MODULEINFO DWORD cb
Definition: module.c:33
static HCRYPTPROV hProv
Definition: rsaenh.c:32
#define _Out_writes_to_opt_(s, c)
Definition: no_sal2.h:238
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _In_reads_(s)
Definition: no_sal2.h:168
#define _Out_opt_
Definition: no_sal2.h:214
#define _Inout_
Definition: no_sal2.h:162
#define _Success_(c)
Definition: no_sal2.h:84
#define _Outptr_result_maybenull_
Definition: no_sal2.h:266
#define _At_(t, a)
Definition: no_sal2.h:40
#define _Outptr_opt_
Definition: no_sal2.h:264
#define _Outptr_
Definition: no_sal2.h:262
#define _Post_
Definition: no_sal2.h:48
#define _Outptr_opt_result_maybenull_
Definition: no_sal2.h:268
#define _Inout_opt_
Definition: no_sal2.h:216
#define _Must_inspect_result_
Definition: no_sal2.h:62
#define _Out_
Definition: no_sal2.h:160
#define _In_reads_opt_(s)
Definition: no_sal2.h:222
#define _In_
Definition: no_sal2.h:158
#define _Out_writes_bytes_all_(s)
Definition: no_sal2.h:194
#define _In_opt_
Definition: no_sal2.h:212
#define _Out_writes_bytes_to_opt_(s, c)
Definition: no_sal2.h:240
#define _Inout_updates_bytes_to_opt_(s, c)
Definition: no_sal2.h:248
#define _Reserved_
Definition: no_sal2.h:504
#define _NullNull_terminated_
Definition: no_sal2.h:78
#define _Inout_updates_bytes_to_(s, c)
Definition: no_sal2.h:198
#define _Inout_updates_bytes_(s)
Definition: no_sal2.h:184
#define _In_reads_bytes_opt_(s)
Definition: no_sal2.h:224
#define BOOL
Definition: nt_native.h:43
#define LPVOID
Definition: nt_native.h:45
#define CONST
Definition: pedump.c:81
BYTE * PBYTE
Definition: pedump.c:66
DWORD * PDWORD
Definition: pedump.c:68
long LONG
Definition: pedump.c:60
#define __callback
Definition: sal_old.h:112
CERT_ALT_NAME_ENTRY AccessLocation
Definition: wincrypt.h:479
Definition: wincrypt.h:341
PCERT_OTHER_NAME pOtherName
Definition: wincrypt.h:344
LPWSTR pwszRfc822Name
Definition: wincrypt.h:345
union _CERT_ALT_NAME_ENTRY::@3479 DUMMYUNIONNAME
LPWSTR pwszURL
Definition: wincrypt.h:348
LPSTR pszRegisteredID
Definition: wincrypt.h:350
DWORD dwAltNameChoice
Definition: wincrypt.h:342
CRYPT_DATA_BLOB IPAddress
Definition: wincrypt.h:349
LPWSTR pwszDNSName
Definition: wincrypt.h:346
CERT_NAME_BLOB DirectoryName
Definition: wincrypt.h:347
PCERT_ALT_NAME_ENTRY rgAltEntry
Definition: wincrypt.h:366
PCERT_ACCESS_DESCRIPTION rgAccDescr
Definition: wincrypt.h:484
CRYPT_DATA_BLOB KeyId
Definition: wincrypt.h:472
CRYPT_INTEGER_BLOB AuthorityCertSerialNumber
Definition: wincrypt.h:474
CERT_ALT_NAME_INFO AuthorityCertIssuer
Definition: wincrypt.h:473
CRYPT_DATA_BLOB KeyId
Definition: wincrypt.h:291
CERT_NAME_BLOB CertIssuer
Definition: wincrypt.h:292
CRYPT_INTEGER_BLOB CertSerialNumber
Definition: wincrypt.h:293
CERT_NAME_BLOB * rgSubtreesConstraint
Definition: wincrypt.h:384
CRYPT_BIT_BLOB SubjectType
Definition: wincrypt.h:380
DWORD dwRevocationFreshnessTime
Definition: wincrypt.h:1057
PCERT_SIMPLE_CHAIN * rgpChain
Definition: wincrypt.h:1053
BOOL fHasRevocationFreshnessTime
Definition: wincrypt.h:1056
DWORD cLowerQualityChainContext
Definition: wincrypt.h:1054
CERT_TRUST_STATUS TrustStatus
Definition: wincrypt.h:1051
PCCERT_CHAIN_CONTEXT * rgpLowerQualityChainContext
Definition: wincrypt.h:1055
PCERT_REVOCATION_INFO pRevocationInfo
Definition: wincrypt.h:1030
PCERT_ENHKEY_USAGE pApplicationUsage
Definition: wincrypt.h:1032
PCCERT_CONTEXT pCertContext
Definition: wincrypt.h:1028
LPCWSTR pwszExtendedErrorInfo
Definition: wincrypt.h:1033
PCERT_ENHKEY_USAGE pIssuanceUsage
Definition: wincrypt.h:1031
CERT_TRUST_STATUS TrustStatus
Definition: wincrypt.h:1029
HCERTSTORE hRestrictedTrust
Definition: wincrypt.h:3787
HCERTSTORE hRestrictedRoot
Definition: wincrypt.h:3786
HCERTSTORE hExclusiveRootTrustedPeople
Definition: wincrypt.h:3796
HCERTSTORE hRestrictedOther
Definition: wincrypt.h:3788
HCERTSTORE * rghAdditionalStore
Definition: wincrypt.h:3790
CERT_USAGE_MATCH RequestedUsage
Definition: wincrypt.h:1183
CRYPT_KEY_PROV_INFO keyLocatorInfo
Definition: wincrypt.h:963
DWORD cCerts
Definition: wincrypt.h:961
PCERT_BLOB certs
Definition: wincrypt.h:962
DWORD dwCertEncodingType
Definition: wincrypt.h:488
HCERTSTORE hCertStore
Definition: wincrypt.h:492
PCERT_INFO pCertInfo
Definition: wincrypt.h:491
BYTE * pbCertEncoded
Definition: wincrypt.h:489
DWORD cbCertEncoded
Definition: wincrypt.h:490
PFN_CRYPT_FREE pfnFree
Definition: wincrypt.h:1564
PCCERT_CONTEXT pCertContext
Definition: wincrypt.h:1915
PCCRL_CONTEXT pCrlContext
Definition: wincrypt.h:1916
CRYPT_UINT_BLOB p
Definition: wincrypt.h:759
CRYPT_UINT_BLOB g
Definition: wincrypt.h:760
CRYPT_UINT_BLOB p
Definition: wincrypt.h:747
CRYPT_UINT_BLOB q
Definition: wincrypt.h:748
CRYPT_UINT_BLOB g
Definition: wincrypt.h:749
CRYPT_UINT_BLOB s
Definition: wincrypt.h:309
CRYPT_UINT_BLOB r
Definition: wincrypt.h:308
CRYPT_DATA_BLOB EncryptedPrivateKey
Definition: wincrypt.h:287
CRYPT_ALGORITHM_IDENTIFIER EncryptionAlgorithm
Definition: wincrypt.h:286
DWORD cExtension
Definition: wincrypt.h:245
PCERT_EXTENSION rgExtension
Definition: wincrypt.h:246
LPSTR pszObjId
Definition: wincrypt.h:239
CRYPT_OBJID_BLOB Value
Definition: wincrypt.h:241
unsigned char SerialNumber[8]
Definition: wincrypt.h:191
unsigned char CertLabel[36]
Definition: wincrypt.h:193
CERT_ALT_NAME_ENTRY Base
Definition: wincrypt.h:584
CRYPT_HASH_BLOB KeyId
Definition: wincrypt.h:3833
CERT_ISSUER_SERIAL_NUMBER IssuerSerialNumber
Definition: wincrypt.h:3832
CRYPT_HASH_BLOB HashId
Definition: wincrypt.h:3834
DWORD dwIdChoice
Definition: wincrypt.h:3830
union _CERT_ID::@3487 DUMMYUNIONNAME
PCERT_EXTENSION rgExtension
Definition: wincrypt.h:261
CERT_NAME_BLOB Subject
Definition: wincrypt.h:256
CRYPT_BIT_BLOB SubjectUniqueId
Definition: wincrypt.h:259
CERT_NAME_BLOB Issuer
Definition: wincrypt.h:253
CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo
Definition: wincrypt.h:257
DWORD dwVersion
Definition: wincrypt.h:250
CRYPT_INTEGER_BLOB SerialNumber
Definition: wincrypt.h:251
FILETIME NotBefore
Definition: wincrypt.h:254
CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm
Definition: wincrypt.h:252
DWORD cExtension
Definition: wincrypt.h:260
FILETIME NotAfter
Definition: wincrypt.h:255
CRYPT_BIT_BLOB IssuerUniqueId
Definition: wincrypt.h:258
CERT_NAME_BLOB Issuer
Definition: wincrypt.h:3824
CRYPT_INTEGER_BLOB SerialNumber
Definition: wincrypt.h:3825
CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo
Definition: wincrypt.h:625
PCERT_PRIVATE_KEY_VALIDITY pPrivateKeyUsagePeriod
Definition: wincrypt.h:304
CRYPT_DATA_BLOB KeyId
Definition: wincrypt.h:302
CRYPT_BIT_BLOB IntendedKeyUsage
Definition: wincrypt.h:303
HCRYPTPROV hCryptProv
Definition: wincrypt.h:229
CRYPT_BIT_BLOB RestrictedKeyUsage
Definition: wincrypt.h:333
PCERT_POLICY_ID rgCertPolicyId
Definition: wincrypt.h:332
PCERT_GENERAL_SUBTREE rgPermittedSubtree
Definition: wincrypt.h:592
PCERT_GENERAL_SUBTREE rgExcludedSubtree
Definition: wincrypt.h:594
PCERT_RDN rgRDN
Definition: wincrypt.h:277
DWORD dwValueType
Definition: wincrypt.h:281
CERT_RDN_VALUE_BLOB Value
Definition: wincrypt.h:282
CRYPT_OBJID_BLOB Value
Definition: wincrypt.h:338
CERT_BLOB Forward
Definition: wincrypt.h:571
CERT_BLOB Reverse
Definition: wincrypt.h:572
CRYPT_DATA_BLOB OpenParameters
Definition: wincrypt.h:1202
CERT_POLICY_INFO * rgPolicyInfo
Definition: wincrypt.h:409
DWORD cCertPolicyElementId
Definition: wincrypt.h:326
LPSTR * rgbszCertPolicyElementId
Definition: wincrypt.h:327
CERT_POLICY_QUALIFIER_INFO * rgPolicyQualifier
Definition: wincrypt.h:404
LPSTR pszPolicyIdentifier
Definition: wincrypt.h:402
DWORD cPolicyQualifier
Definition: wincrypt.h:403
PCERT_POLICY_MAPPING rgPolicyMapping
Definition: wincrypt.h:445
LPSTR pszIssuerDomainPolicy
Definition: wincrypt.h:439
LPSTR pszSubjectDomainPolicy
Definition: wincrypt.h:440
CRYPT_OBJID_BLOB Qualifier
Definition: wincrypt.h:398
CERT_POLICY_QUALIFIER_NOTICE_REFERENCE * pNoticeReference
Definition: wincrypt.h:420
CRYPT_ALGORITHM_IDENTIFIER Algorithm
Definition: wincrypt.h:825
CRYPT_DER_BLOB PrivateKey
Definition: wincrypt.h:826
PCRYPT_ATTRIBUTES pAttributes
Definition: wincrypt.h:827
CRYPT_BIT_BLOB PublicKey
Definition: wincrypt.h:235
CRYPT_ALGORITHM_IDENTIFIER Algorithm
Definition: wincrypt.h:234
LPSTR pszObjId
Definition: wincrypt.h:265
DWORD dwValueType
Definition: wincrypt.h:266
CERT_RDN_VALUE_BLOB Value
Definition: wincrypt.h:267
DWORD cRDNAttr
Definition: wincrypt.h:271
PCERT_RDN_ATTR rgRDNAttr
Definition: wincrypt.h:272
PCRYPT_ATTRIBUTE rgAttribute
Definition: wincrypt.h:620
CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo
Definition: wincrypt.h:618
CERT_NAME_BLOB Subject
Definition: wincrypt.h:617
PCCRL_CONTEXT pBaseCrlContext
Definition: wincrypt.h:898
PCCRL_CONTEXT pDeltaCrlContext
Definition: wincrypt.h:899
PCERT_REVOCATION_CRL_INFO pCrlInfo
Definition: wincrypt.h:911
LPVOID pvOidSpecificInfo
Definition: wincrypt.h:908
LPFILETIME pftTimeToUse
Definition: wincrypt.h:920
HCERTSTORE hCrlStore
Definition: wincrypt.h:919
PCCERT_CONTEXT pIssuerCert
Definition: wincrypt.h:916
HCERTSTORE * rgCertStore
Definition: wincrypt.h:918
CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm
Definition: wincrypt.h:631
CRYPT_BIT_BLOB Signature
Definition: wincrypt.h:632
CRYPT_DER_BLOB ToBeSigned
Definition: wincrypt.h:630
BOOL fHasRevocationFreshnessTime
Definition: wincrypt.h:1042
DWORD dwRevocationFreshnessTime
Definition: wincrypt.h:1043
CERT_TRUST_STATUS TrustStatus
Definition: wincrypt.h:1038
PCERT_CHAIN_ELEMENT * rgpElement
Definition: wincrypt.h:1040
PCERT_TRUST_LIST_INFO pTrustListInfo
Definition: wincrypt.h:1041
void ** rgpvStoreProvFunc
Definition: wincrypt.h:1275
HCRYPTOIDFUNCADDR hStoreProvFuncAddr2
Definition: wincrypt.h:1278
HCERTSTOREPROV hStoreProv
Definition: wincrypt.h:1276
CERT_STRONG_SIGN_SERIALIZED_INFO * pSerializedInfo
Definition: wincrypt.h:4257
union _CERT_STRONG_SIGN_PARA::@3493 DUMMYUNIONNAME
union _CERT_SYSTEM_STORE_RELOCATE_PARA::@3485 DUMMYUNIONNAME2
union _CERT_SYSTEM_STORE_RELOCATE_PARA::@3484 DUMMYUNIONNAME
PCCTL_CONTEXT pCtlContext
Definition: wincrypt.h:978
PCTL_ENTRY pCtlEntry
Definition: wincrypt.h:977
CERT_ENHKEY_USAGE Usage
Definition: wincrypt.h:1161
CRYPT_UINT_BLOB j
Definition: wincrypt.h:772
PCERT_X942_DH_VALIDATION_PARAMS pValidationParams
Definition: wincrypt.h:773
CRYPT_UINT_BLOB g
Definition: wincrypt.h:770
CRYPT_UINT_BLOB q
Definition: wincrypt.h:771
CRYPT_UINT_BLOB p
Definition: wincrypt.h:769
PCMSG_KEY_TRANS_RECIPIENT_INFO pKeyTrans
Definition: wincrypt.h:4198
union _CMSG_CMS_RECIPIENT_INFO::@3492 DUMMYUNIONNAME
PCMSG_KEY_AGREE_RECIPIENT_INFO pKeyAgree
Definition: wincrypt.h:4199
PCMSG_MAIL_LIST_RECIPIENT_INFO pMailList
Definition: wincrypt.h:4200
CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm
Definition: wincrypt.h:4130
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
Definition: wincrypt.h:4129
CRYPT_DATA_BLOB EncryptedHash
Definition: wincrypt.h:4131
CRYPT_ATTRIBUTES UnauthAttrs
Definition: wincrypt.h:4133
CRYPT_ATTRIBUTES AuthAttrs
Definition: wincrypt.h:4132
PFN_CMSG_ALLOC pfnAlloc
Definition: wincrypt.h:4223
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm
Definition: wincrypt.h:4219
PCMSG_RECIPIENT_ENCODE_INFO rgCmsRecipients
Definition: wincrypt.h:4222
PCMSG_KEY_TRANS_RECIPIENT_INFO pKeyTrans
Definition: wincrypt.h:4242
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm
Definition: wincrypt.h:4021
HCRYPTPROV_LEGACY hCryptProv
Definition: wincrypt.h:3984
PCERT_INFO * rgpRecipientCert
Definition: wincrypt.h:3988
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm
Definition: wincrypt.h:3985
HCRYPTPROV_LEGACY hCryptProv
Definition: wincrypt.h:4013
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
Definition: wincrypt.h:4014
CRYPT_ALGORITHM_IDENTIFIER KeyWrapAlgorithm
Definition: wincrypt.h:3932
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm
Definition: wincrypt.h:3930
PCRYPT_ALGORITHM_IDENTIFIER pEphemeralAlgorithm
Definition: wincrypt.h:3938
PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO * rgpRecipientEncryptedKeys
Definition: wincrypt.h:3943
union _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO::@3488 DUMMYUNIONNAME
union _CMSG_KEY_AGREE_RECIPIENT_INFO::@3491 DUMMYUNIONNAME
PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO * rgpRecipientEncryptedKeys
Definition: wincrypt.h:4180
CERT_PUBLIC_KEY_INFO OriginatorPublicKeyInfo
Definition: wincrypt.h:4176
CRYPT_ALGORITHM_IDENTIFIER UserKeyingMaterial
Definition: wincrypt.h:4178
CRYPT_DATA_BLOB EncryptedKey
Definition: wincrypt.h:4234
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm
Definition: wincrypt.h:4233
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm
Definition: wincrypt.h:3910
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm
Definition: wincrypt.h:4161
CRYPT_DATA_BLOB EncryptedKey
Definition: wincrypt.h:4162
PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr
Definition: wincrypt.h:3962
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm
Definition: wincrypt.h:3952
union _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO::@3489 DUMMYUNIONNAME
CRYPT_DATA_BLOB EncryptedKey
Definition: wincrypt.h:4190
PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr
Definition: wincrypt.h:4192
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm
Definition: wincrypt.h:4189
PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTrans
Definition: wincrypt.h:3971
PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO pKeyAgree
Definition: wincrypt.h:3972
union _CMSG_RECIPIENT_ENCODE_INFO::@3490 DUMMYUNIONNAME
PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO pMailList
Definition: wincrypt.h:3973
PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr
Definition: wincrypt.h:3923
PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr
Definition: wincrypt.h:4168
CMSG_ENVELOPED_ENCODE_INFO EnvelopedInfo
Definition: wincrypt.h:4006
CMSG_SIGNED_ENCODE_INFO SignedInfo
Definition: wincrypt.h:4005
PCMSG_SIGNER_ENCODE_INFO rgSigners
Definition: wincrypt.h:3896
PCERT_BLOB rgCertEncoded
Definition: wincrypt.h:3898
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
Definition: wincrypt.h:3879
PCRYPT_ATTRIBUTE rgAuthAttr
Definition: wincrypt.h:3882
PCRYPT_ATTRIBUTE rgUnauthAttr
Definition: wincrypt.h:3884
CRYPT_ATTRIBUTES AuthAttrs
Definition: wincrypt.h:887
CERT_NAME_BLOB Issuer
Definition: wincrypt.h:882
CRYPT_INTEGER_BLOB SerialNumber
Definition: wincrypt.h:883
CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm
Definition: wincrypt.h:885
CRYPT_DATA_BLOB EncryptedHash
Definition: wincrypt.h:886
CRYPT_ATTRIBUTES UnauthAttrs
Definition: wincrypt.h:888
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
Definition: wincrypt.h:884
PFN_CMSG_STREAM_OUTPUT pfnStreamOutput
Definition: wincrypt.h:3818
CRYPT_DATA_BLOB PubInfo
Definition: wincrypt.h:200
LPSTR pszContentEncObjId
Definition: wincrypt.h:199
void * pReserved
Definition: wincrypt.h:201
CRYPT_DATA_BLOB * pDigest
Definition: wincrypt.h:427
LPWSTR pszURL
Definition: wincrypt.h:425
CRYPT_ALGORITHM_IDENTIFIER * pAlgorithm
Definition: wincrypt.h:426
DWORD cbCrlEncoded
Definition: wincrypt.h:733
DWORD dwCertEncodingType
Definition: wincrypt.h:731
HCERTSTORE hCertStore
Definition: wincrypt.h:735
BYTE * pbCrlEncoded
Definition: wincrypt.h:732
PCRL_INFO pCrlInfo
Definition: wincrypt.h:734
PCRL_DIST_POINT rgDistPoint
Definition: wincrypt.h:542
union _CRL_DIST_POINT_NAME::@3480 DUMMYUNIONNAME
CERT_ALT_NAME_INFO FullName
Definition: wincrypt.h:518
DWORD dwDistPointNameChoice
Definition: wincrypt.h:516
CRYPT_BIT_BLOB ReasonFlags
Definition: wincrypt.h:528
CERT_ALT_NAME_INFO CRLIssuer
Definition: wincrypt.h:529
CRL_DIST_POINT_NAME DistPointName
Definition: wincrypt.h:527
Definition: wincrypt.h:496
FILETIME RevocationDate
Definition: wincrypt.h:498
PCERT_EXTENSION rgExtension
Definition: wincrypt.h:500
CRYPT_INTEGER_BLOB SerialNumber
Definition: wincrypt.h:497
DWORD cExtension
Definition: wincrypt.h:499
PCCERT_CONTEXT pIssuerCert
Definition: wincrypt.h:3087
PCCERT_CONTEXT pSubjectCert
Definition: wincrypt.h:3086
PCRL_ENTRY rgCRLEntry
Definition: wincrypt.h:510
DWORD cCRLEntry
Definition: wincrypt.h:509
DWORD cExtension
Definition: wincrypt.h:511
DWORD dwVersion
Definition: wincrypt.h:504
FILETIME NextUpdate
Definition: wincrypt.h:508
CERT_NAME_BLOB Issuer
Definition: wincrypt.h:506
FILETIME ThisUpdate
Definition: wincrypt.h:507
CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm
Definition: wincrypt.h:505
PCERT_EXTENSION rgExtension
Definition: wincrypt.h:512
CRL_DIST_POINT_NAME DistPointName
Definition: wincrypt.h:576
CRYPT_BIT_BLOB OnlySomeReasonFlags
Definition: wincrypt.h:579
PCERT_ALT_NAME_INFO rgDistPoint
Definition: wincrypt.h:561
BYTE * pbData
Definition: wincrypt.h:112
CRYPT_OBJID_BLOB Parameters
Definition: wincrypt.h:136
PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC pfnCompletion
Definition: wincrypt.h:1802
PCRYPT_ATTRIBUTE rgAttr
Definition: wincrypt.h:612
CRYPT_OBJID_BLOB Value
Definition: wincrypt.h:141
PCRYPT_DATA_BLOB rgValue
Definition: wincrypt.h:607
DWORD cUnusedBits
Definition: wincrypt.h:207
BYTE * pbData
Definition: wincrypt.h:206
PCRYPT_DATA_BLOB rgBlob
Definition: wincrypt.h:1813
CRYPT_DER_BLOB Content
Definition: wincrypt.h:463
LPVOID pvCredentials
Definition: wincrypt.h:1819
LPCSTR pszCredentialsOid
Definition: wincrypt.h:1818
PFN_CRYPT_FREE pfnFree
Definition: wincrypt.h:1269
PFN_CRYPT_ALLOC pfnAlloc
Definition: wincrypt.h:1268
PFN_CRYPT_ALLOC pfnAlloc
Definition: wincrypt.h:1262
PFN_CRYPT_FREE pfnFree
Definition: wincrypt.h:1263
HCRYPTPROV_LEGACY hCryptProv
Definition: wincrypt.h:1694
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm
Definition: wincrypt.h:1695
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
Definition: wincrypt.h:1717
HCRYPTPROV_LEGACY hCryptProv
Definition: wincrypt.h:1716
LPWSTR pwszContainerName
Definition: wincrypt.h:218
PCRYPT_KEY_PROV_PARAM rgProvParam
Definition: wincrypt.h:223
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
Definition: wincrypt.h:1726
HCRYPTPROV_LEGACY hCryptProv
Definition: wincrypt.h:1733
Definition: wincrypt.h:1568
void * pvFuncAddr
Definition: wincrypt.h:1570
LPCSTR pszOID
Definition: wincrypt.h:1569
LPCWSTR pwszName
Definition: wincrypt.h:1619
CRYPT_DATA_BLOB ExtraInfo
Definition: wincrypt.h:1626
union _CRYPT_OID_INFO::@3486 DUMMYUNIONNAME
FILETIME * pLastSyncTime
Definition: wincrypt.h:1843
PCRYPT_DER_BLOB rgValue
Definition: wincrypt.h:468
PCCERT_CONTEXT * rgpMsgCert
Definition: wincrypt.h:1651
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
Definition: wincrypt.h:1648
PCRYPT_ATTRIBUTE rgUnauthAttr
Definition: wincrypt.h:1657
PCCERT_CONTEXT pSigningCert
Definition: wincrypt.h:1647
PCRYPT_ATTRIBUTE rgAuthAttr
Definition: wincrypt.h:1655
PCCRL_CONTEXT * rgpMsgCrl
Definition: wincrypt.h:1653
PCRYPT_SMIME_CAPABILITY rgCapability
Definition: wincrypt.h:805
CRYPT_OBJID_BLOB Parameters
Definition: wincrypt.h:800
PCRYPT_ATTRIBUTE rgAttribute
Definition: wincrypt.h:872
CRYPT_OBJID_BLOB Content
Definition: wincrypt.h:870
LPWSTR * rgwszUrl
Definition: wincrypt.h:1738
DWORD * rgcGroupEntry
Definition: wincrypt.h:1745
DWORD dwSyncDeltaTime
Definition: wincrypt.h:1743
HCRYPTPROV_LEGACY hCryptProv
Definition: wincrypt.h:1686
PFN_CRYPT_GET_SIGNER_CERTIFICATE pfnGetSignerCertificate
Definition: wincrypt.h:1687
BYTE rgbCounter[CRYPT_X942_COUNTER_BYTE_LENGTH]
Definition: wincrypt.h:782
BYTE rgbKeyLength[CRYPT_X942_KEY_LENGTH_BYTE_LENGTH]
Definition: wincrypt.h:783
LPSTR pszContentEncryptionObjId
Definition: wincrypt.h:781
CRYPT_DATA_BLOB PubInfo
Definition: wincrypt.h:784
DWORD cbCtlEncoded
Definition: wincrypt.h:858
BYTE * pbCtlEncoded
Definition: wincrypt.h:857
HCRYPTMSG hCryptMsg
Definition: wincrypt.h:861
DWORD dwMsgAndCertEncodingType
Definition: wincrypt.h:856
HCERTSTORE hCertStore
Definition: wincrypt.h:860
PCTL_INFO pCtlInfo
Definition: wincrypt.h:859
BYTE * pbCtlContext
Definition: wincrypt.h:862
DWORD cbCtlContext
Definition: wincrypt.h:863
Definition: wincrypt.h:835
DWORD cAttribute
Definition: wincrypt.h:837
CRYPT_DATA_BLOB SubjectIdentifier
Definition: wincrypt.h:836
PCRYPT_ATTRIBUTE rgAttribute
Definition: wincrypt.h:838
PCTL_FIND_USAGE_PARA pUsagePara
Definition: wincrypt.h:3112
CTL_USAGE SubjectUsage
Definition: wincrypt.h:3100
CRYPT_DATA_BLOB ListIdentifier
Definition: wincrypt.h:3101
PCERT_INFO pSigner
Definition: wincrypt.h:3102
CRYPT_INTEGER_BLOB SequenceNumber
Definition: wincrypt.h:845
DWORD cExtension
Definition: wincrypt.h:851
DWORD dwVersion
Definition: wincrypt.h:842
CRYPT_ALGORITHM_IDENTIFIER SubjectAlgorithm
Definition: wincrypt.h:848
FILETIME NextUpdate
Definition: wincrypt.h:847
PCTL_ENTRY rgCTLEntry
Definition: wincrypt.h:850
CRYPT_DATA_BLOB ListIdentifier
Definition: wincrypt.h:844
DWORD cCTLEntry
Definition: wincrypt.h:849
CTL_USAGE SubjectUsage
Definition: wincrypt.h:843
FILETIME ThisUpdate
Definition: wincrypt.h:846
PCERT_EXTENSION rgExtension
Definition: wincrypt.h:852
CTL_USAGE Usage
Definition: wincrypt.h:1166
DWORD cUsageIdentifier
Definition: wincrypt.h:831
LPSTR * rgpszUsageIdentifier
Definition: wincrypt.h:832
HCERTSTORE * rghCtlStore
Definition: wincrypt.h:939
CRYPT_DATA_BLOB ListIdentifier
Definition: wincrypt.h:937
HCERTSTORE * rghSignerStore
Definition: wincrypt.h:941
PCCERT_CONTEXT * ppSigner
Definition: wincrypt.h:950
PCCTL_CONTEXT * ppCtl
Definition: wincrypt.h:948
DWORD counter
Definition: wincrypt.h:163
BYTE seed[20]
Definition: wincrypt.h:164
DWORD cbInnerString
Definition: wincrypt.h:105
BYTE * pbOuterString
Definition: wincrypt.h:106
DWORD cbOuterString
Definition: wincrypt.h:107
BYTE * pbInnerString
Definition: wincrypt.h:104
ALG_ID HashAlgid
Definition: wincrypt.h:103
union _HTTPSPolicyCallbackData::@3483 DUMMYUNIONNAME
Definition: wincrypt.h:700
DWORD dwCertStatus
Definition: wincrypt.h:702
FILETIME ThisUpdate
Definition: wincrypt.h:706
DWORD cExtension
Definition: wincrypt.h:708
POCSP_BASIC_REVOKED_INFO pRevokedInfo
Definition: wincrypt.h:704
PCERT_EXTENSION rgExtension
Definition: wincrypt.h:709
union _OCSP_BASIC_RESPONSE_ENTRY::@3481 DUMMYUNIONNAME
FILETIME NextUpdate
Definition: wincrypt.h:707
OCSP_CERT_ID CertId
Definition: wincrypt.h:701
CRYPT_HASH_BLOB ByKeyResponderId
Definition: wincrypt.h:721
POCSP_BASIC_RESPONSE_ENTRY rgResponseEntry
Definition: wincrypt.h:725
PCERT_EXTENSION rgExtension
Definition: wincrypt.h:727
CERT_NAME_BLOB ByNameResponderId
Definition: wincrypt.h:720
union _OCSP_BASIC_RESPONSE_INFO::@3482 DUMMYUNIONNAME
OCSP_SIGNATURE_INFO SignatureInfo
Definition: wincrypt.h:688
CRYPT_HASH_BLOB IssuerNameHash
Definition: wincrypt.h:649
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
Definition: wincrypt.h:648
CRYPT_HASH_BLOB IssuerKeyHash
Definition: wincrypt.h:650
CRYPT_INTEGER_BLOB SerialNumber
Definition: wincrypt.h:651
Definition: wincrypt.h:654
PCERT_EXTENSION rgExtension
Definition: wincrypt.h:657
DWORD cExtension
Definition: wincrypt.h:656
OCSP_CERT_ID CertId
Definition: wincrypt.h:655
PCERT_EXTENSION rgExtension
Definition: wincrypt.h:668
PCERT_ALT_NAME_ENTRY pRequestorName
Definition: wincrypt.h:664
POCSP_REQUEST_ENTRY rgRequestEntry
Definition: wincrypt.h:666
CRYPT_OBJID_BLOB Value
Definition: wincrypt.h:683
CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm
Definition: wincrypt.h:636
PCERT_BLOB rgCertEncoded
Definition: wincrypt.h:639
CRYPT_BIT_BLOB Signature
Definition: wincrypt.h:637
POCSP_SIGNATURE_INFO pOptionalSignatureInfo
Definition: wincrypt.h:644
CRYPT_DER_BLOB ToBeSigned
Definition: wincrypt.h:643
DWORD bitlenP
Definition: wincrypt.h:177
DWORD magic
Definition: wincrypt.h:176
DSSSEED DSSSeed
Definition: wincrypt.h:181
DWORD bitlenX
Definition: wincrypt.h:180
DWORD bitlenQ
Definition: wincrypt.h:178
DWORD bitlenJ
Definition: wincrypt.h:179
CHAR szName[20]
Definition: wincrypt.h:83
DWORD dwDefaultLen
Definition: wincrypt.h:78
DWORD dwProtocols
Definition: wincrypt.h:81
ALG_ID aiAlgid
Definition: wincrypt.h:77
CHAR szLongName[40]
Definition: wincrypt.h:85
DWORD dwLongNameLen
Definition: wincrypt.h:84
DWORD dwNameLen
Definition: wincrypt.h:72
DWORD dwBitLen
Definition: wincrypt.h:71
ALG_ID aiAlgid
Definition: wincrypt.h:70
CHAR szName[20]
Definition: wincrypt.h:73
DWORD magic
Definition: wincrypt.h:168
DWORD bitlenP
Definition: wincrypt.h:169
DWORD bitlenJ
Definition: wincrypt.h:171
DWORD bitlenQ
Definition: wincrypt.h:170
DSSSEED DSSSeed
Definition: wincrypt.h:172
DWORD magic
Definition: wincrypt.h:158
DWORD bitlen
Definition: wincrypt.h:159
ALG_ID aiKeyAlg
Definition: wincrypt.h:148
DWORD pubexp
Definition: wincrypt.h:154
DWORD bitlen
Definition: wincrypt.h:153
DWORD magic
Definition: wincrypt.h:152
DWORD cBits
Definition: wincrypt.h:94
DWORD dwUse
Definition: wincrypt.h:92
DWORD dwReserved
Definition: wincrypt.h:96
DWORD dwFlags
Definition: wincrypt.h:95
ALG_ID Algid
Definition: wincrypt.h:93
BYTE * pbContextInfo
Definition: wincrypt.h:818
BOOL(WINAPI *FuncVerifyImage)(LPCSTR
LPSTR pszProvName
Definition: wincrypt.h:820
DWORD dwProvType
Definition: wincrypt.h:817
BYTE * void(WINAPI *FuncReturnhWnd)(HWND *)
DWORD cbContextInfo
Definition: wincrypt.h:819
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
_In_z_ PCWSTR pwszValueName
Definition: ntuser.h:42
WINADVAPI BOOL WINAPI CryptDecrypt(HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, BYTE *, DWORD *)
Definition: crypt.c:800
struct _CRYPT_ENCRYPT_MESSAGE_PARA * PCRYPT_ENCRYPT_MESSAGE_PARA
struct _CMSG_CONTENT_ENCRYPT_INFO CMSG_CONTENT_ENCRYPT_INFO
WINCRYPT32API PCCERT_CHAIN_CONTEXT WINAPI CertDuplicateCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext)
Definition: chain.c:2948
WINCRYPT32API PCCTL_CONTEXT WINAPI CertFindCTLInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCTL_CONTEXT pPrevCtlContext)
Definition: ctl.c:291
struct _CERT_REVOCATION_STATUS CERT_REVOCATION_STATUS
BOOL(WINAPI * PFN_CERT_DLL_OPEN_STORE_PROV_FUNC)(LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara, HCERTSTORE hCertStore, PCERT_STORE_PROV_INFO pStoreProvInfo)
Definition: wincrypt.h:1391
struct _CERT_OTHER_NAME CERT_OTHER_NAME
struct _CERT_STORE_PROV_INFO CERT_STORE_PROV_INFO
#define CRYPT_X942_COUNTER_BYTE_LENGTH
Definition: wincrypt.h:776
struct _CERT_POLICY_QUALIFIER_USER_NOTICE * PCERT_POLICY_QUALIFIER_USER_NOTICE
struct _VTableProvStruc VTableProvStruc
ULONG_PTR HCRYPTPROV_OR_NCRYPT_KEY_HANDLE
Definition: wincrypt.h:56
struct _CERT_POLICIES_INFO CERT_POLICIES_INFO
struct _CERT_CHAIN_ELEMENT CERT_CHAIN_ELEMENT
WINCRYPT32API BOOL WINAPI CertStrToNameA(DWORD dwCertEncodingType, LPCSTR pszX500, DWORD dwStrType, void *pvReserved, BYTE *pbEncoded, DWORD *pcbEncoded, LPCSTR *ppszError)
Definition: str.c:716
struct _CTL_CONTEXT CTL_CONTEXT
WINCRYPT32API const void *WINAPI CertCreateContext(DWORD dwContextType, DWORD dwEncodingType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCERT_CREATE_CONTEXT_PARA pCreatePara)
Definition: cert.c:3679
WINCRYPT32API BOOL WINAPI CertIsValidCRLForCertificate(PCCERT_CONTEXT pCert, PCCRL_CONTEXT pCrl, DWORD dwFlags, void *pvReserved)
Definition: crl.c:681
struct _CMSG_SIGNED_ENCODE_INFO * PCMSG_SIGNED_ENCODE_INFO
static const WCHAR CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM[]
Definition: wincrypt.h:1608
BOOL(WINAPI * PFN_CERT_STORE_PROV_GET_CRL_PROPERTY)(HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwPropId, DWORD dwFlags, void *pvData, DWORD *pcbData)
Definition: wincrypt.h:1550
struct _CERT_X942_DH_VALIDATION_PARAMS * PCERT_X942_DH_VALIDATION_PARAMS
static const WCHAR CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME[]
Definition: wincrypt.h:2776
struct _CRYPTOAPI_BLOB CRYPT_UINT_BLOB
struct _CERT_CHAIN * PCERT_CHAIN
struct _CERT_CRL_CONTEXT_PAIR * PCERT_CRL_CONTEXT_PAIR
WINCRYPT32API BOOL WINAPI CryptDecryptMessage(PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, const BYTE *pbEncryptedBlob, DWORD cbEncryptedBlob, BYTE *pbDecrypted, DWORD *pcbDecrypted, PCCERT_CONTEXT *ppXchgCert)
struct _CERT_RDN * PCERT_RDN
struct _CRYPT_OID_FUNC_ENTRY * PCRYPT_OID_FUNC_ENTRY
WINCRYPT32API BOOL WINAPI CryptProtectMemory(void *pData, DWORD cbData, DWORD dwFlags)
Definition: main.c:312
struct _CPS_URLS * PCPS_URLS
WINCRYPT32API BOOL WINAPI CryptVerifyMessageSignature(PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, const BYTE *pbSignedBlob, DWORD cbSignedBlob, BYTE *pbDecoded, DWORD *pcbDecoded, PCCERT_CONTEXT *ppSignerCert)
Definition: message.c:184
static const WCHAR CERT_PROT_ROOT_FLAGS_REGPATH[]
Definition: wincrypt.h:2575
WINCRYPT32API HCRYPTMSG WINAPI CryptMsgOpenToDecode(DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, HCRYPTPROV_LEGACY hCryptProv, PCERT_INFO pRecipientInfo, PCMSG_STREAM_INFO pStreamInfo)
Definition: msg.c:3552
WINCRYPT32API PCERT_RDN_ATTR WINAPI CertFindRDNAttr(LPCSTR pszObjId, PCERT_NAME_INFO pName)
Definition: cert.c:2051
struct _CERT_ECC_SIGNATURE CERT_ECC_SIGNATURE
struct _CMSG_ENVELOPED_ENCODE_INFO * PCMSG_ENVELOPED_ENCODE_INFO
BOOL WINAPI CryptCancelAsyncRetrieval(HCRYPTASYNC hAsyncRetrieval)
struct _CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA * PCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA
WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfo(HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, HCRYPTKEY *phKey)
Definition: encode.c:4970
struct _CRYPTOAPI_BLOB CRYPT_DER_BLOB
WINCRYPT32API BOOL WINAPI CryptUninstallDefaultContext(HCRYPTDEFAULTCONTEXT hDefaultContext, DWORD dwFlags, void *pvReserved)
struct _CERT_SIMPLE_CHAIN CERT_SIMPLE_CHAIN
struct _CRYPT_ATTRIBUTE CRYPT_ATTRIBUTE
struct _OCSP_BASIC_SIGNED_RESPONSE_INFO * POCSP_BASIC_SIGNED_RESPONSE_INFO
struct _CERT_USAGE_MATCH CERT_USAGE_MATCH
struct _OCSP_BASIC_RESPONSE_INFO * POCSP_BASIC_RESPONSE_INFO
WINCRYPT32API DWORD WINAPI CertEnumCTLContextProperties(PCCTL_CONTEXT pCTLContext, DWORD dwPropId)
Definition: ctl.c:508
struct _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO
#define WINADVAPI
Definition: wincrypt.h:41
static const WCHAR CRYPT_OID_REG_DLL_VALUE_NAME[]
Definition: wincrypt.h:2691
struct _HTTPSPolicyCallbackData HTTPSPolicyCallbackData
BOOL(WINAPI * PFN_CRYPT_ENUM_OID_FUNC)(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, DWORD cValue, const DWORD rgdwValueType[], LPCWSTR const rgpwszValueName[], const BYTE *const rgpbValueData[], const DWORD rgcbValueData[], void *pvArg)
Definition: wincrypt.h:1587
WINADVAPI BOOL WINAPI CryptDeriveKey(HCRYPTPROV, ALG_ID, HCRYPTHASH, DWORD, HCRYPTKEY *)
Definition: crypt.c:838
struct _CRYPT_URL_ARRAY * PCRYPT_URL_ARRAY
static const WCHAR MS_DEF_RSA_SCHANNEL_PROV_W[]
Definition: wincrypt.h:2159
static const WCHAR CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH[]
Definition: wincrypt.h:2604
static const WCHAR CERT_PROT_ROOT_FLAGS_VALUE_NAME[]
Definition: wincrypt.h:2578
WINADVAPI BOOL WINAPI CryptGenKey(HCRYPTPROV, ALG_ID, DWORD, HCRYPTKEY *)
Definition: crypt.c:1451
struct _CRYPTOAPI_BLOB * PCRYPT_UINT_BLOB
WINCRYPT32API BOOL WINAPI CertCreateCertificateChainEngine(PCERT_CHAIN_ENGINE_CONFIG pConfig, HCERTCHAINENGINE *phChainEngine)
Definition: chain.c:225
struct _PUBKEYVER3 DHPUBKEY_VER3
struct _CMSG_RECIPIENT_ENCRYPTED_KEY_INFO CMSG_RECIPIENT_ENCRYPTED_KEY_INFO
static const WCHAR MS_DEF_DSS_DH_PROV_W[]
Definition: wincrypt.h:2179
struct _CMSG_HASHED_ENCODE_INFO * PCMSG_HASHED_ENCODE_INFO
struct _CERT_AUTHORITY_INFO_ACCESS * PCERT_AUTHORITY_INFO_ACCESS
WINCRYPT32API LONG WINAPI CertVerifyCRLTimeValidity(LPFILETIME pTimeToVerify, PCRL_INFO pCrlInfo)
Definition: crl.c:776
CRYPT_ATTRIBUTES CMSG_ATTR
Definition: wincrypt.h:4136
struct _PRIVKEYVER3 DHPRIVKEY_VER3
struct _CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY
WINCRYPT32API BOOL WINAPI CryptMsgVerifyCountersignatureEncodedEx(HCRYPTPROV_LEGACY hCryptProv, DWORD dwEncodingType, PBYTE pbSignerInfo, DWORD cbSignerInfo, PBYTE pbSignerInfoCountersignature, DWORD cbSignerInfoCountersignature, DWORD dwSignerType, void *pvSigner, DWORD dwFlags, void *pvReserved)
Definition: msg.c:3773
struct _CRYPTPROTECT_PROMPTSTRUCT * PCRYPTPROTECT_PROMPTSTRUCT
struct _CRYPT_CREDENTIALS * PCRYPT_CREDENTIALS
struct _CERT_PRIVATE_KEY_VALIDITY CERT_PRIVATE_KEY_VALIDITY
static const WCHAR MS_ENH_DSS_DH_PROV_W[]
Definition: wincrypt.h:2190
struct _CRYPTOAPI_BLOB CERT_RDN_VALUE_BLOB
struct _CRL_INFO CRL_INFO
WINCRYPT32API BOOL WINAPI CryptVerifyMessageHash(PCRYPT_HASH_MESSAGE_PARA pHashPara, BYTE *pbHashedBlob, DWORD cbHashedBlob, BYTE *pbToBeHashed, DWORD *pcbToBeHashed, BYTE *pbComputedHash, DWORD *pcbComputedHash)
Definition: message.c:364
struct _CRYPT_ASYNC_RETRIEVAL_COMPLETION CRYPT_ASYNC_RETRIEVAL_COMPLETION
struct _CMSG_HASHED_ENCODE_INFO CMSG_HASHED_ENCODE_INFO
struct _CERT_STRONG_SIGN_PARA CERT_STRONG_SIGN_PARA
BOOL(WINAPI * PFN_CRYPT_CANCEL_RETRIEVAL)(DWORD dwFlags, void *pvArg)
Definition: wincrypt.h:1910
struct _CRYPTOAPI_BLOB CRYPT_INTEGER_BLOB
struct _CRYPT_SMIME_CAPABILITY * PCRYPT_SMIME_CAPABILITY
struct _PUBKEY DHPUBKEY
struct _CMSG_RECIPIENT_ENCRYPTED_KEY_INFO * PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO
struct _CERT_ENCRYPTED_PRIVATE_KEY_INFO CERT_ENCRYPTED_PRIVATE_KEY_INFO
struct _CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO * PCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO
BOOL(WINAPI * PFN_CRYPT_ENUM_OID_INFO)(PCCRYPT_OID_INFO pInfo, void *pvArg)
Definition: wincrypt.h:1640
struct _CMSG_KEY_TRANS_RECIPIENT_INFO CMSG_KEY_TRANS_RECIPIENT_INFO
WINCRYPT32API BOOL WINAPI CertEnumSystemStoreLocation(DWORD dwFlags, void *pvArg, PFN_CERT_ENUM_SYSTEM_STORE_LOCATION pfnEnum)
struct _CERT_ECC_SIGNATURE * PCERT_ECC_SIGNATURE
static const WCHAR CRYPT_OID_REG_FUNC_NAME_VALUE_NAME[]
Definition: wincrypt.h:2692
struct _CERT_RDN_ATTR CERT_RDN_ATTR
struct _CERT_PAIR CERT_PAIR
WINADVAPI BOOL WINAPI CryptSignHashA(HCRYPTHASH, DWORD, LPCSTR, DWORD, BYTE *, DWORD *)
Definition: crypt.c:1939
const CERT_CHAIN_CONTEXT * PCCERT_CHAIN_CONTEXT
Definition: wincrypt.h:1047
struct _CERT_CHAIN_PARA CERT_CHAIN_PARA
struct _CERT_POLICY_INFO CERT_POLICY_INFO
struct _CERT_CHAIN_PARA * PCERT_CHAIN_PARA
WINADVAPI BOOL WINAPI CryptSignHashW(HCRYPTHASH, DWORD, LPCWSTR, DWORD, BYTE *, DWORD *)
Definition: crypt.c:1908
struct _KEY_TYPE_SUBTYPE * PKEY_TYPE_SUBTYPE
WINCRYPT32API PCCTL_CONTEXT WINAPI CertDuplicateCTLContext(PCCTL_CONTEXT pCtlContext)
Definition: ctl.c:491
WINCRYPT32API BOOL WINAPI CertSetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: cert.c:799
WINCRYPT32API DWORD WINAPI CertGetPublicKeyLength(DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pPublicKey)
Definition: cert.c:1305
WINCRYPT32API BOOL WINAPI CertAddCRLLinkToStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, PCCRL_CONTEXT *ppStoreContext)
struct _OCSP_SIGNATURE_INFO * POCSP_SIGNATURE_INFO
struct _CTL_USAGE_MATCH CTL_USAGE_MATCH
WINCRYPT32API BOOL WINAPI CryptExportPublicKeyInfoEx(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, LPSTR pszPublicKeyObjId, DWORD dwFlags, void *pvAuxInfo, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo)
Definition: encode.c:4934
WINCRYPT32API BOOL WINAPI CertRemoveEnhancedKeyUsageIdentifier(PCCERT_CONTEXT pCertContext, LPCSTR pszUsageIdentifier)
Definition: cert.c:3063
struct _CERT_ISSUER_SERIAL_NUMBER CERT_ISSUER_SERIAL_NUMBER
struct _CRYPT_SMIME_CAPABILITY CRYPT_SMIME_CAPABILITY
struct _CERT_EXTENSION * PCERT_EXTENSION
struct _RSAPUBKEY RSAPUBKEY
WINCRYPT32API PCERT_EXTENSION WINAPI CertFindExtension(LPCSTR pszObjId, DWORD cExtensions, CERT_EXTENSION rgExtensions[])
Definition: cert.c:2028
struct _CMSG_KEY_AGREE_RECIPIENT_INFO * PCMSG_KEY_AGREE_RECIPIENT_INFO
struct _CERT_ALT_NAME_ENTRY CERT_ALT_NAME_ENTRY
ULONG_PTR HCRYPTPROV_LEGACY
Definition: wincrypt.h:57
struct _CERT_SYSTEM_STORE_RELOCATE_PARA CERT_SYSTEM_STORE_RELOCATE_PARA
struct _CERT_KEY_USAGE_RESTRICTION_INFO CERT_KEY_USAGE_RESTRICTION_INFO
BOOL WINAPI CryptFlushTimeValidObject(LPCSTR pszFlushTimeValidOid, void *pvPara, PCCERT_CONTEXT pIssuer, DWORD dwFlags, void *pvReserved)
struct _PUBKEY KEAPUBKEY
struct _CRYPTOAPI_BLOB CRYPT_DIGEST_BLOB
struct _OCSP_SIGNED_REQUEST_INFO * POCSP_SIGNED_REQUEST_INFO
BOOL(WINAPI * PFN_CERT_STORE_PROV_READ_CERT)(HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pStoreCertContext, DWORD dwFlags, PCCERT_CONTEXT *ppProvCertContext)
Definition: wincrypt.h:1399
struct _CRL_ENTRY CRL_ENTRY
struct _HTTPSPolicyCallbackData * PSSL_EXTRA_CERT_CHAIN_POLICY_PARA
WINCRYPT32API BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT pCertContext)
Definition: store.c:943
WINADVAPI BOOL WINAPI CryptGetDefaultProviderW(DWORD, DWORD *, DWORD, LPWSTR, DWORD *)
Definition: crypt.c:1503
WINCRYPT32API BOOL WINAPI CryptRegisterOIDInfo(PCCRYPT_OID_INFO pInfo, DWORD dwFlags)
Definition: oid.c:750
struct _CRYPT_OID_INFO CRYPT_OID_INFO
struct _CMSG_CMS_RECIPIENT_INFO CMSG_CMS_RECIPIENT_INFO
struct _CERT_CHAIN_POLICY_PARA CERT_CHAIN_POLICY_PARA
struct _CRYPT_KEY_SIGN_MESSAGE_PARA * PCRYPT_KEY_SIGN_MESSAGE_PARA
WINADVAPI BOOL WINAPI CryptDuplicateHash(HCRYPTHASH, DWORD *, DWORD, HCRYPTHASH *)
Definition: crypt.c:973
WINCRYPT32API BOOL WINAPI CryptDecodeMessage(DWORD dwMsgTypeFlags, PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, const BYTE *pbEncodedBlob, DWORD cbEncodedBlob, DWORD dwPrevInnerContentType, DWORD *pdwMsgType, DWORD *pdwInnerContentType, BYTE *pbDecoded, DWORD *pcbDecoded, PCCERT_CONTEXT *ppXchgCert, PCCERT_CONTEXT *ppSignerCert)
struct _CRYPT_ATTRIBUTES CRYPT_ATTRIBUTES
struct _CRYPTOAPI_BLOB CRYPT_ATTR_BLOB
struct _CRYPTOAPI_BLOB * PCERT_RDN_VALUE_BLOB
Definition: str.c:193
WINCRYPT32API BOOL WINAPI CryptQueryObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD dwFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, DWORD *pdwFormatType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg, const void **ppvContext)
Definition: object.c:699
struct _CRYPT_X942_OTHER_INFO * PCRYPT_X942_OTHER_INFO
struct _SCHANNEL_ALG * PSCHANNEL_ALG
struct _OCSP_BASIC_RESPONSE_ENTRY OCSP_BASIC_RESPONSE_ENTRY
WINADVAPI BOOL WINAPI CryptSetProviderExW(LPCWSTR, DWORD, DWORD *, DWORD)
Definition: crypt.c:2068
WINCRYPT32API BOOL WINAPI CertResyncCertificateChainEngine(HCERTCHAINENGINE hChainEngine)
void * HCERTSTORE
Definition: wincrypt.h:60
BOOL(WINAPI * PFN_CERT_STORE_PROV_WRITE_CRL)(HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwFlags)
Definition: wincrypt.h:1417
struct _CERT_BASIC_CONSTRAINTS_INFO * PCERT_BASIC_CONSTRAINTS_INFO
static const WCHAR CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH[]
Definition: wincrypt.h:2592
WINADVAPI BOOL WINAPI CryptEnumProviderTypesA(DWORD, DWORD *, DWORD, DWORD *, LPSTR, DWORD *)
Definition: crypt.c:1362
ULONG_PTR HCRYPTPROV
Definition: wincrypt.h:55
WINCRYPT32API BOOL WINAPI CryptCloseAsyncHandle(HCRYPTASYNC hAsync)
struct _CRL_FIND_ISSUED_FOR_PARA CRL_FIND_ISSUED_FOR_PARA
WINADVAPI BOOL WINAPI CryptGetHashParam(HCRYPTHASH, DWORD, BYTE *, DWORD *, DWORD)
Definition: crypt.c:1610
struct _CRYPT_SMIME_CAPABILITIES CRYPT_SMIME_CAPABILITIES
WINCRYPT32API BOOL WINAPI CryptGetOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCSTR pszOID, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
Definition: oid.c:387
struct _CTL_VERIFY_USAGE_STATUS * PCTL_VERIFY_USAGE_STATUS
BOOL(WINAPI * PFN_CERT_STORE_PROV_GET_CTL_PROPERTY)(HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwPropId, DWORD dwFlags, void *pvData)
Definition: wincrypt.h:1557
WINCRYPT32API VOID WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext)
Definition: chain.c:2960
struct _PUBKEYVER3 DSSPUBKEY_VER3
BOOL(WINAPI * PFN_CERT_STORE_PROV_FIND_CERT)(HCERTSTOREPROV hStoreProv, PCCERT_STORE_PROV_FIND_INFO pFindInfo, PCCERT_CONTEXT pPrevCertContext, DWORD dwFlags, void **ppvStoreProvFindInfo, PCCERT_CONTEXT *ppProvCertContext)
Definition: wincrypt.h:1530
struct _CERT_GENERAL_SUBTREE CERT_GENERAL_SUBTREE
WINCRYPT32API BOOL WINAPI PFXVerifyPassword(CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, DWORD dwFlags)
Definition: decode.c:6407
struct _CERT_X942_DH_PARAMETERS * PCERT_X942_DH_PARAMETERS
BOOL(WINAPI * PFN_CERT_STORE_PROV_SET_CTL_PROPERTY)(HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: wincrypt.h:1437
struct _CERT_PUBLIC_KEY_INFO CERT_PUBLIC_KEY_INFO
struct _CERT_EXTENSION CERT_EXTENSION
WINCRYPT32API PCCTL_CONTEXT WINAPI CertEnumCTLsInStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pPrev)
Definition: ctl.c:200
struct _CERT_CRL_CONTEXT_PAIR CERT_CRL_CONTEXT_PAIR
WINCRYPT32API PCCTL_CONTEXT WINAPI CertCreateCTLContext(DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded)
Definition: ctl.c:363
WINCRYPT32API LONG WINAPI CertVerifyTimeValidity(LPFILETIME pTimeToVerify, PCERT_INFO pCertInfo)
Definition: cert.c:2158
struct _CRYPT_BIT_BLOB * PCRYPT_BIT_BLOB
struct _CTL_VERIFY_USAGE_PARA CTL_VERIFY_USAGE_PARA
WINCRYPT32API DWORD WINAPI CertOIDToAlgId(LPCSTR pszObjId)
Definition: oid.c:1901
WINCRYPT32API BOOL WINAPI CryptSignMessage(PCRYPT_SIGN_MESSAGE_PARA pSignPara, BOOL fDetachedSignature, DWORD cToBeSigned, const BYTE *rgpbToBeSigned[], DWORD rgcbToBeSigned[], BYTE *pbSignedBlob, DWORD *pcbSignedBlob)
Definition: message.c:406
struct _KEY_TYPE_SUBTYPE KEY_TYPE_SUBTYPE
WINCRYPT32API BOOL WINAPI CryptDecryptAndVerifyMessageSignature(PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, const BYTE *pbEncryptedBlob, DWORD cbEncryptedBlob, BYTE *pbDecrypted, DWORD *pcbDecrypted, PCCERT_CONTEXT *ppXchgCert, PCCERT_CONTEXT *ppSignerCert)
WINCRYPT32API BOOL WINAPI CryptRegisterDefaultOIDFunction(DWORD, LPCSTR, DWORD, LPCWSTR)
Definition: oid.c:1109
struct _CRYPT_SEQUENCE_OF_ANY CRYPT_SEQUENCE_OF_ANY
struct _CERT_NAME_VALUE CERT_NAME_VALUE
struct _CMSG_SIGNER_ENCODE_INFO * PCMSG_SIGNER_ENCODE_INFO
struct _CRYPT_DECODE_PARA CRYPT_DECODE_PARA
WINCRYPT32API BOOL WINAPI CryptGetDefaultOIDDllList(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPWSTR pwszDllList, DWORD *pcchDllList)
Definition: oid.c:193
struct _CRYPTOAPI_BLOB CRYPT_DATA_BLOB
struct _CERT_REQUEST_INFO * PCERT_REQUEST_INFO
struct _CRYPT_ALGORITHM_IDENTIFIER CRYPT_ALGORITHM_IDENTIFIER
const CERT_STORE_PROV_FIND_INFO * PCCERT_STORE_PROV_FIND_INFO
Definition: wincrypt.h:1453
BOOL(WINAPI * PFN_CMSG_IMPORT_KEY_TRANS)(PCRYPT_ALGORITHM_IDENTIFIER pContentEncryptionAlgorithm, PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara, DWORD dwFlags, void *pvReserved, HCRYPTKEY *phContentEncryptKey)
Definition: wincrypt.h:4301
#define WINCRYPT32API
Definition: wincrypt.h:49
struct _CTL_VERIFY_USAGE_PARA * PCTL_VERIFY_USAGE_PARA
WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfoEx2(DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, DWORD dwFlags, void *pvAuxInfo, BCRYPT_KEY_HANDLE *phKey)
WINCRYPT32API BOOL WINAPI CertDeleteCTLFromStore(PCCTL_CONTEXT pCtlContext)
Definition: ctl.c:341
struct _CERT_KEY_CONTEXT * PCERT_KEY_CONTEXT
struct _CRYPT_ENCODE_PARA CRYPT_ENCODE_PARA
struct _CTL_INFO CTL_INFO
WINCRYPT32API PCCRL_CONTEXT WINAPI CertFindCRLInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCRL_CONTEXT pPrevCrlContext)
Definition: crl.c:287
WINCRYPT32API BOOL WINAPI CertFreeCTLContext(PCCTL_CONTEXT pCtlContext)
Definition: ctl.c:499
struct _CMSG_CMS_SIGNER_INFO * PCMSG_CMS_SIGNER_INFO
WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfoEx(HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, ALG_ID aiKeyAlg, DWORD dwFlags, void *pvAuxInfo, HCRYPTKEY *phKey)
Definition: encode.c:5044
struct _CRYPT_BLOB_ARRAY * PCRYPT_BLOB_ARRAY
WINCRYPT32API BOOL WINAPI CryptInstallDefaultContext(HCRYPTPROV hCryptProv, DWORD dwDefaultType, const void *pvDefaultPara, DWORD dwFlags, void *pvReserved, HCRYPTDEFAULTCONTEXT *phDefaultContext)
static const WCHAR CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME[]
Definition: wincrypt.h:2774
struct _CRYPTOAPI_BLOB * PCERT_BLOB
WINADVAPI BOOL WINAPI CryptGenRandom(HCRYPTPROV, DWORD, BYTE *)
Definition: crypt.c:700
BOOL(WINAPI * PFN_CERT_STORE_PROV_SET_CRL_PROPERTY)(HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: wincrypt.h:1423
struct _CRL_CONTEXT CRL_CONTEXT
struct _CERT_REVOCATION_PARA * PCERT_REVOCATION_PARA
static const WCHAR MS_STRONG_PROV_W[]
Definition: wincrypt.h:2139
HANDLE HCERTCHAINENGINE
Definition: wincrypt.h:3772
struct _OCSP_RESPONSE_INFO OCSP_RESPONSE_INFO
WINCRYPT32API HCERTSTORE WINAPI CertDuplicateStore(HCERTSTORE hCertStore)
Definition: store.c:1116
WINCRYPT32API HCERTSTORE WINAPI CertOpenSystemStoreW(HCRYPTPROV_LEGACY hProv, LPCWSTR szSubSystemProtocol)
Definition: store.c:916
struct _CERT_PHYSICAL_STORE_INFO CERT_PHYSICAL_STORE_INFO
WINCRYPT32API BOOL WINAPI CryptVerifyMessageSignatureWithKey(PCRYPT_KEY_VERIFY_MESSAGE_PARA pVerifyPara, PCERT_PUBLIC_KEY_INFO pPublicKeyInfo, const BYTE *pbSignedBlob, DWORD cbSignedBlob, BYTE *pbDecoded, DWORD *pcbDecoded)
ULONG_PTR HCRYPTHASH
Definition: wincrypt.h:59
WINCRYPT32API BOOL WINAPI CryptMsgControl(HCRYPTMSG hCryptMsg, DWORD dwFlags, DWORD dwCtrlType, const void *pvCtrlPara)
Definition: msg.c:3636
struct _CERT_NAME_INFO CERT_NAME_INFO
void * HCRYPTMSG
Definition: wincrypt.h:61
struct _CERT_POLICY95_QUALIFIER1 CERT_POLICY95_QUALIFIER1
struct _HTTPSPolicyCallbackData SSL_EXTRA_CERT_CHAIN_POLICY_PARA
struct _CERT_ACCESS_DESCRIPTION * PCERT_ACCESS_DESCRIPTION
struct _CRYPT_RC2_CBC_PARAMETERS CRYPT_RC2_CBC_PARAMETERS
WINCRYPT32API BOOL WINAPI CryptFormatObject(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
Definition: object.c:2549
struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS
#define CRYPT_X942_KEY_LENGTH_BYTE_LENGTH
Definition: wincrypt.h:777
static const WCHAR CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM[]
Definition: wincrypt.h:1612
struct _CRL_CONTEXT * PCRL_CONTEXT
struct _CERT_SYSTEM_STORE_INFO CERT_SYSTEM_STORE_INFO
struct _CERT_DSS_PARAMETERS CERT_DSS_PARAMETERS
WINADVAPI BOOL WINAPI CryptDuplicateKey(HCRYPTKEY, DWORD *, DWORD, HCRYPTKEY *)
Definition: crypt.c:1029
struct _CERT_TRUST_LIST_INFO CERT_TRUST_LIST_INFO
BOOL(WINAPI * PFN_CERT_STORE_PROV_DELETE_CRL)(HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwFlags)
Definition: wincrypt.h:1420
BOOL WINAPI CryptGetTimeValidObject(LPCSTR pszTimeValidOid, void *pvPara, PCCERT_CONTEXT pIssuer, LPFILETIME pftValidFor, DWORD dwFlags, DWORD dwTimeout, void **ppvObject, PCRYPT_CREDENTIALS pCredentials, void *pvReserved)
struct _CRYPTOAPI_BLOB * PCRYPT_OBJID_BLOB
struct _CERT_PRIVATE_KEY_VALIDITY * PCERT_PRIVATE_KEY_VALIDITY
WINCRYPT32API BOOL WINAPI CryptUnregisterOIDFunction(DWORD, LPCSTR, LPCSTR)
Definition: oid.c:831
struct _CRL_DIST_POINT * PCRL_DIST_POINT
WINCRYPT32API BOOL WINAPI CryptHashCertificate(HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid, DWORD dwFlags, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, DWORD *pcbComputedHash)
Definition: cert.c:2187
WINADVAPI BOOL WINAPI CryptGetKeyParam(HCRYPTKEY, DWORD, BYTE *, DWORD *, DWORD)
Definition: crypt.c:1649
struct _CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA * PCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA
WINCRYPT32API BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine, PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore, PCERT_CHAIN_PARA pChainPara, DWORD dwFlags, LPVOID pvReserved, PCCERT_CHAIN_CONTEXT *ppChainContext)
Definition: chain.c:2879
struct _CERT_POLICY_QUALIFIER_NOTICE_REFERENCE CERT_POLICY_QUALIFIER_NOTICE_REFERENCE
struct _CRYPT_ENROLLMENT_NAME_VALUE_PAIR * PCRYPT_ENROLLMENT_NAME_VALUE_PAIR
struct _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO * PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO
BOOL WINAPI CryptInstallCancelRetrieval(PFN_CRYPT_CANCEL_RETRIEVAL pfnCancel, const void *pvArg, DWORD dwFlags, void *pvReserved)
struct _CERT_POLICY_MAPPING * PCERT_POLICY_MAPPING
WINCRYPT32API BOOL WINAPI CertAddCRLContextToStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, PCCRL_CONTEXT *ppStoreContext)
Definition: store.c:960
struct _CTL_FIND_USAGE_PARA * PCTL_FIND_USAGE_PARA
struct _CERT_CHAIN CERT_CHAIN
struct _CERT_INFO * PCERT_INFO
struct _CROSS_CERT_DIST_POINTS_INFO CROSS_CERT_DIST_POINTS_INFO
BOOL(WINAPI * PFN_CERT_STORE_PROV_DELETE_CTL)(HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwFlags)
Definition: wincrypt.h:1434
struct _CRYPT_ATTRIBUTES * PCRYPT_ATTRIBUTES
struct _PROV_ENUMALGS_EX PROV_ENUMALGS_EX
struct _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO
struct _CRYPT_ENCODE_PARA * PCRYPT_ENCODE_PARA
void * HCRYPTDEFAULTCONTEXT
Definition: wincrypt.h:65
struct _CRYPTOAPI_BLOB * PCRYPT_DATA_BLOB
static const WCHAR MS_ENH_RSA_AES_PROV_XP_W[]
Definition: wincrypt.h:2231
static const WCHAR CERT_PHYSICAL_STORE_AUTH_ROOT_NAME[]
Definition: wincrypt.h:2781
struct _CTL_FIND_SUBJECT_PARA CTL_FIND_SUBJECT_PARA
WINCRYPT32API BOOL WINAPI CertGetValidUsages(DWORD cCerts, PCCERT_CONTEXT *rghCerts, int *cNumOIDs, LPSTR *rghOIDs, DWORD *pcbOIDs)
Definition: cert.c:3159
struct _CRYPT_OID_INFO * PCRYPT_OID_INFO
struct _CRYPT_ALGORITHM_IDENTIFIER * PCRYPT_ALGORITHM_IDENTIFIER
WINCRYPT32API BOOL WINAPI CryptCreateAsyncHandle(DWORD dwFlags, PHCRYPTASYNC phAsync)
struct _CERT_AUTHORITY_KEY_ID2_INFO CERT_AUTHORITY_KEY_ID2_INFO
WINADVAPI BOOL WINAPI CryptSetProviderW(LPCWSTR, DWORD)
Definition: crypt.c:2047
struct _OCSP_CERT_ID * POCSP_CERT_ID
WINADVAPI BOOL WINAPI CryptGetProvParam(HCRYPTPROV, DWORD, BYTE *, DWORD *, DWORD)
Definition: crypt.c:1688
struct _CMSG_KEY_TRANS_RECIPIENT_INFO * PCMSG_KEY_TRANS_RECIPIENT_INFO
struct _CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA
WINCRYPT32API BOOL WINAPI CryptUnprotectData(DATA_BLOB *pDataIn, LPWSTR *ppszDataDescr, DATA_BLOB *pOptionalEntropy, PVOID pvReserved, CRYPTPROTECT_PROMPTSTRUCT *pPromptStruct, DWORD dwFlags, DATA_BLOB *pDataOut)
Definition: protectdata.c:990
WINCRYPT32API BOOL WINAPI CryptSignAndEncryptMessage(PCRYPT_SIGN_MESSAGE_PARA pSignPara, PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, DWORD cRecipientCert, PCCERT_CONTEXT rgpRecipientCert[], const BYTE *pbToBeSignedAndEncrypted, DWORD cbToBeSignedAndEncrypted, BYTE *pbSignedAndEncryptedBlob, DWORD *pcbSignedAndEncryptedBlob)
struct _PROV_ENUMALGS PROV_ENUMALGS
WINADVAPI BOOL WINAPI CryptEnumProvidersW(DWORD, DWORD *, DWORD, DWORD *, LPWSTR, DWORD *)
Definition: crypt.c:1136
void * HCRYPTOIDFUNCSET
Definition: wincrypt.h:63
BOOL WINAPI CryptRetrieveObjectByUrlA(LPCSTR pszURL, LPCSTR pszObjectOid, DWORD dwRetrievalFlags, DWORD dwTimeout, LPVOID *ppvObject, HCRYPTASYNC hAsyncRetrieve, PCRYPT_CREDENTIALS pCredentials, LPVOID pvVerify, PCRYPT_RETRIEVE_AUX_INFO pAuxInfo)
WINCRYPT32API PCCRL_CONTEXT WINAPI CertCreateCRLContext(DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded)
Definition: crl.c:85
WINCRYPT32API BOOL WINAPI CryptAcquireCertificatePrivateKey(PCCERT_CONTEXT pCert, DWORD dwFlags, void *pvReserved, HCRYPTPROV_OR_NCRYPT_KEY_HANDLE *phCryptProv, DWORD *pdwKeySpec, BOOL *pfCallerFreeProv)
Definition: cert.c:881
WINCRYPT32API HCERTSTORE WINAPI CertOpenSystemStoreA(HCRYPTPROV_LEGACY hProv, LPCSTR szSubSystemProtocol)
Definition: store.c:904
WINCRYPT32API DWORD WINAPI CertRDNValueToStrA(DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, LPSTR psz, DWORD csz)
Definition: str.c:33
WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToSystemStoreW(LPCWSTR pszCertStoreName, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:99
WINCRYPT32API BOOL WINAPI CryptHashMessage(PCRYPT_HASH_MESSAGE_PARA pHashPara, BOOL fDetachedHash, DWORD cToBeHashed, const BYTE *rgpbToBeHashed[], DWORD rgcbToBeHashed[], BYTE *pbHashedBlob, DWORD *pcbHashedBlob, BYTE *pbComputedHash, DWORD *pcbComputedHash)
Definition: message.c:255
static const WCHAR CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM[]
Definition: wincrypt.h:1613
struct _CRYPT_DECRYPT_MESSAGE_PARA CRYPT_DECRYPT_MESSAGE_PARA
WINCRYPT32API BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
Definition: store.c:1127
WINCRYPT32API VOID WINAPI CertFreeCertificateChainEngine(HCERTCHAINENGINE hChainEngine)
Definition: chain.c:249
WINCRYPT32API BOOL WINAPI CertAddCertificateLinkToStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, PCCERT_CONTEXT *ppStoreContext)
Definition: cert.c:296
struct _AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA
struct _CERT_SIGNED_CONTENT_INFO CERT_SIGNED_CONTENT_INFO
struct _CTL_USAGE CERT_ENHKEY_USAGE
struct _CERT_POLICY95_QUALIFIER1 * PCERT_POLICY95_QUALIFIER1
struct _CTL_VERIFY_USAGE_STATUS CTL_VERIFY_USAGE_STATUS
const CRYPT_OID_INFO CCRYPT_OID_INFO
Definition: wincrypt.h:1632
struct _CERT_STRONG_SIGN_PARA * PCERT_STRONG_SIGN_PARA
WINCRYPT32API BOOL WINAPI CertVerifyValidityNesting(PCERT_INFO pSubjectInfo, PCERT_INFO pIssuerInfo)
Definition: cert.c:2178
static const WCHAR CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM[]
Definition: wincrypt.h:1607
WINCRYPT32API BOOL WINAPI CertEnumSubjectInSortedCTL(PCCTL_CONTEXT pCTLContext, void **ppvNextSubject, PCRYPT_DER_BLOB pSubjectIdentifier, PCRYPT_DER_BLOB pEncodedAttributes)
WINCRYPT32API BOOL WINAPI CertDeleteCRLFromStore(PCCRL_CONTEXT pCrlContext)
Definition: store.c:1080
struct _CRYPT_URL_ARRAY CRYPT_URL_ARRAY
struct _CRYPT_ENROLLMENT_NAME_VALUE_PAIR CRYPT_ENROLLMENT_NAME_VALUE_PAIR
struct _CTL_USAGE_MATCH * PCTL_USAGE_MATCH
static const WCHAR CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM[]
Definition: wincrypt.h:1609
VOID(WINAPI * PFN_CRYPT_FREE)(LPVOID pv)
Definition: wincrypt.h:1258
struct _CERT_KEY_ATTRIBUTES_INFO CERT_KEY_ATTRIBUTES_INFO
void * __WINE_ALLOC_SIZE(1) WINAPI *PFN_CMSG_ALLOC)(size_t cb)
Definition: wincrypt.h:4213
struct _CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY * PCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY
WINCRYPT32API BOOL WINAPI CertGetCTLContextProperty(PCCTL_CONTEXT pCTLContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: ctl.c:590
WINCRYPT32API BOOL WINAPI CertSerializeCRLStoreElement(PCCRL_CONTEXT pCrlContext, DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
Definition: serialize.c:152
struct _CERT_PAIR * PCERT_PAIR
struct _CERT_POLICY_ID * PCERT_POLICY_ID
void(WINAPI * PFN_FREE_ENCODED_OBJECT_FUNC)(LPCSTR pszObjectOid, PCRYPT_BLOB_ARRAY pObject, void *pvFreeContext)
Definition: wincrypt.h:1854
struct _AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA * PAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA
WINADVAPI BOOL WINAPI CryptGetDefaultProviderA(DWORD, DWORD *, DWORD, LPSTR, DWORD *)
Definition: crypt.c:1560
struct _CERT_X942_DH_PARAMETERS CERT_X942_DH_PARAMETERS
WINCRYPT32API DWORD WINAPI CertNameToStrW(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, DWORD dwStrType, LPWSTR psz, DWORD csz)
Definition: str.c:702
struct _CERT_CREATE_CONTEXT_PARA CERT_CREATE_CONTEXT_PARA
struct _CRYPTOAPI_BLOB CRYPT_HASH_BLOB
struct _CERT_SYSTEM_STORE_RELOCATE_PARA * PCERT_SYSTEM_STORE_RELOCATE_PARA
BOOL(WINAPI * PFN_CERT_STORE_PROV_FIND_CTL)(HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, void *pvStoreProvFindInfo, DWORD dwFlags)
Definition: wincrypt.h:1554
struct _CERT_REVOCATION_CRL_INFO * PCERT_REVOCATION_CRL_INFO
struct _CMSG_CONTENT_ENCRYPT_INFO * PCMSG_CONTENT_ENCRYPT_INFO
struct _CERT_EXTENSIONS * PCERT_EXTENSIONS
WINCRYPT32API BOOL WINAPI CertEnumPhysicalStore(const void *pvSystemStore, DWORD dwFlags, void *pvArg, PFN_CERT_ENUM_PHYSICAL_STORE pfnEnum)
Definition: store.c:1416
WINCRYPT32API BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo)
Definition: decode.c:6286
struct _CRYPT_PASSWORD_CREDENTIALSA * PCRYPT_PASSWORD_CREDENTIALSA
struct _OCSP_REQUEST_INFO * POCSP_REQUEST_INFO
WINCRYPT32API BOOL WINAPI CryptMsgGetParam(HCRYPTMSG hCryptMsg, DWORD dwParamType, DWORD dwIndex, void *pvData, DWORD *pcbData)
Definition: msg.c:3626
WINADVAPI BOOL WINAPI CryptDestroyKey(HCRYPTKEY)
Definition: crypt.c:930
WINCRYPT32API PCRYPT_ATTRIBUTE WINAPI CertFindAttribute(LPCSTR pszObjId, DWORD cAttr, CRYPT_ATTRIBUTE rgAttr[])
Definition: cert.c:2006
WINCRYPT32API BOOL WINAPI CertUnregisterPhysicalStore(const void *pvSystemStore, DWORD dwFlags, LPCWSTR pwszStoreName)
Definition: store.c:1441
struct _CPS_URLS CPS_URLS
struct _OCSP_SIGNATURE_INFO OCSP_SIGNATURE_INFO
struct _CRYPT_SIGN_MESSAGE_PARA CRYPT_SIGN_MESSAGE_PARA
WINCRYPT32API BOOL WINAPI CertGetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: store.c:1172
struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS * PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS
WINCRYPT32API BOOL WINAPI CertSetCTLContextProperty(PCCTL_CONTEXT pCTLContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: ctl.c:685
struct _CERT_STRONG_SIGN_SERIALIZED_INFO * PCERT_STRONG_SIGN_SERIALIZED_INFO
struct _CRL_DIST_POINT CRL_DIST_POINT
WINCRYPT32API LONG WINAPI CryptGetMessageSignerCount(DWORD dwMsgEncodingType, const BYTE *pbSignedBlob, DWORD cbSignedBlob)
Definition: message.c:41
struct _CERT_GENERAL_SUBTREE * PCERT_GENERAL_SUBTREE
struct _CERT_POLICY_ID CERT_POLICY_ID
WINCRYPT32API BOOL WINAPI CryptUnregisterDefaultOIDFunction(DWORD, LPCSTR, LPCWSTR)
Definition: oid.c:1142
BOOL(WINAPI * PFN_CERT_ENUM_PHYSICAL_STORE)(const void *pvSystemStore, DWORD dwFlags, LPCWSTR pwszStoreName, PCERT_PHYSICAL_STORE_INFO pStoreInfo, void *pvReserved, void *pvArg)
Definition: wincrypt.h:1251
struct _VTableProvStruc * PVTableProvStruc
struct _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO * PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO
struct _OCSP_SIGNED_REQUEST_INFO OCSP_SIGNED_REQUEST_INFO
static const WCHAR CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME[]
Definition: wincrypt.h:2609
WINCRYPT32API BOOL WINAPI CryptSignMessageWithKey(PCRYPT_KEY_SIGN_MESSAGE_PARA pSignPara, const BYTE *pbToBeSigned, DWORD cbToBeSigned, BYTE *pbSignedBlob, DWORD *pcbSignedBlob)
WINCRYPT32API BOOL WINAPI CertGetCRLContextProperty(PCCRL_CONTEXT pCRLContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: crl.c:472
const CERT_CRL_CONTEXT_PAIR * PCCERT_CRL_CONTEXT_PAIR
Definition: wincrypt.h:1918
WINCRYPT32API BOOL WINAPI CryptStringToBinaryW(LPCWSTR pszString, DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:983
struct _OCSP_BASIC_SIGNED_RESPONSE_INFO OCSP_BASIC_SIGNED_RESPONSE_INFO
struct _CRYPT_PASSWORD_CREDENTIALSA CRYPT_PASSWORD_CREDENTIALSA
BOOL(WINAPI * PFN_CERT_ENUM_SYSTEM_STORE_LOCATION)(LPCWSTR pwszStoreLocation, DWORD dwFlags, void *pvReserved, void *pvArg)
Definition: wincrypt.h:1244
WINCRYPT32API BOOL WINAPI CryptEnumOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, DWORD dwFlags, void *pvArg, PFN_CRYPT_ENUM_OID_FUNC pfnEnumOIDFunc)
WINCRYPT32API DWORD WINAPI CryptMsgCalculateEncodedLength(DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID, DWORD cbData)
struct _CRYPTOAPI_BLOB * PDATA_BLOB
WINADVAPI BOOL WINAPI CryptSetProvParam(HCRYPTPROV, DWORD, const BYTE *, DWORD)
Definition: crypt.c:2179
struct _CRYPT_VERIFY_MESSAGE_PARA CRYPT_VERIFY_MESSAGE_PARA
WINCRYPT32API BOOL WINAPI CryptUnregisterOIDInfo(PCCRYPT_OID_INFO pInfo)
Definition: oid.c:708
struct _CERT_ALT_NAME_INFO * PCERT_ALT_NAME_INFO
WINCRYPT32API BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500, DWORD dwStrType, void *pvReserved, BYTE *pbEncoded, DWORD *pcbEncoded, LPCWSTR *ppszError)
Definition: str.c:1024
static const WCHAR MS_DEF_RSA_SIG_PROV_W[]
Definition: wincrypt.h:2149
struct _CERT_CHAIN_ENGINE_CONFIG CERT_CHAIN_ENGINE_CONFIG
struct _CRYPT_RETRIEVE_AUX_INFO CRYPT_RETRIEVE_AUX_INFO
WINCRYPT32API BOOL WINAPI CryptSignAndEncodeCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, LPCSTR lpszStructType, const void *pvStructInfo, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, const void *pvHashAuxInfo, BYTE *pbEncoded, DWORD *pcbEncoded)
Definition: cert.c:2364
WINCRYPT32API BOOL WINAPI CryptSignCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, const BYTE *pbEncodedToBeSigned, DWORD cbEncodedToBeSigned, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, const void *pvHashAuxInfo, BYTE *pbSignature, DWORD *pcbSignature)
Definition: cert.c:2305
struct _HMAC_INFO * PHMAC_INFO
struct _CMSG_CMS_RECIPIENT_INFO * PCMSG_CMS_RECIPIENT_INFO
struct _SCHANNEL_ALG SCHANNEL_ALG
WINCRYPT32API BOOL WINAPI CryptMsgCountersignEncoded(DWORD dwEncodingType, PBYTE pbSignerInfo, DWORD cbSignerInfo, DWORD cCountersigners, PCMSG_SIGNER_ENCODE_INFO rgCountersigners, PBYTE pbCountersignature, PDWORD pcbCountersignature)
struct _CERT_POLICY_INFO * PCERT_POLICY_INFO
WINADVAPI BOOL WINAPI CryptHashSessionKey(HCRYPTHASH, HCRYPTKEY, DWORD)
Definition: crypt.c:1808
struct _CRL_ISSUING_DIST_POINT * PCRL_ISSUING_DIST_POINT
struct _CMSG_SIGNER_INFO CMSG_SIGNER_INFO
WINCRYPT32API BOOL WINAPI CertVerifyCTLUsage(DWORD dwEncodingType, DWORD dwSubjectType, void *pvSubject, PCTL_USAGE pSubjectUsage, DWORD dwFlags, PCTL_VERIFY_USAGE_PARA pVerifyUsagePara, PCTL_VERIFY_USAGE_STATUS pVerifyUsageStatus)
Definition: cert.c:3667
static const WCHAR MS_DEF_PROV_W[]
Definition: wincrypt.h:2119
struct _CRYPT_KEY_PROV_PARAM * PCRYPT_KEY_PROV_PARAM
struct _PUBLICKEYSTRUC PUBLICKEYSTRUC
WINCRYPT32API PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pPrev)
Definition: store.c:1101
WINADVAPI BOOL WINAPI CryptEnumProviderTypesW(DWORD, DWORD *, DWORD, DWORD *, LPWSTR, DWORD *)
Definition: crypt.c:1283
WINCRYPT32API BOOL WINAPI CryptMsgSignCTL(DWORD dwMsgEncodingType, BYTE *pbCtlContent, DWORD cbCtlContent, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags, BYTE *pbEncoded, DWORD *pcbEncoded)
Definition: msg.c:3810
WINCRYPT32API HCERTSTORE WINAPI PFXImportCertStore(CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, DWORD dwFlags)
Definition: decode.c:6400
WINCRYPT32API PCCERT_CONTEXT WINAPI CertGetIssuerCertificateFromStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pSubjectContext, PCCERT_CONTEXT pPrevIssuerContext, DWORD *pdwFlags)
Definition: cert.c:1887
struct _CERT_NAME_VALUE * PCERT_NAME_VALUE
struct _CERT_AUTHORITY_KEY_ID2_INFO * PCERT_AUTHORITY_KEY_ID2_INFO
BOOL(WINAPI * PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY)(PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, DWORD dwFlags, void *pvReserved)
Definition: wincrypt.h:4291
WINCRYPT32API BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, PCCERT_CONTEXT *ppStoreContext)
Definition: cert.c:286
struct _CERT_KEY_USAGE_RESTRICTION_INFO * PCERT_KEY_USAGE_RESTRICTION_INFO
void(WINAPI * PFN_CERT_STORE_PROV_CLOSE)(HCERTSTOREPROV hStoreProv, DWORD dwFlags)
Definition: wincrypt.h:1396
struct _CERT_REVOCATION_PARA CERT_REVOCATION_PARA
WINCRYPT32API HCRYPTMSG WINAPI CryptMsgDuplicate(HCRYPTMSG hCryptMsg)
Definition: msg.c:3584
WINCRYPT32API BOOL WINAPI CertAddEnhancedKeyUsageIdentifier(PCCERT_CONTEXT pCertContext, LPCSTR pszUsageIdentifier)
Definition: cert.c:2978
WINCRYPT32API BOOL WINAPI PFXExportCertStoreEx(HCERTSTORE hStore, CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, void *pvReserved, DWORD dwFlags)
Definition: encode.c:4767
WINADVAPI BOOL WINAPI CryptDestroyHash(HCRYPTHASH)
Definition: crypt.c:890
struct _CRYPTOAPI_BLOB CRL_BLOB
VOID WINAPI CryptMemFree(_In_opt_ LPVOID pv)
WINCRYPT32API BOOL WINAPI PFXIsPFXBlob(CRYPT_DATA_BLOB *pPFX)
Definition: decode.c:6365
WINCRYPT32API BOOL WINAPI CertAddCTLContextToStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, PCCTL_CONTEXT *ppStoreContext)
Definition: ctl.c:63
struct _CERT_KEYGEN_REQUEST_INFO * PCERT_KEYGEN_REQUEST_INFO
struct _CERT_DH_PARAMETERS CERT_DH_PARAMETERS
BOOL WINAPI CryptRetrieveObjectByUrlW(LPCWSTR pszURL, LPCSTR pszObjectOid, DWORD dwRetrievalFlags, DWORD dwTimeout, LPVOID *ppvObject, HCRYPTASYNC hAsyncRetrieve, PCRYPT_CREDENTIALS pCredentials, LPVOID pvVerify, PCRYPT_RETRIEVE_AUX_INFO pAuxInfo)
WINCRYPT32API BOOL WINAPI CryptVerifyDetachedMessageSignature(PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, const BYTE *pbDetachedSignBlob, DWORD cbDetachedSignBlob, DWORD cToBeSigned, const BYTE *rgpbToBeSigned[], DWORD rgcbToBeSigned[], PCCERT_CONTEXT *ppSignerCert)
Definition: message.c:108
WINCRYPT32API BOOL WINAPI CertSaveStore(HCERTSTORE hCertStore, DWORD dwMsgAndCertEncodingType, DWORD dwSaveAs, DWORD dwSaveTo, void *pvSaveToPara, DWORD dwFlags)
Definition: serialize.c:895
struct _CERT_POLICY_QUALIFIER_INFO CERT_POLICY_QUALIFIER_INFO
struct _CMSG_MAIL_LIST_RECIPIENT_INFO * PCMSG_MAIL_LIST_RECIPIENT_INFO
struct _CRYPT_SIGN_MESSAGE_PARA * PCRYPT_SIGN_MESSAGE_PARA
struct _CRYPTOAPI_BLOB CERT_NAME_BLOB
struct _CMSG_CTRL_DECRYPT_PARA * PCMSG_CTRL_DECRYPT_PARA
WINCRYPT32API BOOL WINAPI CertCompareCertificateName(DWORD dwCertEncodingType, PCERT_NAME_BLOB pCertName1, PCERT_NAME_BLOB pCertName2)
Definition: cert.c:1180
struct _CERT_REVOCATION_INFO * PCERT_REVOCATION_INFO
struct _CERT_BASIC_CONSTRAINTS2_INFO * PCERT_BASIC_CONSTRAINTS2_INFO
WINCRYPT32API BOOL WINAPI CertUnregisterSystemStore(const void *store, DWORD flags)
Definition: store.c:1471
WINCRYPT32API BOOL WINAPI CryptFindCertificateKeyProvInfo(PCCERT_CONTEXT pCert, DWORD dwFlags, void *pvReserved)
Definition: cert.c:1153
WINCRYPT32API PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey, DWORD dwGroupId)
Definition: oid.c:1799
WINCRYPT32API BOOL WINAPI CryptRegisterOIDFunction(DWORD, LPCSTR, LPCSTR, LPCWSTR, LPCSTR)
Definition: oid.c:647
struct _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO * PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO
struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA * PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA
void * HCRYPTOIDFUNCADDR
Definition: wincrypt.h:64
WINCRYPT32API DWORD WINAPI CertGetNameStringA(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, void *pvTypePara, LPSTR pszNameString, DWORD cchNameString)
Definition: str.c:1127
struct _OCSP_BASIC_REVOKED_INFO * POCSP_BASIC_REVOKED_INFO
struct _CERT_TRUST_STATUS CERT_TRUST_STATUS
struct _CRYPT_PASSWORD_CREDENTIALSW * PCRYPT_PASSWORD_CREDENTIALSW
struct _CERT_KEYGEN_REQUEST_INFO CERT_KEYGEN_REQUEST_INFO
struct _CMSG_CTRL_KEY_TRANS_DECRYPT_PARA * PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA
struct _CERT_CHAIN_POLICY_STATUS * PCERT_CHAIN_POLICY_STATUS
struct _CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA
struct _CRYPT_ASYNC_RETRIEVAL_COMPLETION * PCRYPT_ASYNC_RETRIEVAL_COMPLETION
struct _CMSG_CTRL_KEY_TRANS_DECRYPT_PARA CMSG_CTRL_KEY_TRANS_DECRYPT_PARA
struct _CRYPT_HASH_MESSAGE_PARA CRYPT_HASH_MESSAGE_PARA
struct _CRL_DIST_POINT_NAME * PCRL_DIST_POINT_NAME
struct _CRYPT_ATTRIBUTE_TYPE_VALUE * PCRYPT_ATTRIBUTE_TYPE_VALUE
WINCRYPT32API void WINAPI CertRemoveStoreFromCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore)
BOOL WINAPI CryptUninstallCancelRetrieval(DWORD dwFlags, void *pvReserved)
struct _CERT_KEY_CONTEXT CERT_KEY_CONTEXT
struct _CMSG_KEY_AGREE_RECIPIENT_INFO CMSG_KEY_AGREE_RECIPIENT_INFO
WINCRYPT32API BOOL WINAPI CryptEnumOIDInfo(DWORD dwGroupId, DWORD dwFlags, void *pvArg, PFN_CRYPT_ENUM_OID_INFO pfnEnumOIDInfo)
Definition: oid.c:1776
struct _CERT_PRIVATE_KEY_INFO * PCERT_PRIVATE_KEY_INFO
WINADVAPI BOOL WINAPI CryptSetProviderA(LPCSTR, DWORD)
Definition: crypt.c:2036
WINCRYPT32API BOOL WINAPI CryptSetOIDFunctionValue(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR pwszValueName, DWORD dwValueType, const BYTE *pbValueData, DWORD cbValueData)
Definition: oid.c:891
struct _CRYPT_CONTENT_INFO CRYPT_CONTENT_INFO
WINCRYPT32API HCERTSTORE WINAPI CryptGetMessageCertificates(DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const BYTE *pbSignedBlob, DWORD cbSignedBlob)
Definition: message.c:28
WINCRYPT32API BOOL WINAPI CertEnumSystemStore(DWORD dwFlags, void *pvSystemStoreLocationPara, void *pvArg, PFN_CERT_ENUM_SYSTEM_STORE pfnEnum)
Definition: store.c:1321
WINCRYPT32API BOOL WINAPI CryptInstallOIDFunctionAddress(HMODULE hModule, DWORD dwEncodingType, LPCSTR pszFuncName, DWORD cFuncEntry, const CRYPT_OID_FUNC_ENTRY rgFuncEntry[], DWORD dwFlags)
Definition: oid.c:237
WINCRYPT32API BOOL WINAPI CryptMsgClose(HCRYPTMSG hCryptMsg)
Definition: msg.c:3597
WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext)
Definition: cert.c:58
BOOL(WINAPI * PFN_CERT_STORE_PROV_FREE_FIND_CRL)(HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, void *pvStoreProvFindInfo, DWORD dwFlags)
Definition: wincrypt.h:1546
static const WCHAR CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH[]
Definition: wincrypt.h:2551
struct _CERT_STRONG_SIGN_SERIALIZED_INFO CERT_STRONG_SIGN_SERIALIZED_INFO
struct _CMSG_SIGNER_INFO * PCMSG_SIGNER_INFO
WINCRYPT32API BOOL WINAPI CryptMsgGetAndVerifySigner(HCRYPTMSG hCryptMsg, DWORD cSignerStore, HCERTSTORE *rghSignerStore, DWORD dwFlags, PCCERT_CONTEXT *ppSigner, DWORD *pdwSignerIndex)
Definition: msg.c:3669
void(WINAPI * PFN_CRYPT_ASYNC_PARAM_FREE_FUNC)(LPSTR pszParamOid, LPVOID pvParam)
Definition: wincrypt.h:1771
WINCRYPT32API PCCRL_CONTEXT WINAPI CertDuplicateCRLContext(PCCRL_CONTEXT pCrlContext)
Definition: crl.c:378
WINCRYPT32API PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:316
const CERT_CONTEXT * PCCERT_CONTEXT
Definition: wincrypt.h:494
BOOL(WINAPI * PFN_CANCEL_ASYNC_RETRIEVAL_FUNC)(HCRYPTASYNC hAsyncRetrieve)
Definition: wincrypt.h:1806
struct _CERT_PUBLIC_KEY_INFO * PCERT_PUBLIC_KEY_INFO
struct _CRYPT_VERIFY_MESSAGE_PARA * PCRYPT_VERIFY_MESSAGE_PARA
WINCRYPT32API BOOL WINAPI CryptMsgEncodeAndSignCTL(DWORD dwMsgEncodingType, PCTL_INFO pCtlInfo, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags, BYTE *pbEncoded, DWORD *pcbEncoded)
Definition: msg.c:3784
struct _CMSG_SIGNER_ENCODE_INFO CMSG_SIGNER_ENCODE_INFO
struct _CRYPT_ENCRYPT_MESSAGE_PARA CRYPT_ENCRYPT_MESSAGE_PARA
static const WCHAR CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME[]
Definition: wincrypt.h:2772
struct _CERT_CHAIN_POLICY_STATUS CERT_CHAIN_POLICY_STATUS
struct _CERT_POLICY_MAPPINGS_INFO * PCERT_POLICY_MAPPINGS_INFO
struct _CMSG_RECIPIENT_ENCODE_INFO CMSG_RECIPIENT_ENCODE_INFO
WINCRYPT32API HCRYPTMSG WINAPI CryptMsgOpenToEncode(DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID, PCMSG_STREAM_INFO pStreamInfo)
Definition: msg.c:2034
struct _CERT_OTHER_NAME * PCERT_OTHER_NAME
WINCRYPT32API BOOL WINAPI CryptUnprotectMemory(void *pData, DWORD cbData, DWORD dwFlags)
Definition: main.c:319
WINCRYPT32API BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority)
struct _CRYPTOAPI_BLOB * PCRYPT_DER_BLOB
struct _CERT_X942_DH_VALIDATION_PARAMS CERT_X942_DH_VALIDATION_PARAMS
struct _CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA * PCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA
BOOL(WINAPI * PFN_CERT_STORE_PROV_READ_CRL)(HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pStoreCrlContext, DWORD dwFlags, PCCRL_CONTEXT *ppProvCrlContext)
Definition: wincrypt.h:1413
struct _CRYPT_BIT_BLOB CRYPT_BIT_BLOB
struct _CMSG_CTRL_DECRYPT_PARA CMSG_CTRL_DECRYPT_PARA
WINADVAPI BOOL WINAPI CryptVerifySignatureA(HCRYPTHASH, const BYTE *, DWORD, HCRYPTKEY, LPCSTR, DWORD)
Definition: crypt.c:2266
const CTL_CONTEXT * PCCTL_CONTEXT
Definition: wincrypt.h:865
struct _CERT_SIGNED_CONTENT_INFO * PCERT_SIGNED_CONTENT_INFO
struct _CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA
WINCRYPT32API BOOL WINAPI CryptHashPublicKeyInfo(HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid, DWORD dwFlags, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, BYTE *pbComputedHash, DWORD *pcbComputedHash)
Definition: cert.c:2216
struct _CRYPT_DECODE_PARA * PCRYPT_DECODE_PARA
struct _CMSG_ENCRYPTED_ENCODE_INFO * PCMSG_ENCRYPTED_ENCODE_INFO
struct _CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO
struct _CERT_CHAIN_POLICY_PARA * PCERT_CHAIN_POLICY_PARA
struct _CERT_POLICY_QUALIFIER_NOTICE_REFERENCE * PCERT_POLICY_QUALIFIER_NOTICE_REFERENCE
struct _CMSG_SIGNED_ENCODE_INFO CMSG_SIGNED_ENCODE_INFO
WINADVAPI BOOL WINAPI CryptSetProviderExA(LPCSTR, DWORD, DWORD *, DWORD)
Definition: crypt.c:2149
WINCRYPT32API BOOL WINAPI CertAddEncodedCRLToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded, DWORD dwAddDisposition, PCCRL_CONTEXT *ppCrlContext)
Definition: crl.c:129
static const WCHAR CRYPT_OID_INFO_NO_SIGN_ALGORITHM[]
Definition: wincrypt.h:1610
WINADVAPI BOOL WINAPI CryptEnumProvidersA(DWORD, DWORD *, DWORD, DWORD *, LPSTR, DWORD *)
Definition: crypt.c:1228
struct _CERT_STORE_PROV_FIND_INFO CERT_STORE_PROV_FIND_INFO
WINCRYPT32API BOOL WINAPI CertRegisterPhysicalStore(const void *pvSystemStore, DWORD dwFlags, LPCWSTR pwszStoreName, PCERT_PHYSICAL_STORE_INFO pStoreInfo, void *pvReserved)
Definition: store.c:1429
struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA
BOOL(WINAPI * PFN_CMSG_EXPORT_KEY_TRANS)(PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTransEncodeInfo, PCMSG_KEY_TRANS_ENCRYPT_INFO pKeyTransEncryptInfo, DWORD dwFlags, void *pvReserved)
Definition: wincrypt.h:4295
WINCRYPT32API BOOL WINAPI CryptVerifyCertificateSignatureEx(HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, DWORD dwSubjectType, void *pvSubject, DWORD dwIssuerType, void *pvIssuer, DWORD dwFlags, void *pvReserved)
Definition: cert.c:2717
struct _CMSG_ENVELOPED_ENCODE_INFO CMSG_ENVELOPED_ENCODE_INFO
BOOL(WINAPI * PFN_CERT_STORE_PROV_DELETE_CERT)(HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwFlags)
Definition: wincrypt.h:1406
void * HCERTSTOREPROV
Definition: wincrypt.h:62
struct _CERT_BASIC_CONSTRAINTS_INFO CERT_BASIC_CONSTRAINTS_INFO
struct _CRYPTOAPI_BLOB DATA_BLOB
WINCRYPT32API BOOL WINAPI CertGetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, DWORD dwFlags, PCERT_ENHKEY_USAGE pUsage, DWORD *pcbUsage)
Definition: cert.c:2847
static const WCHAR CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM[]
Definition: wincrypt.h:1611
WINCRYPT32API BOOL WINAPI CryptGetAsyncParam(HCRYPTASYNC hAsync, LPSTR pszParamOid, LPVOID *ppvParam, PFN_CRYPT_ASYNC_PARAM_FREE_FUNC *ppfnFree)
struct _CMSG_MAIL_LIST_RECIPIENT_INFO CMSG_MAIL_LIST_RECIPIENT_INFO
struct _CERT_STORE_PROV_INFO * PCERT_STORE_PROV_INFO
struct _CTL_USAGE * PCERT_ENHKEY_USAGE
struct _CERT_AUTHORITY_KEY_ID_INFO * PCERT_AUTHORITY_KEY_ID_INFO
struct _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO
struct _CERT_CHAIN_ELEMENT * PCERT_CHAIN_ELEMENT
WINCRYPT32API BOOL WINAPI CryptGetDefaultOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCWSTR pwszDll, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
Definition: oid.c:511
WINCRYPT32API BOOL WINAPI CryptProtectData(DATA_BLOB *pDataIn, LPCWSTR szDataDescr, DATA_BLOB *pOptionalEntropy, PVOID pvReserved, CRYPTPROTECT_PROMPTSTRUCT *pPromptStruct, DWORD dwFlags, DATA_BLOB *pDataOut)
Definition: protectdata.c:821
BOOL(WINAPI * PFN_CERT_STORE_PROV_READ_CTL)(HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pStoreCtlContext, DWORD dwFlags, PCCTL_CONTEXT *ppProvCtlContext)
Definition: wincrypt.h:1427
struct _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO * PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO
struct _CRYPTOAPI_BLOB * PCRYPT_ATTR_BLOB
BOOL(WINAPI * PFN_CERT_STORE_PROV_GET_CERT_PROPERTY)(HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, void *pvData, DWORD *pcbData)
Definition: wincrypt.h:1538
BOOL(WINAPI * PFN_CERT_STORE_PROV_FIND_CRL)(HCERTSTOREPROV hStoreProv, PCCERT_STORE_PROV_FIND_INFO pFindInfo, PCCRL_CONTEXT pPrevCrlContext, DWORD dwFlags, void **ppvStoreProvFindInfo, PCCRL_CONTEXT *ppProvCrlContext)
Definition: wincrypt.h:1542
struct _CMSG_ENCRYPTED_ENCODE_INFO CMSG_ENCRYPTED_ENCODE_INFO
struct _CRYPT_TIME_STAMP_REQUEST_INFO CRYPT_TIME_STAMP_REQUEST_INFO
struct _PUBLICKEYSTRUC BLOBHEADER
struct _CERT_ISSUER_SERIAL_NUMBER * PCERT_ISSUER_SERIAL_NUMBER
WINCRYPT32API BOOL WINAPI CryptGetOIDFunctionValue(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR szValueName, DWORD *pdwValueType, BYTE *pbValueData, DWORD *pcbValueData)
Definition: oid.c:854
struct _CERT_TRUST_LIST_INFO * PCERT_TRUST_LIST_INFO
WINCRYPT32API BOOL WINAPI CryptSetAsyncParam(HCRYPTASYNC hAsync, LPSTR pszParamOid, LPVOID pvParam, PFN_CRYPT_ASYNC_PARAM_FREE_FUNC pfnFree)
WINCRYPT32API BOOL WINAPI CertAddCTLLinkToStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, PCCTL_CONTEXT *ppStoreContext)
struct _CERT_INFO CERT_INFO
WINCRYPT32API HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet(LPCSTR, DWORD)
Definition: oid.c:114
struct _CERT_EXTENSIONS CERT_EXTENSIONS
WINADVAPI BOOL WINAPI CryptGetUserKey(HCRYPTPROV, DWORD, HCRYPTKEY *)
Definition: crypt.c:1718
WINCRYPT32API PCCRL_CONTEXT WINAPI CertGetCRLFromStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pIssuerContext, PCCRL_CONTEXT pPrevCrlContext, DWORD *pdwFlags)
Definition: crl.c:337
WINCRYPT32API BOOL WINAPI CryptEncodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType, const void *pvStructInfo, BYTE *pbEncoded, DWORD *pcbEncoded)
Definition: encode.c:4655
const CRYPT_OID_INFO * PCCRYPT_OID_INFO
Definition: wincrypt.h:1632
WINCRYPT32API DWORD WINAPI CertNameToStrA(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, DWORD dwStrType, LPSTR psz, DWORD csz)
Definition: str.c:414
struct _CRL_FIND_ISSUED_FOR_PARA * PCRL_FIND_ISSUED_FOR_PARA
struct _CERT_NAME_CONSTRAINTS_INFO * PCERT_NAME_CONSTRAINTS_INFO
struct _CERT_AUTHORITY_KEY_ID_INFO CERT_AUTHORITY_KEY_ID_INFO
struct _CERT_SIMPLE_CHAIN * PCERT_SIMPLE_CHAIN
struct _CMS_DH_KEY_INFO CMS_DH_KEY_INFO
static const WCHAR MS_DEF_DH_SCHANNEL_PROV_W[]
Definition: wincrypt.h:2201
struct _CERT_POLICY_QUALIFIER_INFO * PCERT_POLICY_QUALIFIER_INFO
WINADVAPI BOOL WINAPI CryptSetKeyParam(HCRYPTKEY, DWORD, const BYTE *, DWORD)
Definition: crypt.c:2004
struct _CERT_POLICY_QUALIFIER_USER_NOTICE CERT_POLICY_QUALIFIER_USER_NOTICE
BOOL(WINAPI * PFN_CERT_STORE_PROV_SET_CERT_PROPERTY)(HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: wincrypt.h:1409
struct _CRYPT_KEY_SIGN_MESSAGE_PARA CRYPT_KEY_SIGN_MESSAGE_PARA
WINCRYPT32API DWORD WINAPI CertEnumCRLContextProperties(PCCRL_CONTEXT pCRLContext, DWORD dwPropId)
Definition: crl.c:395
BOOL(WINAPI * PFN_CERT_ENUM_SYSTEM_STORE)(const void *pvSystemStore, DWORD dwFlags, PCERT_SYSTEM_STORE_INFO pStoreInfo, void *pvReserved, void *pvArg)
Definition: wincrypt.h:1247
struct _CERT_POLICY_CONSTRAINTS_INFO CERT_POLICY_CONSTRAINTS_INFO
WINADVAPI BOOL WINAPI CryptAcquireContextA(HCRYPTPROV *, LPCSTR, LPCSTR, DWORD, DWORD)
Definition: crypt.c:569
struct _CERT_CONTEXT * PCERT_CONTEXT
struct _CERT_NAME_CONSTRAINTS_INFO CERT_NAME_CONSTRAINTS_INFO
WINCRYPT32API PCCERT_CONTEXT WINAPI CertEnumCertificatesInStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pPrev)
Definition: store.c:928
struct _DSSSEED DSSSEED
struct _OCSP_REQUEST_ENTRY OCSP_REQUEST_ENTRY
struct _CRYPTOAPI_BLOB * PCRYPT_DIGEST_BLOB
struct _CERT_FORTEZZA_DATA_PROP CERT_FORTEZZA_DATA_PROP
struct _CERT_CHAIN_ENGINE_CONFIG * PCERT_CHAIN_ENGINE_CONFIG
struct _CERT_TRUST_STATUS * PCERT_TRUST_STATUS
WINCRYPT32API BOOL WINAPI PFXExportCertStore(HCERTSTORE hStore, CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, DWORD dwFlags)
Definition: encode.c:4761
static const WCHAR CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH[]
Definition: wincrypt.h:2554
WINCRYPT32API BOOL WINAPI CryptStringToBinaryA(LPCSTR pszString, DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:772
static const WCHAR MS_SCARD_PROV_W[]
Definition: wincrypt.h:2211
WINCRYPT32API BOOL WINAPI CertSerializeCTLStoreElement(PCCTL_CONTEXT pCtlContext, DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
Definition: serialize.c:160
struct _CTL_ENTRY CTL_ENTRY
WINCRYPT32API BOOL WINAPI CertCompareCertificate(DWORD dwCertEncodingType, PCERT_INFO pCertId1, PCERT_INFO pCertId2)
Definition: cert.c:1166
WINCRYPT32API BOOL WINAPI CertAddEncodedCTLToStore(HCERTSTORE hCertStore, DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded, DWORD dwAddDisposition, PCCTL_CONTEXT *ppCtlContext)
Definition: ctl.c:177
WINADVAPI BOOL WINAPI CryptExportKey(HCRYPTKEY, HCRYPTKEY, DWORD, DWORD, BYTE *, DWORD *)
Definition: crypt.c:1416
WINADVAPI BOOL WINAPI CryptHashData(HCRYPTHASH, const BYTE *, DWORD, DWORD)
Definition: crypt.c:1771
WINCRYPT32API BOOL WINAPI CertSerializeCertificateStoreElement(PCCERT_CONTEXT pCertContext, DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
Definition: serialize.c:144
WINCRYPT32API BOOL WINAPI CertFindCertificateInCRL(PCCERT_CONTEXT pCert, PCCRL_CONTEXT pCrlContext, DWORD dwFlags, void *pvReserved, PCRL_ENTRY *ppCrlEntry)
Definition: crl.c:750
struct _CRYPT_HASH_MESSAGE_PARA * PCRYPT_HASH_MESSAGE_PARA
struct _CERT_ID CERT_ID
WINCRYPT32API DWORD WINAPI CertRDNValueToStrW(DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, LPWSTR psz, DWORD csz)
Definition: str.c:100
struct _CERT_RDN_ATTR * PCERT_RDN_ATTR
struct _CRYPT_OID_FUNC_ENTRY CRYPT_OID_FUNC_ENTRY
struct _CMSG_STREAM_INFO CMSG_STREAM_INFO
void(WINAPI * PFN_CMSG_FREE)(void *pv)
Definition: wincrypt.h:4214
WINCRYPT32API BOOL WINAPI CertIsRDNAttrsInCertificateName(DWORD dwCertEncodingType, DWORD dwFlags, PCERT_NAME_BLOB pCertName, PCERT_RDN pRDN)
Definition: cert.c:2131
static const WCHAR CERT_EFSBLOB_VALUE_NAME[]
Definition: wincrypt.h:2568
WINCRYPT32API BOOL WINAPI CertAddSerializedElementToStore(HCERTSTORE hCertStore, const BYTE *pbElement, DWORD cbElement, DWORD dwAddDisposition, DWORD dwFlags, DWORD dwContextTypeFlags, DWORD *pdwContentType, const void **ppvContext)
Definition: serialize.c:953
WINADVAPI BOOL WINAPI CryptImportKey(HCRYPTPROV, const BYTE *, DWORD, HCRYPTKEY, DWORD, HCRYPTKEY *)
Definition: crypt.c:1850
WINCRYPT32API BOOL WINAPI CryptVerifyDetachedMessageHash(PCRYPT_HASH_MESSAGE_PARA pHashPara, BYTE *pbDetachedHashBlob, DWORD cbDetachedHashBlob, DWORD cToBeHashed, const BYTE *rgpbToBeHashed[], DWORD rgcbToBeHashed[], BYTE *pbComputedHash, DWORD *pcbComputedHash)
Definition: message.c:309
WINCRYPT32API BOOL WINAPI CertVerifyRevocation(DWORD dwEncodingType, DWORD dwRevType, DWORD cContext, PVOID rgpvContext[], DWORD dwFlags, PCERT_REVOCATION_PARA pRevPara, PCERT_REVOCATION_STATUS pRevStatus)
Definition: cert.c:1934
struct _CRYPT_PASSWORD_CREDENTIALSW CRYPT_PASSWORD_CREDENTIALSW
struct _CRYPT_KEY_VERIFY_MESSAGE_PARA CRYPT_KEY_VERIFY_MESSAGE_PARA
struct _CRYPTOAPI_BLOB * PCRYPT_INTEGER_BLOB
struct _CTL_INFO * PCTL_INFO
struct _PRIVKEYVER3 DSSPRIVKEY_VER3
struct _CERT_POLICY_MAPPINGS_INFO CERT_POLICY_MAPPINGS_INFO
struct _CERT_ID * PCERT_ID
struct _CERT_ENCRYPTED_PRIVATE_KEY_INFO * PCERT_ENCRYPTED_PRIVATE_KEY_INFO
struct _CRYPTOAPI_BLOB CRYPT_OBJID_BLOB
struct _CRYPT_BLOB_ARRAY CRYPT_BLOB_ARRAY
WINCRYPT32API BOOL WINAPI CryptEncryptMessage(PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, DWORD cRecipientCert, PCCERT_CONTEXT rgpRecipientCert[], const BYTE *pbToBeEncrypted, DWORD cbToBeEncrypted, BYTE *pbEncryptedBlob, DWORD *pcbEncryptedBlob)
Definition: message.c:521
struct _OCSP_BASIC_RESPONSE_ENTRY * POCSP_BASIC_RESPONSE_ENTRY
WINADVAPI BOOL WINAPI CryptEncrypt(HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, BYTE *, DWORD *, DWORD)
Definition: crypt.c:1093
BOOL(WINAPI * PFN_CMSG_STREAM_OUTPUT)(const void *pvArg, BYTE *pbData, DWORD cbData, BOOL fFinal)
Definition: wincrypt.h:3809
BOOL(WINAPI * PFN_CERT_STORE_PROV_CONTROL)(HCERTSTOREPROV hStoreProv, DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara)
Definition: wincrypt.h:1441
struct _CMS_DH_KEY_INFO * PCMS_DH_KEY_INFO
struct _CERT_ALT_NAME_INFO CERT_ALT_NAME_INFO
WINCRYPT32API BOOL WINAPI CertVerifyCRLRevocation(DWORD dwCertEncodingType, PCERT_INFO pCertId, DWORD cCrlInfo, PCRL_INFO rgpCrlInfo[])
Definition: crl.c:762
struct _CERT_NAME_INFO * PCERT_NAME_INFO
struct _PUBKEY TEKPUBKEY
struct _CRYPT_URL_INFO CRYPT_URL_INFO
struct _CERT_AUTHORITY_INFO_ACCESS CERT_AUTHORITY_INFO_ACCESS
struct _CTL_USAGE CTL_USAGE
struct _CRYPTOAPI_BLOB * PCERT_NAME_BLOB
struct _CTL_CONTEXT * PCTL_CONTEXT
struct _CERT_REQUEST_INFO CERT_REQUEST_INFO
WINCRYPT32API LPCWSTR WINAPI CryptFindLocalizedName(LPCWSTR pwszCryptName)
Definition: oid.c:1182
static const WCHAR CERT_PHYSICAL_STORE_DEFAULT_NAME[]
Definition: wincrypt.h:2768
struct _CMSG_CMS_SIGNER_INFO CMSG_CMS_SIGNER_INFO
WINCRYPT32API BOOL WINAPI CertGetIntendedKeyUsage(DWORD dwCertEncodingType, PCERT_INFO pCertInfo, BYTE *pbKeyUsage, DWORD cbKeyUsage)
Definition: cert.c:2810
HRESULT WINAPI FindCertsByIssuer(PCERT_CHAIN pCertChains, DWORD *pcbCertChains, DWORD *pcCertChains, BYTE *pbEncodedIssuerName, DWORD cbEncodedIssuerName, LPCWSTR pwszPurpose, DWORD dwKeySpec)
struct _CRL_ENTRY * PCRL_ENTRY
struct _OCSP_REQUEST_ENTRY * POCSP_REQUEST_ENTRY
WINCRYPT32API BOOL WINAPI CryptBinaryToStringW(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString)
Definition: base64.c:473
struct _CERT_CREATE_CONTEXT_PARA * PCERT_CREATE_CONTEXT_PARA
WINCRYPT32API HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:815
struct _CRYPT_ATTRIBUTE * PCRYPT_ATTRIBUTE
struct _CERT_REVOCATION_INFO CERT_REVOCATION_INFO
struct _CRYPT_ATTRIBUTE_TYPE_VALUE CRYPT_ATTRIBUTE_TYPE_VALUE
WINCRYPT32API PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:360
WINADVAPI BOOL WINAPI CryptReleaseContext(HCRYPTPROV, DWORD)
Definition: crypt.c:648
struct _CTL_FIND_SUBJECT_PARA * PCTL_FIND_SUBJECT_PARA
struct _CRYPT_KEY_PROV_INFO * PCRYPT_KEY_PROV_INFO
WINCRYPT32API BOOL WINAPI CryptMsgUpdate(HCRYPTMSG hCryptMsg, const BYTE *pbData, DWORD cbData, BOOL fFinal)
Definition: msg.c:3616
struct _CRYPT_X942_OTHER_INFO CRYPT_X942_OTHER_INFO
static const WCHAR CERT_EFSBLOB_REGPATH[]
Definition: wincrypt.h:2564
static const WCHAR CRYPT_OID_REG_FLAGS_VALUE_NAME[]
Definition: wincrypt.h:2694
struct _CERT_REVOCATION_CRL_INFO CERT_REVOCATION_CRL_INFO
BOOL(WINAPI * PFN_CERT_STORE_PROV_FREE_FIND_CERT)(HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, void *pvStoreProvFindInfo, DWORD dwFlags)
Definition: wincrypt.h:1534
struct _CRL_DIST_POINTS_INFO * PCRL_DIST_POINTS_INFO
struct _CERT_CONTEXT CERT_CONTEXT
struct _CTL_ENTRY * PCTL_ENTRY
WINCRYPT32API BOOL WINAPI CertSetCRLContextProperty(PCCRL_CONTEXT pCRLContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: crl.c:566
struct _CERT_PHYSICAL_STORE_INFO * PCERT_PHYSICAL_STORE_INFO
struct _CERT_DSS_PARAMETERS * PCERT_DSS_PARAMETERS
struct _CRYPTOAPI_BLOB CERT_BLOB
struct _CERT_PRIVATE_KEY_INFO CERT_PRIVATE_KEY_INFO
struct _CERT_POLICIES_INFO * PCERT_POLICIES_INFO
struct _CTL_USAGE * PCTL_USAGE
struct _OCSP_BASIC_REVOKED_INFO OCSP_BASIC_REVOKED_INFO
WINCRYPT32API BOOL WINAPI CertComparePublicKeyInfo(DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pPublicKey1, PCERT_PUBLIC_KEY_INFO pPublicKey2)
Definition: cert.c:1244
struct _CROSS_CERT_DIST_POINTS_INFO * PCROSS_CERT_DIST_POINTS_INFO
const CRL_CONTEXT * PCCRL_CONTEXT
Definition: wincrypt.h:737
WINCRYPT32API LPCSTR WINAPI CertAlgIdToOID(DWORD dwAlgId)
Definition: oid.c:1888
struct _CERT_USAGE_MATCH * PCERT_USAGE_MATCH
struct _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO
struct _OCSP_BASIC_RESPONSE_INFO OCSP_BASIC_RESPONSE_INFO
struct _CRYPT_SEQUENCE_OF_ANY * PCRYPT_SEQUENCE_OF_ANY
WINCRYPT32API DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, void *pvTypePara, LPWSTR pszNameString, DWORD cchNameString)
Definition: str.c:1228
HANDLE HCRYPTASYNC
Definition: wincrypt.h:1763
CRYPT_ATTRIBUTES * PCMSG_ATTR
Definition: wincrypt.h:4136
WINCRYPT32API BOOL WINAPI CertRegisterSystemStore(const void *store, DWORD flags, CERT_SYSTEM_STORE_INFO *info, void *reserved)
struct _CRL_INFO * PCRL_INFO
WINADVAPI BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *, LPCWSTR, LPCWSTR, DWORD, DWORD)
Definition: crypt.c:358
struct _CRYPT_CONTENT_INFO * PCRYPT_CONTENT_INFO
struct _CRYPT_DECRYPT_MESSAGE_PARA * PCRYPT_DECRYPT_MESSAGE_PARA
PCCERT_CONTEXT(WINAPI * PFN_CRYPT_GET_SIGNER_CERTIFICATE)(void *pvArg, DWORD dwCertEncodingType, PCERT_INFO pSignerId, HCERTSTORE hMsgCertStore)
Definition: wincrypt.h:1679
struct _CERT_POLICY_CONSTRAINTS_INFO * PCERT_POLICY_CONSTRAINTS_INFO
struct _CRYPT_KEY_VERIFY_MESSAGE_PARA * PCRYPT_KEY_VERIFY_MESSAGE_PARA
WINCRYPT32API BOOL WINAPI CryptEncodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, const void *pvStructInfo, DWORD dwFlags, PCRYPT_ENCODE_PARA pEncodePara, void *pvEncoded, DWORD *pcbEncoded)
Definition: encode.c:4696
struct _CMSG_KEY_TRANS_ENCRYPT_INFO * PCMSG_KEY_TRANS_ENCRYPT_INFO
BOOL WINAPI CryptGetObjectUrl(LPCSTR pszUrlOid, LPVOID pvPara, DWORD dwFlags, PCRYPT_URL_ARRAY pUrlArray, DWORD *pcbUrlArray, PCRYPT_URL_INFO pUrlInfo, DWORD *pcbUrlInfo, LPVOID pvReserved)
LPVOID WINAPI CryptMemRealloc(_In_opt_ LPVOID pv, _In_ ULONG cbSize) __WINE_ALLOC_SIZE(2)
struct _CRYPT_KEY_PROV_INFO CRYPT_KEY_PROV_INFO
WINCRYPT32API BOOL WINAPI CryptVerifyCertificateSignature(HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, const BYTE *pbEncoded, DWORD cbEncoded, PCERT_PUBLIC_KEY_INFO pPublicKey)
Definition: cert.c:2427
WINCRYPT32API PCCERT_CONTEXT WINAPI CertGetSubjectCertificateFromStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, PCERT_INFO pCertId)
Definition: cert.c:1831
WINCRYPT32API BOOL WINAPI CryptMsgVerifyCountersignatureEncoded(HCRYPTPROV_LEGACY hCryptProv, DWORD dwEncodingType, PBYTE pbSignerInfo, DWORD cbSignerInfo, PBYTE pbSignerInfoCountersignature, DWORD cbSignerInfoCountersignature, PCERT_INFO pciCountersigner)
struct _CRYPTOAPI_BLOB * PCRYPT_HASH_BLOB
static const WCHAR MS_DEF_DSS_PROV_W[]
Definition: wincrypt.h:2169
struct _CRYPT_URL_INFO * PCRYPT_URL_INFO
static const WCHAR CERT_PHYSICAL_STORE_GROUP_POLICY_NAME[]
Definition: wincrypt.h:2770
struct _CRYPTOAPI_BLOB * PCRL_BLOB
struct _HTTPSPolicyCallbackData * PHTTPSPolicyCallbackData
struct _CRYPT_RETRIEVE_AUX_INFO * PCRYPT_RETRIEVE_AUX_INFO
struct _CTL_FIND_USAGE_PARA CTL_FIND_USAGE_PARA
WINCRYPT32API BOOL WINAPI CertVerifySubjectCertificateContext(PCCERT_CONTEXT pSubject, PCCERT_CONTEXT pIssuer, DWORD *pdwFlags)
Definition: cert.c:1845
struct _CERT_ACCESS_DESCRIPTION CERT_ACCESS_DESCRIPTION
WINCRYPT32API BOOL WINAPI CryptDecodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, void *pvStructInfo, DWORD *pcbStructInfo)
Definition: decode.c:6278
struct _CERT_CHAIN_CONTEXT * PCERT_CHAIN_CONTEXT
Definition: wincrypt.h:1046
WINCRYPT32API BOOL WINAPI CryptFreeOIDFunctionAddress(HCRYPTOIDFUNCADDR hFuncAddr, DWORD dwFlags)
Definition: oid.c:468
HANDLE * PHCRYPTASYNC
Definition: wincrypt.h:1763
static const WCHAR MS_ENHANCED_PROV_W[]
Definition: wincrypt.h:2129
WINCRYPT32API PCCERT_CHAIN_CONTEXT WINAPI CertFindChainInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCERT_CHAIN_CONTEXT pPrevChainContext)
Definition: chain.c:2973
struct _CERT_BASIC_CONSTRAINTS2_INFO CERT_BASIC_CONSTRAINTS2_INFO
struct _CRL_DIST_POINT_NAME CRL_DIST_POINT_NAME
WINCRYPT32API BOOL WINAPI CryptHashToBeSigned(HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, DWORD *pcbComputedHash)
Definition: cert.c:2260
struct _CRYPT_SMIME_CAPABILITIES * PCRYPT_SMIME_CAPABILITIES
WINADVAPI BOOL WINAPI CryptContextAddRef(HCRYPTPROV, DWORD *, DWORD)
Definition: crypt.c:613
struct _CRYPT_CREDENTIALS CRYPT_CREDENTIALS
WINADVAPI BOOL WINAPI CryptVerifySignatureW(HCRYPTHASH, const BYTE *, DWORD, HCRYPTKEY, LPCWSTR, DWORD)
Definition: crypt.c:2238
struct _CRYPTPROTECT_PROMPTSTRUCT CRYPTPROTECT_PROMPTSTRUCT
struct _CERT_DH_PARAMETERS * PCERT_DH_PARAMETERS
WINCRYPT32API BOOL WINAPI CertSetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, PCERT_ENHKEY_USAGE pUsage)
Definition: cert.c:2952
WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToSystemStoreA(LPCSTR pszCertStoreName, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:80
struct _CERT_REVOCATION_STATUS * PCERT_REVOCATION_STATUS
WINADVAPI BOOL WINAPI CryptCreateHash(HCRYPTPROV, ALG_ID, HCRYPTKEY, DWORD, HCRYPTHASH *)
Definition: crypt.c:740
struct _CRL_DIST_POINTS_INFO CRL_DIST_POINTS_INFO
ULONG_PTR HCRYPTKEY
Definition: wincrypt.h:58
struct _CRL_ISSUING_DIST_POINT CRL_ISSUING_DIST_POINT
WINCRYPT32API BOOL WINAPI CryptExportPublicKeyInfo(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo)
Definition: encode.c:4775
WINADVAPI BOOL WINAPI CryptSetHashParam(HCRYPTHASH, DWORD, const BYTE *, DWORD)
Definition: crypt.c:1970
WINCRYPT32API BOOL WINAPI CertFreeCRLContext(PCCRL_CONTEXT pCrlContext)
Definition: crl.c:386
WINCRYPT32API BOOL WINAPI CertControlStore(HCERTSTORE hCertStore, DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara)
Definition: store.c:1149
void(WINAPI * PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC)(void *pvCompletion, DWORD dwCompletionCode, LPCSTR pszURL, LPSTR pszObjectOid, void *pvObject)
Definition: wincrypt.h:1796
WINCRYPT32API BOOL WINAPI CertFindSubjectInSortedCTL(PCRYPT_DATA_BLOB pSubjectIdentifier, PCCTL_CONTEXT pCtlContext, DWORD dwFlags, void *pvReserved, PCRYPT_DER_BLOB pEncodedAttributes)
struct _OCSP_CERT_ID OCSP_CERT_ID
struct _CMSG_KEY_TRANS_ENCRYPT_INFO CMSG_KEY_TRANS_ENCRYPT_INFO
WINCRYPT32API DWORD WINAPI CertEnumCertificateContextProperties(PCCERT_CONTEXT pCertContext, DWORD dwPropId)
Definition: cert.c:380
const CERT_STORE_PROV_FIND_INFO CCERT_STORE_PROV_FIND_INFO
Definition: wincrypt.h:1452
struct _CRYPT_TIME_STAMP_REQUEST_INFO * PCRYPT_TIME_STAMP_REQUEST_INFO
WINCRYPT32API PCCERT_CONTEXT WINAPI CertCreateSelfSignCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hProv, PCERT_NAME_BLOB pSubjectIssuerBlob, DWORD dwFlags, PCRYPT_KEY_PROV_INFO pKeyProvInfo, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, PSYSTEMTIME pStartTime, PSYSTEMTIME pEndTime, PCERT_EXTENSIONS pExtensions)
Definition: cert.c:3552
struct _CMSG_STREAM_INFO * PCMSG_STREAM_INFO
struct _CERT_SYSTEM_STORE_INFO * PCERT_SYSTEM_STORE_INFO
struct _CMSG_RECIPIENT_ENCODE_INFO * PCMSG_RECIPIENT_ENCODE_INFO
static const WCHAR MS_ENH_RSA_AES_PROV_W[]
Definition: wincrypt.h:2221
struct _OCSP_RESPONSE_INFO * POCSP_RESPONSE_INFO
WINCRYPT32API BOOL WINAPI CertSetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: store.c:1236
WINCRYPT32API BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:371
WINCRYPT32API BOOL WINAPI CryptBinaryToStringA(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString)
Definition: base64.c:253
WINCRYPT32API BOOL WINAPI CertVerifyCertificateChainPolicy(LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
Definition: chain.c:3716
WINCRYPT32API BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: cert.c:551
WINCRYPT32API PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCERT_CONTEXT pPrevCertContext)
Definition: cert.c:1765
struct _CRYPT_KEY_PROV_PARAM CRYPT_KEY_PROV_PARAM
static const WCHAR CERT_PHYSICAL_STORE_ENTERPRISE_NAME[]
Definition: wincrypt.h:2779
LPVOID WINAPI CryptMemAlloc(_In_ ULONG cbSize) __WINE_ALLOC_SIZE(1)
struct _CERT_STORE_PROV_FIND_INFO * PCERT_STORE_PROV_FIND_INFO
WINCRYPT32API BOOL WINAPI CryptMsgCountersign(HCRYPTMSG hCryptMsg, DWORD dwIndex, DWORD dwCountersigners, PCMSG_SIGNER_ENCODE_INFO rgCountersigners)
struct _OCSP_REQUEST_INFO OCSP_REQUEST_INFO
struct _PUBKEY DSSPUBKEY
struct _CERT_RDN CERT_RDN
struct _HMAC_INFO HMAC_INFO
struct _CRYPT_RC2_CBC_PARAMETERS * PCRYPT_RC2_CBC_PARAMETERS
BOOL(WINAPI * PFN_CERT_STORE_PROV_WRITE_CERT)(HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwFlags)
Definition: wincrypt.h:1403
struct _CERT_ALT_NAME_ENTRY * PCERT_ALT_NAME_ENTRY
struct _CERT_KEY_ATTRIBUTES_INFO * PCERT_KEY_ATTRIBUTES_INFO
struct _CERT_POLICY_MAPPING CERT_POLICY_MAPPING
WINCRYPT32API BOOL WINAPI CryptHashCertificate2(LPCWSTR pwszCNGHashAlgid, DWORD dwFlags, void *pvReserved, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, DWORD *pcbComputedHash)
BOOL(WINAPI * PFN_CERT_STORE_PROV_WRITE_CTL)(HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwFlags)
Definition: wincrypt.h:1431
unsigned int ALG_ID
Definition: wincrypt.h:54
WINCRYPT32API BOOL WINAPI CertCompareIntegerBlob(PCRYPT_INTEGER_BLOB pInt1, PCRYPT_INTEGER_BLOB pInt2)
Definition: cert.c:1221
_In_ ULONG _In_opt_ PVOID pvData
Definition: winddi.h:3749
#define WINAPI
Definition: msvc.h:6
#define __WINE_DEALLOC(...)
Definition: winnt_old.h:86
#define __WINE_MALLOC
Definition: winnt_old.h:87
const char * LPCSTR
Definition: xmlstorage.h:183
char * LPSTR
Definition: xmlstorage.h:182
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
char CHAR
Definition: xmlstorage.h:175
unsigned char BYTE
Definition: xxhash.c:193
#define const
Definition: zconf.h:233