Changeset 21314 for trunk/include
- Timestamp:
- Jul 2, 2009, 12:20:20 PM (16 years ago)
- Location:
- trunk/include
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/initdll.h
r21301 r21314 112 112 ULONG APIENTRY inittermMSVCRT(ULONG hModule, ULONG ulFlag); 113 113 ULONG APIENTRY inittermImm32(ULONG hModule, ULONG ulFlag); 114 ULONG APIENTRY inittermCrypt32(ULONG hModule, ULONG ulFlag); 115 ULONG APIENTRY inittermOleacc(ULONG hModule, ULONG ulFlag); 116 ULONG APIENTRY inittermmscms(ULONG hModule, ULONG ulFlag); 114 117 115 118 ULONG APIENTRY InitializeKernel32(); -
trunk/include/win/config.h
r8426 r21314 6 6 #include <stddef.h> 7 7 8 #define PACKAGE_VERSION '1.1.10' 9 8 10 #endif -
trunk/include/win/winbase.h
r21299 r21314 474 474 #define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i))) 475 475 #define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i))) 476 #define MAKEINTRESOURCE WINELIB_NAME_AW(MAKEINTRESOURCE) 476 #define MAKEINTRESOURCE(i) ((ULONG_PTR)((WORD)(i))) 477 //#define MAKEINTRESOURCE WINELIB_NAME_AW(MAKEINTRESOURCE) 477 478 478 479 /* Predefined resource types */ … … 494 495 #define RT_STRINGA MAKEINTRESOURCEA(6) 495 496 #define RT_STRINGW MAKEINTRESOURCEW(6) 496 #define RT_STRING WINELIB_NAME_AW(RT_STRING) 497 //#define RT_STRING WINELIB_NAME_AW(RT_STRING) 498 #define RT_STRING MAKEINTRESOURCE(6) 497 499 #define RT_FONTDIRA MAKEINTRESOURCEA(7) 498 500 #define RT_FONTDIRW MAKEINTRESOURCEW(7) -
trunk/include/win/wincrypt.h
r2976 r21314 1 /* $Id: wincrypt.h,v 1.2 2000-03-02 23:07:56 sandervl Exp $ */ 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 */ 2 20 3 21 #ifndef __WINE_WINCRYPT_H 4 22 #define __WINE_WINCRYPT_H 5 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 #include <guiddef.h> 29 #include <windef.h> 30 #include <bcrypt.h> 31 /* FIXME: #include <ncrypt.h> */ 32 33 # define WINADVAPI 34 //DECLSPEC_IMPORT 35 6 36 /* some typedefs for function parameters */ 37 typedef unsigned int ALG_ID; 38 typedef ULONG_PTR HCRYPTPROV; 39 typedef ULONG_PTR HCRYPTPROV_OR_NCRYPT_KEY_HANDLE; 40 typedef ULONG_PTR HCRYPTPROV_LEGACY; 41 typedef ULONG_PTR HCRYPTKEY; 42 typedef ULONG_PTR HCRYPTHASH; 43 typedef void *HCERTSTORE; 44 typedef void *HCRYPTMSG; 45 typedef void *HCERTSTOREPROV; 46 typedef void *HCRYPTOIDFUNCSET; 47 typedef void *HCRYPTOIDFUNCADDR; 48 typedef void *HCRYPTDEFAULTCONTEXT; 49 50 /* CSP Structs */ 51 52 typedef struct _PROV_ENUMALGS { 53 ALG_ID aiAlgid; 54 DWORD dwBitLen; 55 DWORD dwNameLen; 56 CHAR szName[20]; 57 } PROV_ENUMALGS; 58 59 typedef struct _PROV_ENUMALGS_EX { 60 ALG_ID aiAlgid; 61 DWORD dwDefaultLen; 62 DWORD dwMinLen; 63 DWORD dwMaxLen; 64 DWORD dwProtocols; 65 DWORD dwNameLen; 66 CHAR szName[20]; 67 DWORD dwLongNameLen; 68 CHAR szLongName[40]; 69 } PROV_ENUMALGS_EX; 70 71 #define SCHANNEL_MAC_KEY 0 72 #define SCHANNEL_ENC_KEY 1 73 74 typedef struct _SCHANNEL_ALG { 75 DWORD dwUse; 76 ALG_ID Algid; 77 DWORD cBits; 78 DWORD dwFlags; 79 DWORD dwReserved; 80 } SCHANNEL_ALG, *PSCHANNEL_ALG; 81 82 typedef struct _HMAC_INFO { 83 ALG_ID HashAlgid; 84 BYTE* pbInnerString; 85 DWORD cbInnerString; 86 BYTE* pbOuterString; 87 DWORD cbOuterString; 88 } HMAC_INFO, *PHMAC_INFO; 89 90 typedef struct _CRYPTOAPI_BLOB { 91 DWORD cbData; 92 BYTE* pbData; 93 } CRYPT_INTEGER_BLOB, *PCRYPT_INTEGER_BLOB, 94 CRYPT_UINT_BLOB, *PCRYPT_UINT_BLOB, 95 CRYPT_OBJID_BLOB, *PCRYPT_OBJID_BLOB, 96 CERT_NAME_BLOB, *PCERT_NAME_BLOB, 97 CERT_RDN_VALUE_BLOB, *PCERT_RDN_VALUE_BLOB, 98 CERT_BLOB, *PCERT_BLOB, 99 CRL_BLOB, *PCRL_BLOB, 100 DATA_BLOB, *PDATA_BLOB, 101 CRYPT_DATA_BLOB, *PCRYPT_DATA_BLOB, 102 CRYPT_HASH_BLOB, *PCRYPT_HASH_BLOB, 103 CRYPT_DIGEST_BLOB, *PCRYPT_DIGEST_BLOB, 104 CRYPT_DER_BLOB, *PCRYPT_DER_BLOB, 105 CRYPT_ATTR_BLOB, *PCRYPT_ATTR_BLOB; 106 107 typedef struct _CRYPTPROTECT_PROMPTSTRUCT{ 108 DWORD cbSize; 109 DWORD dwPromptFlags; 110 HWND hwndApp; 111 LPCWSTR szPrompt; 112 } CRYPTPROTECT_PROMPTSTRUCT, *PCRYPTPROTECT_PROMPTSTRUCT; 113 114 typedef struct _CRYPT_ALGORITHM_IDENTIFIER { 115 LPSTR pszObjId; 116 CRYPT_OBJID_BLOB Parameters; 117 } CRYPT_ALGORITHM_IDENTIFIER, *PCRYPT_ALGORITHM_IDENTIFIER; 118 119 typedef struct _CRYPT_ATTRIBUTE_TYPE_VALUE { 120 LPSTR pszObjId; 121 CRYPT_OBJID_BLOB Value; 122 } CRYPT_ATTRIBUTE_TYPE_VALUE, *PCRYPT_ATTRIBUTE_TYPE_VALUE; 123 124 typedef struct _PUBLICKEYSTRUC { 125 BYTE bType; 126 BYTE bVersion; 127 WORD reserved; 128 ALG_ID aiKeyAlg; 129 } BLOBHEADER, PUBLICKEYSTRUC; 130 131 typedef struct _RSAPUBKEY { 132 DWORD magic; 133 DWORD bitlen; 134 DWORD pubexp; 135 } RSAPUBKEY; 136 137 typedef struct _PUBKEY { 138 DWORD magic; 139 DWORD bitlen; 140 } DHPUBKEY, DSSPUBKEY, KEAPUBKEY, TEKPUBKEY; 141 142 typedef struct _DSSSEED { 143 DWORD counter; 144 BYTE seed[20]; 145 } DSSSEED; 146 147 typedef struct _PUBKEYVER3 { 148 DWORD magic; 149 DWORD bitlenP; 150 DWORD bitlenQ; 151 DWORD bitlenJ; 152 DSSSEED DSSSeed; 153 } DHPUBKEY_VER3, DSSPUBKEY_VER3; 154 155 typedef struct _PRIVKEYVER3 { 156 DWORD magic; 157 DWORD bitlenP; 158 DWORD bitlenQ; 159 DWORD bitlenJ; 160 DWORD bitlenX; 161 DSSSEED DSSSeed; 162 } DHPRIVKEY_VER3, DSSPRIVKEY_VER3; 163 164 typedef struct _KEY_TYPE_SUBTYPE { 165 DWORD dwKeySpec; 166 GUID Type; 167 GUID SubType; 168 } KEY_TYPE_SUBTYPE, *PKEY_TYPE_SUBTYPE; 169 170 typedef struct _CERT_FORTEZZA_DATA_PROP { 171 unsigned char SerialNumber[8]; 172 int CertIndex; 173 unsigned char CertLabel[36]; 174 } CERT_FORTEZZA_DATA_PROP; 175 176 typedef struct _CMS_DH_KEY_INFO { 177 DWORD dwVersion; 178 ALG_ID Algid; 179 LPSTR pszContentEncObjId; 180 CRYPT_DATA_BLOB PubInfo; 181 void *pReserved; 182 } CMS_DH_KEY_INFO, *PCMS_DH_KEY_INFO; 183 184 typedef struct _CRYPT_BIT_BLOB { 185 DWORD cbData; 186 BYTE *pbData; 187 DWORD cUnusedBits; 188 } CRYPT_BIT_BLOB, *PCRYPT_BIT_BLOB; 189 190 typedef struct _CRYPT_KEY_PROV_PARAM { 191 DWORD dwParam; 192 BYTE *pbData; 193 DWORD cbData; 194 DWORD dwFlags; 195 } CRYPT_KEY_PROV_PARAM, *PCRYPT_KEY_PROV_PARAM; 196 197 typedef struct _CRYPT_KEY_PROV_INFO { 198 LPWSTR pwszContainerName; 199 LPWSTR pwszProvName; 200 DWORD dwProvType; 201 DWORD dwFlags; 202 DWORD cProvParam; 203 PCRYPT_KEY_PROV_PARAM rgProvParam; 204 DWORD dwKeySpec; 205 } CRYPT_KEY_PROV_INFO, *PCRYPT_KEY_PROV_INFO; 206 207 typedef struct _CERT_KEY_CONTEXT { 208 DWORD cbSize; 209 HCRYPTPROV hCryptProv; 210 DWORD dwKeySpec; 211 } CERT_KEY_CONTEXT, *PCERT_KEY_CONTEXT; 212 213 typedef struct _CERT_PUBLIC_KEY_INFO { 214 CRYPT_ALGORITHM_IDENTIFIER Algorithm; 215 CRYPT_BIT_BLOB PublicKey; 216 } CERT_PUBLIC_KEY_INFO, *PCERT_PUBLIC_KEY_INFO; 217 218 typedef struct _CERT_EXTENSION { 219 LPSTR pszObjId; 220 BOOL fCritical; 221 CRYPT_OBJID_BLOB Value; 222 } CERT_EXTENSION, *PCERT_EXTENSION; 223 224 typedef struct _CERT_EXTENSIONS { 225 DWORD cExtension; 226 PCERT_EXTENSION rgExtension; 227 } CERT_EXTENSIONS, *PCERT_EXTENSIONS; 228 229 typedef struct _CERT_INFO { 230 DWORD dwVersion; 231 CRYPT_INTEGER_BLOB SerialNumber; 232 CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; 233 CERT_NAME_BLOB Issuer; 234 FILETIME NotBefore; 235 FILETIME NotAfter; 236 CERT_NAME_BLOB Subject; 237 CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo; 238 CRYPT_BIT_BLOB IssuerUniqueId; 239 CRYPT_BIT_BLOB SubjectUniqueId; 240 DWORD cExtension; 241 PCERT_EXTENSION rgExtension; 242 } CERT_INFO, *PCERT_INFO; 243 244 typedef struct _CERT_RDN_ATTR { 245 LPSTR pszObjId; 246 DWORD dwValueType; 247 CERT_RDN_VALUE_BLOB Value; 248 } CERT_RDN_ATTR, *PCERT_RDN_ATTR; 249 250 typedef struct _CERT_RDN { 251 DWORD cRDNAttr; 252 PCERT_RDN_ATTR rgRDNAttr; 253 } CERT_RDN, *PCERT_RDN; 254 255 typedef struct _CERT_NAME_INFO { 256 DWORD cRDN; 257 PCERT_RDN rgRDN; 258 } CERT_NAME_INFO, *PCERT_NAME_INFO; 259 260 typedef struct _CERT_NAME_VALUE { 261 DWORD dwValueType; 262 CERT_RDN_VALUE_BLOB Value; 263 } CERT_NAME_VALUE, *PCERT_NAME_VALUE; 264 265 typedef struct _CERT_ENCRYPTED_PRIVATE_KEY_INFO { 266 CRYPT_ALGORITHM_IDENTIFIER EncryptionAlgorithm; 267 CRYPT_DATA_BLOB EncryptedPrivateKey; 268 } CERT_ENCRYPTED_PRIVATE_KEY_INFO, *PCERT_ENCRYPTED_PRIVATE_KEY_INFO; 269 270 typedef struct _CERT_AUTHORITY_KEY_ID_INFO { 271 CRYPT_DATA_BLOB KeyId; 272 CERT_NAME_BLOB CertIssuer; 273 CRYPT_INTEGER_BLOB CertSerialNumber; 274 } CERT_AUTHORITY_KEY_ID_INFO, *PCERT_AUTHORITY_KEY_ID_INFO; 275 276 typedef struct _CERT_PRIVATE_KEY_VALIDITY { 277 FILETIME NotBefore; 278 FILETIME NotAfter; 279 } CERT_PRIVATE_KEY_VALIDITY, *PCERT_PRIVATE_KEY_VALIDITY; 280 281 typedef struct _CERT_KEY_ATTRIBUTES_INFO { 282 CRYPT_DATA_BLOB KeyId; 283 CRYPT_BIT_BLOB IntendedKeyUsage; 284 PCERT_PRIVATE_KEY_VALIDITY pPrivateKeyUsagePeriod; 285 } CERT_KEY_ATTRIBUTES_INFO, *PCERT_KEY_ATTRIBUTES_INFO; 286 287 /* byte 0 */ 288 #define CERT_DIGITAL_SIGNATURE_KEY_USAGE 0x80 289 #define CERT_NON_REPUDIATION_KEY_USAGE 0x40 290 #define CERT_KEY_ENCIPHERMENT_KEY_USAGE 0x20 291 #define CERT_DATA_ENCIPHERMENT_KEY_USAGE 0x10 292 #define CERT_KEY_AGREEMENT_KEY_USAGE 0x08 293 #define CERT_KEY_CERT_SIGN_KEY_USAGE 0x04 294 #define CERT_OFFLINE_CRL_SIGN_KEY_USAGE 0x02 295 #define CERT_CRL_SIGN_KEY_USAGE 0x02 296 #define CERT_ENCIPHER_ONLY_KEY_USAGE 0x01 297 /* byte 1 */ 298 #define CERT_DECIPHER_ONLY_KEY_USAGE 0x80 299 300 typedef struct _CERT_POLICY_ID { 301 DWORD cCertPolicyElementId; 302 LPSTR *rgbszCertPolicyElementId; 303 } CERT_POLICY_ID, *PCERT_POLICY_ID; 304 305 typedef struct _CERT_KEY_USAGE_RESTRICTION_INFO { 306 DWORD cCertPolicyId; 307 PCERT_POLICY_ID rgCertPolicyId; 308 CRYPT_BIT_BLOB RestrictedKeyUsage; 309 } CERT_KEY_USAGE_RESTRICTION_INFO, *PCERT_KEY_USAGE_RESTRICTION_INFO; 310 311 typedef struct _CERT_OTHER_NAME { 312 LPSTR pszObjId; 313 CRYPT_OBJID_BLOB Value; 314 } CERT_OTHER_NAME, *PCERT_OTHER_NAME; 315 316 typedef struct _CERT_ALT_NAME_ENTRY { 317 DWORD dwAltNameChoice; 318 union { 319 PCERT_OTHER_NAME pOtherName; 320 LPWSTR pwszRfc822Name; 321 LPWSTR pwszDNSName; 322 CERT_NAME_BLOB DirectoryName; 323 LPWSTR pwszURL; 324 CRYPT_DATA_BLOB IPAddress; 325 LPSTR pszRegisteredID; 326 } DUMMYUNIONNAME; 327 } CERT_ALT_NAME_ENTRY, *PCERT_ALT_NAME_ENTRY; 328 329 #define CERT_ALT_NAME_OTHER_NAME 1 330 #define CERT_ALT_NAME_RFC822_NAME 2 331 #define CERT_ALT_NAME_DNS_NAME 3 332 #define CERT_ALT_NAME_X400_ADDRESS 4 333 #define CERT_ALT_NAME_DIRECTORY_NAME 5 334 #define CERT_ALT_NAME_EDI_PARTY_NAME 6 335 #define CERT_ALT_NAME_URL 7 336 #define CERT_ALT_NAME_IP_ADDRESS 8 337 #define CERT_ALT_NAME_REGISTERED_ID 9 338 339 typedef struct _CERT_ALT_NAME_INFO { 340 DWORD cAltEntry; 341 PCERT_ALT_NAME_ENTRY rgAltEntry; 342 } CERT_ALT_NAME_INFO, *PCERT_ALT_NAME_INFO; 343 344 #define CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK 0xff 345 #define CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT 16 346 #define CERT_ALT_NAME_VALUE_ERR_INDEX_MASK 0x0000ffff 347 #define CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT 0 348 #define GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(x) \ 349 (((x) >> CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT) & \ 350 CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK) 351 #define GET_CERT_ALT_NAME_VALUE_ERR_INDEX(x) \ 352 ((x) & CERT_ALT_NAME_VALUE_ERR_INDEX_MASK) 353 354 typedef struct _CERT_BASIC_CONSTRAINTS_INFO { 355 CRYPT_BIT_BLOB SubjectType; 356 BOOL fPathLenConstraint; 357 DWORD dwPathLenConstraint; 358 DWORD cSubtreesConstraint; 359 CERT_NAME_BLOB *rgSubtreesConstraint; 360 } CERT_BASIC_CONSTRAINTS_INFO, *PCERT_BASIC_CONSTRAINTS_INFO; 361 362 #define CERT_CA_SUBJECT_FLAG 0x80 363 #define CERT_END_ENTITY_SUBJECT_FLAG 0x40 364 365 typedef struct _CERT_BASIC_CONSTRAINTS2_INFO { 366 BOOL fCA; 367 BOOL fPathLenConstraint; 368 DWORD dwPathLenConstraint; 369 } CERT_BASIC_CONSTRAINTS2_INFO, *PCERT_BASIC_CONSTRAINTS2_INFO; 370 371 typedef struct _CERT_POLICY_QUALIFIER_INFO { 372 LPSTR pszPolicyQualifierId; 373 CRYPT_OBJID_BLOB Qualifier; 374 } CERT_POLICY_QUALIFIER_INFO, *PCERT_POLICY_QUALIFIER_INFO; 375 376 typedef struct _CERT_POLICY_INFO { 377 LPSTR pszPolicyIdentifier; 378 DWORD cPolicyQualifier; 379 CERT_POLICY_QUALIFIER_INFO *rgPolicyQualifier; 380 } CERT_POLICY_INFO, *PCERT_POLICY_INFO; 381 382 typedef struct _CERT_POLICIES_INFO { 383 DWORD cPolicyInfo; 384 CERT_POLICY_INFO *rgPolicyInfo; 385 } CERT_POLICIES_INFO, *PCERT_POLICIES_INFO; 386 387 typedef struct _CERT_POLICY_QUALIFIER_NOTICE_REFERENCE { 388 LPSTR pszOrganization; 389 DWORD cNoticeNumbers; 390 int *rgNoticeNumbers; 391 } CERT_POLICY_QUALIFIER_NOTICE_REFERENCE, 392 *PCERT_POLICY_QUALIFIER_NOTICE_REFERENCE; 393 394 typedef struct _CERT_POLICY_QUALIFIER_USER_NOTICE { 395 CERT_POLICY_QUALIFIER_NOTICE_REFERENCE *pNoticeReference; 396 LPWSTR pszDisplayText; 397 } CERT_POLICY_QUALIFIER_USER_NOTICE, *PCERT_POLICY_QUALIFIER_USER_NOTICE; 398 399 typedef struct _CPS_URLS { 400 LPWSTR pszURL; 401 CRYPT_ALGORITHM_IDENTIFIER *pAlgorithm; 402 CRYPT_DATA_BLOB *pDigest; 403 } CPS_URLS, *PCPS_URLS; 404 405 typedef struct _CERT_POLICY95_QUALIFIER1 { 406 LPWSTR pszPracticesReference; 407 LPSTR pszNoticeIdentifier; 408 LPSTR pszNSINoticeIdentifier; 409 DWORD cCPSURLs; 410 CPS_URLS *rgCPSURLs; 411 } CERT_POLICY95_QUALIFIER1, *PCERT_POLICY95_QUALIFIER1; 412 413 typedef struct _CERT_POLICY_MAPPING { 414 LPSTR pszIssuerDomainPolicy; 415 LPSTR pszSubjectDomainPolicy; 416 } CERT_POLICY_MAPPING, *PCERT_POLICY_MAPPING; 417 418 typedef struct _CERT_POLICY_MAPPINGS_INFO { 419 DWORD cPolicyMapping; 420 PCERT_POLICY_MAPPING rgPolicyMapping; 421 } CERT_POLICY_MAPPINGS_INFO, *PCERT_POLICY_MAPPINGS_INFO; 422 423 typedef struct _CERT_POLICY_CONSTRAINTS_INFO { 424 BOOL fRequireExplicitPolicy; 425 DWORD dwRequireExplicitPolicySkipCerts; 426 BOOL fInhibitPolicyMapping; 427 DWORD dwInhibitPolicyMappingSkipCerts; 428 } CERT_POLICY_CONSTRAINTS_INFO, *PCERT_POLICY_CONSTRAINTS_INFO; 429 430 typedef struct _CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY { 431 LPSTR pszObjId; 432 DWORD cValue; 433 PCRYPT_DER_BLOB rgValue; 434 } CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY, *PCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY; 435 436 typedef struct _CRYPT_CONTENT_INFO { 437 LPSTR pszObjId; 438 CRYPT_DER_BLOB Content; 439 } CRYPT_CONTENT_INFO, *PCRYPT_CONTENT_INFO; 440 441 typedef struct _CRYPT_SEQUENCE_OF_ANY { 442 DWORD cValue; 443 PCRYPT_DER_BLOB rgValue; 444 } CRYPT_SEQUENCE_OF_ANY, *PCRYPT_SEQUENCE_OF_ANY; 445 446 typedef struct _CERT_AUTHORITY_KEY_ID2_INFO { 447 CRYPT_DATA_BLOB KeyId; 448 CERT_ALT_NAME_INFO AuthorityCertIssuer; 449 CRYPT_INTEGER_BLOB AuthorityCertSerialNumber; 450 } CERT_AUTHORITY_KEY_ID2_INFO, *PCERT_AUTHORITY_KEY_ID2_INFO; 451 452 typedef struct _CERT_ACCESS_DESCRIPTION { 453 LPSTR pszAccessMethod; 454 CERT_ALT_NAME_ENTRY AccessLocation; 455 } CERT_ACCESS_DESCRIPTION, *PCERT_ACCESS_DESCRIPTION; 456 457 typedef struct _CERT_AUTHORITY_INFO_ACCESS { 458 DWORD cAccDescr; 459 PCERT_ACCESS_DESCRIPTION rgAccDescr; 460 } CERT_AUTHORITY_INFO_ACCESS, *PCERT_AUTHORITY_INFO_ACCESS; 461 462 typedef struct _CERT_CONTEXT { 463 DWORD dwCertEncodingType; 464 BYTE *pbCertEncoded; 465 DWORD cbCertEncoded; 466 PCERT_INFO pCertInfo; 467 HCERTSTORE hCertStore; 468 } CERT_CONTEXT, *PCERT_CONTEXT; 469 typedef const CERT_CONTEXT *PCCERT_CONTEXT; 470 471 typedef struct _CRL_ENTRY { 472 CRYPT_INTEGER_BLOB SerialNumber; 473 FILETIME RevocationDate; 474 DWORD cExtension; 475 PCERT_EXTENSION rgExtension; 476 } CRL_ENTRY, *PCRL_ENTRY; 477 478 typedef struct _CRL_INFO { 479 DWORD dwVersion; 480 CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; 481 CERT_NAME_BLOB Issuer; 482 FILETIME ThisUpdate; 483 FILETIME NextUpdate; 484 DWORD cCRLEntry; 485 PCRL_ENTRY rgCRLEntry; 486 DWORD cExtension; 487 PCERT_EXTENSION rgExtension; 488 } CRL_INFO, *PCRL_INFO; 489 490 typedef struct _CRL_DIST_POINT_NAME { 491 DWORD dwDistPointNameChoice; 492 union { 493 CERT_ALT_NAME_INFO FullName; 494 } DUMMYUNIONNAME; 495 } CRL_DIST_POINT_NAME, *PCRL_DIST_POINT_NAME; 496 497 #define CRL_DIST_POINT_NO_NAME 0 498 #define CRL_DIST_POINT_FULL_NAME 1 499 #define CRL_DIST_POINT_ISSUER_RDN_NAME 2 500 501 typedef struct _CRL_DIST_POINT { 502 CRL_DIST_POINT_NAME DistPointName; 503 CRYPT_BIT_BLOB ReasonFlags; 504 CERT_ALT_NAME_INFO CRLIssuer; 505 } CRL_DIST_POINT, *PCRL_DIST_POINT; 506 507 #define CRL_REASON_UNUSED_FLAG 0x80 508 #define CRL_REASON_KEY_COMPROMISE_FLAG 0x40 509 #define CRL_REASON_CA_COMPROMISE_FLAG 0x20 510 #define CRL_REASON_AFFILIATION_CHANGED_FLAG 0x10 511 #define CRL_REASON_SUPERSEDED_FLAG 0x08 512 #define CRL_REASON_CESSATION_OF_OPERATION_FLAG 0x04 513 #define CRL_REASON_CERTIFICATE_HOLD_FLAG 0x02 514 515 typedef struct _CRL_DIST_POINTS_INFO { 516 DWORD cDistPoint; 517 PCRL_DIST_POINT rgDistPoint; 518 } CRL_DIST_POINTS_INFO, *PCRL_DIST_POINTS_INFO; 519 520 #define CRL_DIST_POINT_ERR_INDEX_MASK 0x7f 521 #define CRL_DIST_POINT_ERR_INDEX_SHIFT 24 522 #define GET_CRL_DIST_POINT_ERR_INDEX(x) \ 523 (((x) >> CRL_DIST_POINT_ERR_INDEX_SHIFT) & CRL_DIST_POINT_ERR_INDEX_MASK) 524 525 #define CRL_DIST_POINT_ERR_CRL_ISSUER_BIT 0x80000000L 526 #define IS_CRL_DIST_POINT_ERR_CRL_ISSUER(x) \ 527 ((x) & CRL_DIST_POINT_ERR_CRL_ISSUER_BIT) 528 529 typedef struct _CROSS_CERT_DIST_POINTS_INFO { 530 DWORD dwSyncDeltaTime; 531 DWORD cDistPoint; 532 PCERT_ALT_NAME_INFO rgDistPoint; 533 } CROSS_CERT_DIST_POINTS_INFO, *PCROSS_CERT_DIST_POINTS_INFO; 534 535 #define CROSS_CERT_DIST_POINT_ERR_INDEX_MASK 0xff 536 #define CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT 24 537 #define GET_CROSS_CERT_DIST_POINT_ERR_INDEX(x) \ 538 (((x) >> CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT) & \ 539 CROSS_CERT_DIST_POINT_ERR_INDEX_MASK) 540 541 typedef struct _CERT_PAIR { 542 CERT_BLOB Forward; 543 CERT_BLOB Reverse; 544 } CERT_PAIR, *PCERT_PAIR; 545 546 typedef struct _CRL_ISSUING_DIST_POINT { 547 CRL_DIST_POINT_NAME DistPointName; 548 BOOL fOnlyContainsUserCerts; 549 BOOL fOnlyContainsCACerts; 550 CRYPT_BIT_BLOB OnlySomeReasonFlags; 551 BOOL fIndirectCRL; 552 } CRL_ISSUING_DIST_POINT, *PCRL_ISSUING_DIST_POINT; 553 554 typedef struct _CERT_GENERAL_SUBTREE { 555 CERT_ALT_NAME_ENTRY Base; 556 DWORD dwMinimum; 557 BOOL fMaximum; 558 DWORD dwMaximum; 559 } CERT_GENERAL_SUBTREE, *PCERT_GENERAL_SUBTREE; 560 561 typedef struct _CERT_NAME_CONSTRAINTS_INFO { 562 DWORD cPermittedSubtree; 563 PCERT_GENERAL_SUBTREE rgPermittedSubtree; 564 DWORD cExcludedSubtree; 565 PCERT_GENERAL_SUBTREE rgExcludedSubtree; 566 } CERT_NAME_CONSTRAINTS_INFO, *PCERT_NAME_CONSTRAINTS_INFO; 567 568 #define CERT_EXCLUDED_SUBTREE_BIT 0x80000000L 569 #define IS_CERT_EXCLUDED_SUBTREE(x) ((x) & CERT_EXCLUDED_SUBTREE_BIT) 570 571 typedef struct _CRYPT_ATTRIBUTE { 572 LPSTR pszObjId; 573 DWORD cValue; 574 PCRYPT_DATA_BLOB rgValue; 575 } CRYPT_ATTRIBUTE, *PCRYPT_ATTRIBUTE; 576 577 typedef struct _CRYPT_ATTRIBUTES { 578 DWORD cAttr; 579 PCRYPT_ATTRIBUTE rgAttr; 580 } CRYPT_ATTRIBUTES, *PCRYPT_ATTRIBUTES; 581 582 typedef struct _CERT_REQUEST_INFO { 583 DWORD dwVersion; 584 CERT_NAME_BLOB Subject; 585 CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo; 586 DWORD cAttribute; 587 PCRYPT_ATTRIBUTE rgAttribute; 588 } CERT_REQUEST_INFO, *PCERT_REQUEST_INFO; 589 590 typedef struct _CERT_KEYGEN_REQUEST_INFO { 591 DWORD dwVersion; 592 CERT_PUBLIC_KEY_INFO SubjectPubliceKeyInfo; 593 LPWSTR pwszChallengeString; 594 } CERT_KEYGEN_REQUEST_INFO, *PCERT_KEYGEN_REQUEST_INFO; 595 596 typedef struct _CERT_SIGNED_CONTENT_INFO { 597 CRYPT_DER_BLOB ToBeSigned; 598 CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; 599 CRYPT_BIT_BLOB Signature; 600 } CERT_SIGNED_CONTENT_INFO, *PCERT_SIGNED_CONTENT_INFO; 601 602 typedef struct _CRL_CONTEXT { 603 DWORD dwCertEncodingType; 604 BYTE *pbCrlEncoded; 605 DWORD cbCrlEncoded; 606 PCRL_INFO pCrlInfo; 607 HCERTSTORE hCertStore; 608 } CRL_CONTEXT, *PCRL_CONTEXT; 609 typedef const CRL_CONTEXT *PCCRL_CONTEXT; 610 611 #define SORTED_CTL_EXT_FLAGS_OFFSET (0*4) 612 #define SORTED_CTL_EXT_COUNT_OFFSET (1*4) 613 #define SORTED_CTL_EXT_MAX_COLLISION_OFFSET (2*4) 614 #define SORTED_CTL_EXT_HASH_BUCKET_OFFSET (3*4) 615 616 #define SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG 0x1 617 618 typedef struct _CERT_DSS_PARAMETERS { 619 CRYPT_UINT_BLOB p; 620 CRYPT_UINT_BLOB q; 621 CRYPT_UINT_BLOB g; 622 } CERT_DSS_PARAMETERS, *PCERT_DSS_PARAMETERS; 623 624 #define CERT_DSS_R_LEN 20 625 #define CERT_DSS_S_LEN 20 626 #define CERT_DSS_SIGNATURE_LEN (CERT_DSS_R_LEN + CERT_DSS_S_LEN) 627 628 #define CERT_MAX_ENCODED_DSS_SIGNATURE_LEN (2 + 2*(2 + 20 +1)) 629 630 typedef struct _CERT_DH_PARAMETERS { 631 CRYPT_UINT_BLOB p; 632 CRYPT_UINT_BLOB g; 633 } CERT_DH_PARAMETERS, *PCERT_DH_PARAMETERS; 634 635 typedef struct _CERT_X942_DH_VALIDATION_PARAMS { 636 CRYPT_BIT_BLOB seed; 637 DWORD pgenCounter; 638 } CERT_X942_DH_VALIDATION_PARAMS, *PCERT_X942_DH_VALIDATION_PARAMS; 639 640 typedef struct _CERT_X942_DH_PARAMETERS { 641 CRYPT_UINT_BLOB p; 642 CRYPT_UINT_BLOB g; 643 CRYPT_UINT_BLOB q; 644 CRYPT_UINT_BLOB j; 645 PCERT_X942_DH_VALIDATION_PARAMS pValidationParams; 646 } CERT_X942_DH_PARAMETERS, *PCERT_X942_DH_PARAMETERS; 647 648 #define CRYPT_X942_COUNTER_BYTE_LENGTH 4 649 #define CRYPT_X942_KEY_LENGTH_BYTE_LENGTH 4 650 #define CRYPT_X942_PUB_INFO_BYTE_LENGTH (512/8) 651 652 typedef struct _CRYPT_X942_OTHER_INFO { 653 LPSTR pszContentEncryptionObjId; 654 BYTE rgbCounter[CRYPT_X942_COUNTER_BYTE_LENGTH]; 655 BYTE rgbKeyLength[CRYPT_X942_KEY_LENGTH_BYTE_LENGTH]; 656 CRYPT_DATA_BLOB PubInfo; 657 } CRYPT_X942_OTHER_INFO, *PCRYPT_X942_OTHER_INFO; 658 659 typedef struct _CRYPT_RC2_CBC_PARAMETERS { 660 DWORD dwVersion; 661 BOOL fIV; 662 BYTE rgbIV[4]; 663 } CRYPT_RC2_CBC_PARAMETERS, *PCRYPT_RC2_CBC_PARAMETERS; 664 665 #define CRYPT_RC2_40BIT_VERSION 160 666 #define CRYPT_RC2_56BIT_VERSION 52 667 #define CRYPT_RC2_64BIT_VERSION 120 668 #define CRYPT_RC2_128BIT_VERSION 58 669 670 typedef struct _CRYPT_SMIME_CAPABILITY { 671 LPSTR pszObjId; 672 CRYPT_OBJID_BLOB Parameters; 673 } CRYPT_SMIME_CAPABILITY, *PCRYPT_SMIME_CAPABILITY; 674 675 typedef struct _CRYPT_SMIME_CAPABILITIES { 676 DWORD cCapability; 677 PCRYPT_SMIME_CAPABILITY rgCapability; 678 } CRYPT_SMIME_CAPABILITIES, *PCRYPT_SMIME_CAPABILITIES; 679 680 typedef struct _VTableProvStruc { 681 DWORD Version; 682 FARPROC pFuncVerifyImage; 683 FARPROC pFuncReturnhWnd; 684 DWORD dwProvType; 685 BYTE *pbContextInfo; 686 DWORD cbContextInfo; 687 LPSTR pszProvName; 688 } VTableProvStruc, *PVTableProvStruc; 689 690 typedef struct _CERT_PRIVATE_KEY_INFO { 691 DWORD Version; 692 CRYPT_ALGORITHM_IDENTIFIER Algorithm; 693 CRYPT_DER_BLOB PrivateKey; 694 PCRYPT_ATTRIBUTES pAttributes; 695 } CERT_PRIVATE_KEY_INFO, *PCERT_PRIVATE_KEY_INFO; 696 697 typedef struct _CTL_USAGE { 698 DWORD cUsageIdentifier; 699 LPSTR *rgpszUsageIdentifier; 700 } CTL_USAGE, *PCTL_USAGE, CERT_ENHKEY_USAGE, *PCERT_ENHKEY_USAGE; 701 702 typedef struct _CTL_ENTRY { 703 CRYPT_DATA_BLOB SubjectIdentifier; 704 DWORD cAttribute; 705 PCRYPT_ATTRIBUTE rgAttribute; 706 } CTL_ENTRY, *PCTL_ENTRY; 707 708 typedef struct _CTL_INFO { 709 DWORD dwVersion; 710 CTL_USAGE SubjectUsage; 711 CRYPT_DATA_BLOB ListIdentifier; 712 CRYPT_INTEGER_BLOB SequenceNumber; 713 FILETIME ThisUpdate; 714 FILETIME NextUpdate; 715 CRYPT_ALGORITHM_IDENTIFIER SubjectAlgorithm; 716 DWORD cCTLEntry; 717 PCTL_ENTRY rgCTLEntry; 718 DWORD cExtension; 719 PCERT_EXTENSION rgExtension; 720 } CTL_INFO, *PCTL_INFO; 721 722 typedef struct _CTL_CONTEXT { 723 DWORD dwMsgAndCertEncodingType; 724 BYTE *pbCtlEncoded; 725 DWORD cbCtlEncoded; 726 PCTL_INFO pCtlInfo; 727 HCERTSTORE hCertStore; 728 HCRYPTMSG hCryptMsg; 729 BYTE *pbCtlContext; 730 DWORD cbCtlContext; 731 } CTL_CONTEXT, *PCTL_CONTEXT; 732 typedef const CTL_CONTEXT *PCCTL_CONTEXT; 733 734 typedef struct _CRYPT_TIME_STAMP_REQUEST_INFO { 735 LPSTR pszTimeStampAlgorithm; 736 LPSTR pszContentType; 737 CRYPT_OBJID_BLOB Content; 738 DWORD cAttribute; 739 PCRYPT_ATTRIBUTE rgAttribute; 740 } CRYPT_TIME_STAMP_REQUEST_INFO, *PCRYPT_TIME_STAMP_REQUEST_INFO; 741 742 typedef struct _CRYPT_ENROLLMENT_NAME_VALUE_PAIR { 743 LPWSTR pwszName; 744 LPWSTR pwszValue; 745 } CRYPT_ENROLLMENT_NAME_VALUE_PAIR, *PCRYPT_ENROLLMENT_NAME_VALUE_PAIR; 746 747 typedef struct _CMSG_SIGNER_INFO { 748 DWORD dwVersion; 749 CERT_NAME_BLOB Issuer; 750 CRYPT_INTEGER_BLOB SerialNumber; 751 CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; 752 CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm; 753 CRYPT_DATA_BLOB EncryptedHash; 754 CRYPT_ATTRIBUTES AuthAttrs; 755 CRYPT_ATTRIBUTES UnauthAttrs; 756 } CMSG_SIGNER_INFO, *PCMSG_SIGNER_INFO; 757 758 #define CMSG_VERIFY_SIGNER_PUBKEY 1 759 #define CMSG_VERIFY_SIGNER_CERT 2 760 #define CMSG_VERIFY_SIGNER_CHAIN 3 761 #define CMSG_VERIFY_SIGNER_NULL 4 762 763 typedef struct _CERT_REVOCATION_CRL_INFO { 764 DWORD cbSize; 765 PCCRL_CONTEXT pBaseCrlContext; 766 PCCRL_CONTEXT pDeltaCrlContext; 767 PCRL_ENTRY pCrlEntry; 768 BOOL fDeltaCrlEntry; 769 } CERT_REVOCATION_CRL_INFO, *PCERT_REVOCATION_CRL_INFO; 770 771 typedef struct _CERT_REVOCATION_INFO { 772 DWORD cbSize; 773 DWORD dwRevocationResult; 774 LPCSTR pszRevocationOid; 775 LPVOID pvOidSpecificInfo; 776 BOOL fHasFreshnessTime; 777 DWORD dwFreshnessTime; 778 PCERT_REVOCATION_CRL_INFO pCrlInfo; 779 } CERT_REVOCATION_INFO, *PCERT_REVOCATION_INFO; 780 781 typedef struct _CERT_REVOCATION_PARA { 782 DWORD cbSize; 783 PCCERT_CONTEXT pIssuerCert; 784 DWORD cCertStore; 785 HCERTSTORE *rgCertStore; 786 HCERTSTORE hCrlStore; 787 LPFILETIME pftTimeToUse; 788 #ifdef CERT_REVOCATION_PARA_HAS_EXTRA_FIELDS 789 DWORD dwUrlRetrievalTimeout; 790 BOOL fCheckFreshnessTime; 791 DWORD dwFreshnessTime; 792 LPFILETIME pftCurrentTime; 793 PCERT_REVOCATION_CRL_INFO pCrlInfo; 794 #endif 795 } CERT_REVOCATION_PARA, *PCERT_REVOCATION_PARA; 796 797 #define CERT_CONTEXT_REVOCATION_TYPE 1 798 #define CERT_VERIFY_REV_CHAIN_FLAG 0x00000001 799 #define CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION 0x00000002 800 #define CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG 0x00000004 801 802 typedef struct _CTL_VERIFY_USAGE_PARA { 803 DWORD cbSize; 804 CRYPT_DATA_BLOB ListIdentifier; 805 DWORD cCtlStore; 806 HCERTSTORE *rghCtlStore; 807 DWORD cSignerStore; 808 HCERTSTORE *rghSignerStore; 809 } CTL_VERIFY_USAGE_PARA, *PCTL_VERIFY_USAGE_PARA; 810 811 typedef struct _CTL_VERIFY_USAGE_STATUS { 812 DWORD cbSize; 813 DWORD dwError; 814 DWORD dwFlags; 815 PCCTL_CONTEXT *ppCtl; 816 DWORD dwCtlEntryIndex; 817 PCCERT_CONTEXT *ppSigner; 818 DWORD dwSignerIndex; 819 } CTL_VERIFY_USAGE_STATUS, *PCTL_VERIFY_USAGE_STATUS; 820 821 #define CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG 0x1 822 #define CERT_VERIFY_TRUSTED_SIGNERS_FLAG 0x2 823 #define CERT_VERIFY_NO_TIME_CHECK_FLAG 0x4 824 #define CERT_VERIFY_ALLOW_MORE_USAGE_FLAG 0x8 825 #define CERT_VERIFY_UPDATED_CTL_FLAG 0x1 826 827 typedef struct _CERT_REVOCATION_STATUS { 828 DWORD cbSize; 829 DWORD dwIndex; 830 DWORD dwError; 831 DWORD dwReason; 832 BOOL fHasFreshnessTime; 833 DWORD dwFreshnessTime; 834 } CERT_REVOCATION_STATUS, *PCERT_REVOCATION_STATUS; 835 836 typedef struct _CERT_TRUST_LIST_INFO { 837 DWORD cbSize; 838 PCTL_ENTRY pCtlEntry; 839 PCCTL_CONTEXT pCtlContext; 840 } CERT_TRUST_LIST_INFO, *PCERT_TRUST_LIST_INFO; 841 842 #define CERT_TRUST_NO_ERROR 0x00000000 843 #define CERT_TRUST_IS_NOT_TIME_VALID 0x00000001 844 #define CERT_TRUST_IS_NOT_TIME_NESTED 0x00000002 845 #define CERT_TRUST_IS_REVOKED 0x00000004 846 #define CERT_TRUST_IS_NOT_SIGNATURE_VALID 0x00000008 847 #define CERT_TRUST_IS_NOT_VALID_FOR_USAGE 0x00000010 848 #define CERT_TRUST_IS_UNTRUSTED_ROOT 0x00000020 849 #define CERT_TRUST_REVOCATION_STATUS_UNKNOWN 0x00000040 850 #define CERT_TRUST_IS_CYCLIC 0x00000080 851 #define CERT_TRUST_INVALID_EXTENSION 0x00000100 852 #define CERT_TRUST_INVALID_POLICY_CONSTRAINTS 0x00000200 853 #define CERT_TRUST_INVALID_BASIC_CONSTRAINTS 0x00000400 854 #define CERT_TRUST_INVALID_NAME_CONSTRAINTS 0x00000800 855 #define CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT 0x00001000 856 #define CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT 0x00002000 857 #define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT 0x00004000 858 #define CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT 0x00008000 859 #define CERT_TRUST_IS_OFFLINE_REVOCATION 0x01000000 860 #define CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY 0x02000000 861 862 #define CERT_TRUST_IS_PARTIAL_CHAIN 0x00010000 863 #define CERT_TRUST_CTL_IS_NOT_TIME_VALID 0x00020000 864 #define CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID 0x00040000 865 #define CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE 0x00080000 866 867 #define CERT_TRUST_HAS_EXACT_MATCH_ISSUER 0x00000001 868 #define CERT_TRUST_HAS_KEY_MATCH_ISSUER 0x00000002 869 #define CERT_TRUST_HAS_NAME_MATCH_ISSUER 0x00000004 870 #define CERT_TRUST_IS_SELF_SIGNED 0x00000008 871 872 #define CERT_TRUST_HAS_PREFERRED_ISSUER 0x00000100 873 #define CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY 0x00000200 874 #define CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS 0x00000400 875 876 #define CERT_TRUST_IS_COMPLEX_CHAIN 0x00010000 877 878 typedef struct _CERT_TRUST_STATUS { 879 DWORD dwErrorStatus; 880 DWORD dwInfoStatus; 881 } CERT_TRUST_STATUS, *PCERT_TRUST_STATUS; 882 883 typedef struct _CERT_CHAIN_ELEMENT { 884 DWORD cbSize; 885 PCCERT_CONTEXT pCertContext; 886 CERT_TRUST_STATUS TrustStatus; 887 PCERT_REVOCATION_INFO pRevocationInfo; 888 PCERT_ENHKEY_USAGE pIssuanceUsage; 889 PCERT_ENHKEY_USAGE pApplicationUsage; 890 LPCWSTR pwszExtendedErrorInfo; 891 } CERT_CHAIN_ELEMENT, *PCERT_CHAIN_ELEMENT; 892 893 typedef struct _CERT_SIMPLE_CHAIN { 894 DWORD cbSize; 895 CERT_TRUST_STATUS TrustStatus; 896 DWORD cElement; 897 PCERT_CHAIN_ELEMENT *rgpElement; 898 PCERT_TRUST_LIST_INFO pTrustListInfo; 899 BOOL fHasRevocationFreshnessTime; 900 DWORD dwRevocationFreshnessTime; 901 } CERT_SIMPLE_CHAIN, *PCERT_SIMPLE_CHAIN; 902 903 typedef struct _CERT_CHAIN_CONTEXT CERT_CHAIN_CONTEXT, *PCERT_CHAIN_CONTEXT; 904 typedef const CERT_CHAIN_CONTEXT *PCCERT_CHAIN_CONTEXT; 905 906 struct _CERT_CHAIN_CONTEXT { 907 DWORD cbSize; 908 CERT_TRUST_STATUS TrustStatus; 909 DWORD cChain; 910 PCERT_SIMPLE_CHAIN *rgpChain; 911 DWORD cLowerQualityChainContext; 912 PCCERT_CHAIN_CONTEXT *rgpLowerQualityChainContext; 913 BOOL fHasRevocationFreshnessTime; 914 DWORD dwRevocationFreshnessTime; 915 }; 916 917 typedef struct _CERT_CHAIN_POLICY_PARA { 918 DWORD cbSize; 919 DWORD dwFlags; 920 void *pvExtraPolicyPara; 921 } CERT_CHAIN_POLICY_PARA, *PCERT_CHAIN_POLICY_PARA; 922 923 typedef struct _CERT_CHAIN_POLICY_STATUS { 924 DWORD cbSize; 925 DWORD dwError; 926 LONG lChainIndex; 927 LONG lElementIndex; 928 void *pvExtraPolicyStatus; 929 } CERT_CHAIN_POLICY_STATUS, *PCERT_CHAIN_POLICY_STATUS; 930 931 #define CERT_CHAIN_POLICY_BASE ((LPCSTR)1) 932 #define CERT_CHAIN_POLICY_AUTHENTICODE ((LPCSTR)2) 933 #define CERT_CHAIN_POLICY_AUTHENTICODE_TS ((LPCSTR)3) 934 #define CERT_CHAIN_POLICY_SSL ((LPCSTR)4) 935 #define CERT_CHAIN_POLICY_BASIC_CONSTRAINTS ((LPCSTR)5) 936 #define CERT_CHAIN_POLICY_NT_AUTH ((LPCSTR)6) 937 #define CERT_CHAIN_POLICY_MICROSOFT_ROOT ((LPCSTR)7) 938 939 #define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG 0x00000001 940 #define CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG 0x00000002 941 #define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG 0x00000004 942 #define CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG 0x00000008 943 944 #define CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS ( \ 945 CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG \ 946 CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG \ 947 CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG ) 948 949 #define CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG 0x00000010 950 #define CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG 0x00000020 951 #define CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG 0x00000040 952 #define CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG 0x00000080 953 954 #define CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG 0x00000100 955 #define CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG 0x00000200 956 #define CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG 0x00000400 957 #define CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG 0x00000800 958 959 #define CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS ( \ 960 CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG \ 961 CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG \ 962 CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG \ 963 CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG ) 964 965 #define CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG 0x00004000 966 #define CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG 0x00008000 967 #define MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG 0x00010000 968 969 typedef struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA { 970 DWORD cbSize; 971 DWORD dwRegPolicySettings; 972 PCMSG_SIGNER_INFO pSignerInfo; 973 } AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA, 974 *PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA; 975 976 typedef struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS { 977 DWORD cbSize; 978 BOOL fCommercial; 979 } AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS, 980 *PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS; 981 982 typedef struct _AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA { 983 DWORD cbSize; 984 DWORD dwRegPolicySettings; 985 BOOL fCommercial; 986 } AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA, 987 *PAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA; 988 989 typedef struct _HTTPSPolicyCallbackData { 990 union { 991 DWORD cbStruct; 992 DWORD cbSize; 993 } DUMMYUNIONNAME; 994 DWORD dwAuthType; 995 DWORD fdwChecks; 996 WCHAR *pwszServerName; 997 } HTTPSPolicyCallbackData, *PHTTPSPolicyCallbackData, 998 SSL_EXTRA_CERT_CHAIN_POLICY_PARA, *PSSL_EXTRA_CERT_CHAIN_POLICY_PARA; 999 1000 /* Values for HTTPSPolicyCallbackData's dwAuthType */ 1001 #define AUTHTYPE_CLIENT 1 1002 #define AUTHTYPE_SERVER 2 1003 /* Values for HTTPSPolicyCallbackData's fdwChecks are defined in wininet.h */ 1004 1005 #define BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG 0x80000000 1006 #define BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG 0x40000000 1007 1008 #define MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG 0x00010000 1009 1010 #define USAGE_MATCH_TYPE_AND 0x00000000 1011 #define USAGE_MATCH_TYPE_OR 0x00000001 1012 1013 typedef struct _CERT_USAGE_MATCH { 1014 DWORD dwType; 1015 CERT_ENHKEY_USAGE Usage; 1016 } CERT_USAGE_MATCH, *PCERT_USAGE_MATCH; 1017 1018 typedef struct _CTL_USAGE_MATCH { 1019 DWORD dwType; 1020 CTL_USAGE Usage; 1021 } CTL_USAGE_MATCH, *PCTL_USAGE_MATCH; 1022 1023 #define CERT_CHAIN_REVOCATION_CHECK_END_CERT 0x10000000 1024 #define CERT_CHAIN_REVOCATION_CHECK_CHAIN 0x20000000 1025 #define CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT 0x40000000 1026 #define CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY 0x80000000 1027 1028 #define CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT 0x08000000 1029 1030 #define CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING 0x00000040 1031 #define CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS 0x00000080 1032 #define CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE 0x00000100 1033 #define CERT_CHAIN_TIMESTAMP_TIME 0x00000200 1034 1035 typedef struct _CERT_CHAIN_PARA { 1036 DWORD cbSize; 1037 CERT_USAGE_MATCH RequestedUsage; 1038 #ifdef CERT_CHAIN_PARA_HAS_EXTRA_FIELDS 1039 CERT_USAGE_MATCH RequestedIssuancePolicy; 1040 DWORD dwUrlRetrievalTimeout; 1041 BOOL fCheckRevocationFreshnessTime; 1042 DWORD dwRevocationFreshnessTime; 1043 #endif 1044 } CERT_CHAIN_PARA, *PCERT_CHAIN_PARA; 1045 1046 typedef struct _CERT_SYSTEM_STORE_INFO { 1047 DWORD cbSize; 1048 } CERT_SYSTEM_STORE_INFO, *PCERT_SYSTEM_STORE_INFO; 1049 1050 typedef struct _CERT_PHYSICAL_STORE_INFO { 1051 DWORD cbSize; 1052 LPSTR pszOpenStoreProvider; 1053 DWORD dwOpenEncodingType; 1054 DWORD dwOpenFlags; 1055 CRYPT_DATA_BLOB OpenParameters; 1056 DWORD dwFlags; 1057 DWORD dwPriority; 1058 } CERT_PHYSICAL_STORE_INFO, *PCERT_PHYSICAL_STORE_INFO; 1059 1060 typedef struct _CERT_SYSTEM_STORE_RELOCATE_PARA { 1061 union { 1062 HKEY hKeyBase; 1063 VOID *pvBase; 1064 } DUMMYUNIONNAME; 1065 union { 1066 void *pvSystemStore; 1067 LPCSTR pszSystemStore; 1068 LPCWSTR pwszSystemStore; 1069 } DUMMYUNIONNAME2; 1070 } CERT_SYSTEM_STORE_RELOCATE_PARA, *PCERT_SYSTEM_STORE_RELOCATE_PARA; 1071 1072 typedef BOOL (*WINAPI PFN_CERT_ENUM_SYSTEM_STORE_LOCATION)( 1073 LPCWSTR pwszStoreLocation, DWORD dwFlags, void *pvReserved, void *pvArg); 1074 1075 typedef BOOL (*WINAPI PFN_CERT_ENUM_SYSTEM_STORE)(const void *pvSystemStore, 1076 DWORD dwFlags, PCERT_SYSTEM_STORE_INFO pStoreInfo, void *pvReserved, 1077 void *pvArg); 1078 1079 typedef BOOL (*WINAPI PFN_CERT_ENUM_PHYSICAL_STORE)(const void *pvSystemStore, 1080 DWORD dwFlags, LPCWSTR pwszStoreName, PCERT_PHYSICAL_STORE_INFO pStoreInfo, 1081 void *pvReserved, void *pvArg); 1082 1083 /* Encode/decode object */ 1084 typedef LPVOID (*WINAPI PFN_CRYPT_ALLOC)(size_t cbsize); 1085 typedef VOID (*WINAPI PFN_CRYPT_FREE)(LPVOID pv); 1086 1087 typedef struct _CRYPT_ENCODE_PARA { 1088 DWORD cbSize; 1089 PFN_CRYPT_ALLOC pfnAlloc; 1090 PFN_CRYPT_FREE pfnFree; 1091 } CRYPT_ENCODE_PARA, *PCRYPT_ENCODE_PARA; 1092 1093 typedef struct _CRYPT_DECODE_PARA { 1094 DWORD cbSize; 1095 PFN_CRYPT_ALLOC pfnAlloc; 1096 PFN_CRYPT_FREE pfnFree; 1097 } CRYPT_DECODE_PARA, *PCRYPT_DECODE_PARA; 1098 1099 typedef struct _CERT_STORE_PROV_INFO { 1100 DWORD cbSize; 1101 DWORD cStoreProvFunc; 1102 void **rgpvStoreProvFunc; 1103 HCERTSTOREPROV hStoreProv; 1104 DWORD dwStoreProvFlags; 1105 HCRYPTOIDFUNCADDR hStoreProvFuncAddr2; 1106 } CERT_STORE_PROV_INFO, *PCERT_STORE_PROV_INFO; 1107 1108 typedef BOOL (*WINAPI PFN_CERT_DLL_OPEN_STORE_PROV_FUNC)( 1109 LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv, 1110 DWORD dwFlags, const void *pvPara, HCERTSTORE hCertStore, 1111 PCERT_STORE_PROV_INFO pStoreProvInfo); 1112 1113 typedef void (*WINAPI PFN_CERT_STORE_PROV_CLOSE)(HCERTSTOREPROV hStoreProv, 1114 DWORD dwFlags); 1115 1116 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_READ_CERT)(HCERTSTOREPROV hStoreProv, 1117 PCCERT_CONTEXT pStoreCertContext, DWORD dwFlags, 1118 PCCERT_CONTEXT *ppProvCertContext); 1119 1120 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_WRITE_CERT)(HCERTSTOREPROV hStoreProv, 1121 PCCERT_CONTEXT pCertContext, DWORD dwFlags); 1122 1123 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_DELETE_CERT)( 1124 HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwFlags); 1125 1126 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_SET_CERT_PROPERTY)( 1127 HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwPropId, 1128 DWORD dwFlags, const void *pvData); 1129 1130 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_READ_CRL)(HCERTSTOREPROV hStoreProv, 1131 PCCRL_CONTEXT pStoreCrlContext, DWORD dwFlags, 1132 PCCRL_CONTEXT *ppProvCrlContext); 1133 1134 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_WRITE_CRL)(HCERTSTOREPROV hStoreProv, 1135 PCCRL_CONTEXT pCrlContext, DWORD dwFlags); 1136 1137 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_DELETE_CRL)(HCERTSTOREPROV hStoreProv, 1138 PCCRL_CONTEXT pCrlContext, DWORD dwFlags); 1139 1140 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_SET_CRL_PROPERTY)( 1141 HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwPropId, 1142 DWORD dwFlags, const void *pvData); 1143 1144 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_READ_CTL)(HCERTSTOREPROV hStoreProv, 1145 PCCTL_CONTEXT pStoreCtlContext, DWORD dwFlags, 1146 PCCTL_CONTEXT *ppProvCtlContext); 1147 1148 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_WRITE_CTL)(HCERTSTOREPROV hStoreProv, 1149 PCCTL_CONTEXT pCtlContext, DWORD dwFlags); 1150 1151 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_DELETE_CTL)( 1152 HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwFlags); 1153 1154 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_SET_CTL_PROPERTY)( 1155 HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwPropId, 1156 DWORD dwFlags, const void *pvData); 1157 1158 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_CONTROL)(HCERTSTOREPROV hStoreProv, 1159 DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara); 1160 1161 typedef struct _CERT_STORE_PROV_FIND_INFO { 1162 DWORD cbSize; 1163 DWORD dwMsgAndCertEncodingType; 1164 DWORD dwFindFlags; 1165 DWORD dwFindType; 1166 const void *pvFindPara; 1167 } CERT_STORE_PROV_FIND_INFO, *PCERT_STORE_PROV_FIND_INFO; 1168 typedef const CERT_STORE_PROV_FIND_INFO CCERT_STORE_PROV_FIND_INFO, 1169 *PCCERT_STORE_PROV_FIND_INFO; 1170 1171 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_FIND_CERT)(HCERTSTOREPROV hStoreProv, 1172 PCCERT_STORE_PROV_FIND_INFO pFindInfo, PCCERT_CONTEXT pPrevCertContext, 1173 DWORD dwFlags, void **ppvStoreProvFindInfo, PCCERT_CONTEXT *ppProvCertContext); 1174 1175 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_FREE_FIND_CERT)( 1176 HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, 1177 void *pvStoreProvFindInfo, DWORD dwFlags); 1178 1179 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_GET_CERT_PROPERTY)( 1180 HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwPropId, 1181 DWORD dwFlags, void *pvData, DWORD *pcbData); 1182 1183 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_FIND_CRL)(HCERTSTOREPROV hStoreProv, 1184 PCCERT_STORE_PROV_FIND_INFO pFindInfo, PCCRL_CONTEXT pPrevCrlContext, 1185 DWORD dwFlags, void **ppvStoreProvFindInfo, PCCRL_CONTEXT *ppProvCrlContext); 1186 1187 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_FREE_FIND_CRL)( 1188 HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, 1189 void *pvStoreProvFindInfo, DWORD dwFlags); 1190 1191 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_GET_CRL_PROPERTY)( 1192 HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwPropId, 1193 DWORD dwFlags, void *pvData, DWORD *pcbData); 1194 1195 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_FIND_CTL)(HCERTSTOREPROV hStoreProv, 1196 PCCTL_CONTEXT pCtlContext, void *pvStoreProvFindInfo, DWORD dwFlags); 1197 1198 typedef BOOL (*WINAPI PFN_CERT_STORE_PROV_GET_CTL_PROPERTY)( 1199 HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwPropId, 1200 DWORD dwFlags, void *pvData); 1201 1202 typedef struct _CERT_CREATE_CONTEXT_PARA { 1203 DWORD cbSize; 1204 PFN_CRYPT_FREE pfnFree; 1205 void *pvFree; 1206 } CERT_CREATE_CONTEXT_PARA, *PCERT_CREATE_CONTEXT_PARA; 1207 1208 typedef struct _CRYPT_OID_FUNC_ENTRY { 1209 LPCSTR pszOID; 1210 void *pvFuncAddr; 1211 } CRYPT_OID_FUNC_ENTRY, *PCRYPT_OID_FUNC_ENTRY; 1212 1213 typedef BOOL (*WINAPI PFN_CRYPT_ENUM_OID_FUNC)(DWORD dwEncodingType, 1214 LPCSTR pszFuncName, LPCSTR pszOID, DWORD cValue, const DWORD rgdwValueType[], 1215 LPCWSTR const rgpwszValueName[], const BYTE * const rgpbValueData[], 1216 const DWORD rgcbValueData[], void *pvArg); 1217 1218 #define CRYPT_MATCH_ANY_ENCODING_TYPE 0xffffffff 1219 1220 typedef struct _CRYPT_OID_INFO { 1221 DWORD cbSize; 1222 LPCSTR pszOID; 1223 LPCWSTR pwszName; 1224 DWORD dwGroupId; 1225 union { 1226 DWORD dwValue; 1227 ALG_ID Algid; 1228 DWORD dwLength; 1229 } DUMMYUNIONNAME; 1230 CRYPT_DATA_BLOB ExtraInfo; 1231 } CRYPT_OID_INFO, *PCRYPT_OID_INFO; 1232 typedef const CRYPT_OID_INFO CCRYPT_OID_INFO, *PCCRYPT_OID_INFO; 1233 1234 typedef BOOL (*WINAPI PFN_CRYPT_ENUM_OID_INFO)(PCCRYPT_OID_INFO pInfo, 1235 void *pvArg); 1236 1237 typedef struct _CRYPT_SIGN_MESSAGE_PARA { 1238 DWORD cbSize; 1239 DWORD dwMsgEncodingType; 1240 PCCERT_CONTEXT pSigningCert; 1241 CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; 1242 void * pvHashAuxInfo; 1243 DWORD cMsgCert; 1244 PCCERT_CONTEXT *rgpMsgCert; 1245 DWORD cMsgCrl; 1246 PCCRL_CONTEXT *rgpMsgCrl; 1247 DWORD cAuthAttr; 1248 PCRYPT_ATTRIBUTE rgAuthAttr; 1249 DWORD cUnauthAttr; 1250 PCRYPT_ATTRIBUTE rgUnauthAttr; 1251 DWORD dwFlags; 1252 DWORD dwInnerContentType; 1253 #ifdef CRYPT_SIGN_MESSAGE_PARA_HAS_CMS_FIELDS 1254 CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm; 1255 void * pvHashEncryptionAuxInfo; 1256 #endif 1257 } CRYPT_SIGN_MESSAGE_PARA, *PCRYPT_SIGN_MESSAGE_PARA; 1258 1259 #define CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG 0x00000001 1260 #define CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG 0x00000002 1261 #define CRYPT_MESSAGE_KEYID_SIGNER_FLAG 0x00000004 1262 #define CRYPT_MESSAGE_SILENT_KEYSET_FLAG 0x00000008 1263 1264 typedef PCCERT_CONTEXT (*WINAPI PFN_CRYPT_GET_SIGNER_CERTIFICATE)(void *pvArg, 1265 DWORD dwCertEncodingType, PCERT_INFO pSignerId, HCERTSTORE hMsgCertStore); 1266 1267 typedef struct _CRYPT_VERIFY_MESSAGE_PARA { 1268 DWORD cbSize; 1269 DWORD dwMsgAndCertEncodingType; 1270 HCRYPTPROV_LEGACY hCryptProv; 1271 PFN_CRYPT_GET_SIGNER_CERTIFICATE pfnGetSignerCertificate; 1272 void * pvGetArg; 1273 } CRYPT_VERIFY_MESSAGE_PARA, *PCRYPT_VERIFY_MESSAGE_PARA; 1274 1275 typedef struct _CRYPT_ENCRYPT_MESSAGE_PARA { 1276 DWORD cbSize; 1277 DWORD dwMsgEncodingType; 1278 HCRYPTPROV_LEGACY hCryptProv; 1279 CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm; 1280 void * pvEncryptionAuxInfo; 1281 DWORD dwFlags; 1282 DWORD dwInnerContentType; 1283 } CRYPT_ENCRYPT_MESSAGE_PARA, *PCRYPT_ENCRYPT_MESSAGE_PARA; 1284 1285 #define CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG 0x00000004 1286 1287 typedef struct _CRYPT_DECRYPT_MESSAGE_PARA { 1288 DWORD cbSize; 1289 DWORD dwMsgAndCertEncodingType; 1290 DWORD cCertStore; 1291 HCERTSTORE *rghCertStore; 1292 #ifdef CRYPT_DECRYPT_MESSAGE_PARA_HAS_EXTRA_FIELDS 1293 DWORD dwFlags; 1294 #endif 1295 } CRYPT_DECRYPT_MESSAGE_PARA, *PCRYPT_DECRYPT_MESSAGE_PARA; 1296 1297 typedef struct _CRYPT_HASH_MESSAGE_PARA { 1298 DWORD cbSize; 1299 DWORD dwMsgEncodingType; 1300 HCRYPTPROV_LEGACY hCryptProv; 1301 CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; 1302 void * pvHashAuxInfo; 1303 } CRYPT_HASH_MESSAGE_PARA, *PCRYPT_HASH_MESSAGE_PARA; 1304 1305 typedef struct _CRYPT_KEY_SIGN_MESSAGE_PARA { 1306 DWORD cbSize; 1307 DWORD dwMsgAndCertEncodingType; 1308 HCRYPTPROV hCryptProv; 1309 DWORD dwKeySpec; 1310 CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; 1311 void * pvHashAuxInfo; 1312 } CRYPT_KEY_SIGN_MESSAGE_PARA, *PCRYPT_KEY_SIGN_MESSAGE_PARA; 1313 1314 typedef struct _CRYPT_KEY_VERIFY_MESSAGE_PARA { 1315 DWORD cbSize; 1316 DWORD dwMsgEncodingType; 1317 HCRYPTPROV_LEGACY hCryptProv; 1318 } CRYPT_KEY_VERIFY_MESSAGE_PARA, *PCRYPT_KEY_VERIFY_MESSAGE_PARA; 1319 1320 typedef struct _CRYPT_URL_ARRAY { 1321 DWORD cUrl; 1322 LPWSTR *rgwszUrl; 1323 } CRYPT_URL_ARRAY, *PCRYPT_URL_ARRAY; 1324 1325 typedef struct _CRYPT_URL_INFO { 1326 DWORD cbSize; 1327 DWORD dwSyncDeltaTime; 1328 DWORD cGroup; 1329 DWORD *rgcGroupEntry; 1330 } CRYPT_URL_INFO, *PCRYPT_URL_INFO; 1331 1332 #define URL_OID_CERTIFICATE_ISSUER ((LPCSTR)1) 1333 #define URL_OID_CERTIFICATE_CRL_DIST_POINT ((LPCSTR)2) 1334 #define URL_OID_CTL_ISSUER ((LPCSTR)3) 1335 #define URL_OID_CTL_NEXT_UPDATE ((LPCSTR)4) 1336 #define URL_OID_CRL_ISSUER ((LPCSTR)5) 1337 #define URL_OID_CERTIFICATE_FRESHEST_CRL ((LPCSTR)6) 1338 #define URL_OID_CRL_FRESHEST_CRL ((LPCSTR)7) 1339 #define URL_OID_CROSS_CERT_DIST_POINT ((LPCSTR)8) 1340 1341 #define URL_OID_GET_OBJECT_URL_FUNC "UrlDllGetObjectUrl" 1342 1343 typedef HANDLE HCRYPTASYNC, *PHCRYPTASYNC; 1344 1345 typedef void (*WINAPI PFN_CRYPT_ASYNC_PARAM_FREE_FUNC)(LPSTR pszParamOid, 1346 LPVOID pvParam); 1347 1348 #define CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION ((LPCSTR)1) 1349 #define CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL ((LPCSTR)2) 1350 1351 typedef void (*WINAPI PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC)( 1352 void *pvCompletion, DWORD dwCompletionCode, LPCSTR pszURL, LPSTR pszObjectOid, 1353 void *pvObject); 1354 1355 typedef struct _CRYPT_ASYNC_RETRIEVAL_COMPLETION 1356 { 1357 PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC pfnCompletion; 1358 void *pvCompletion; 1359 } CRYPT_ASYNC_RETRIEVAL_COMPLETION, *PCRYPT_ASYNC_RETRIEVAL_COMPLETION; 1360 1361 typedef BOOL (*WINAPI PFN_CANCEL_ASYNC_RETRIEVAL_FUNC)( 1362 HCRYPTASYNC hAsyncRetrieve); 1363 1364 typedef struct _CRYPT_BLOB_ARRAY 1365 { 1366 DWORD cBlob; 1367 PCRYPT_DATA_BLOB rgBlob; 1368 } CRYPT_BLOB_ARRAY, *PCRYPT_BLOB_ARRAY; 1369 1370 typedef struct _CRYPT_CREDENTIALS { 1371 DWORD cbSize; 1372 LPCSTR pszCredentialsOid; 1373 LPVOID pvCredentials; 1374 } CRYPT_CREDENTIALS, *PCRYPT_CREDENTIALS; 1375 1376 #define CREDENTIAL_OID_PASSWORD_CREDENTIALS_A ((LPCSTR)1) 1377 #define CREDENTIAL_OID_PASSWORD_CREDENTIALS_W ((LPCSTR)2) 1378 #define CREDENTIAL_OID_PASSWORD_CREDENTIALS \ 1379 WINELIB_NAME_AW(CREDENTIAL_OID_PASSWORD_CREDENTIALS_) 1380 1381 typedef struct _CRYPT_PASSWORD_CREDENTIALSA { 1382 DWORD cbSize; 1383 LPSTR pszUsername; 1384 LPSTR pszPassword; 1385 } CRYPT_PASSWORD_CREDENTIALSA, *PCRYPT_PASSWORD_CREDENTIALSA; 1386 1387 typedef struct _CRYPT_PASSWORD_CREDENTIALSW { 1388 DWORD cbSize; 1389 LPWSTR pszUsername; 1390 LPWSTR pszPassword; 1391 } CRYPT_PASSWORD_CREDENTIALSW, *PCRYPT_PASSWORD_CREDENTIALSW; 1392 #define CRYPT_PASSWORD_CREDENTIALS WINELIB_NAME_AW(CRYPT_PASSWORD_CREDENTIALS) 1393 #define PCRYPT_PASSWORD_CREDENTIALS WINELIB_NAME_AW(PCRYPT_PASSWORD_CREDENTIALS) 1394 1395 typedef struct _CRYPT_RETRIEVE_AUX_INFO { 1396 DWORD cbSize; 1397 FILETIME *pLastSyncTime; 1398 DWORD dwMaxUrlRetrievalByteCount; 1399 } CRYPT_RETRIEVE_AUX_INFO, *PCRYPT_RETRIEVE_AUX_INFO; 1400 1401 typedef void (*WINAPI PFN_FREE_ENCODED_OBJECT_FUNC)(LPCSTR pszObjectOid, 1402 PCRYPT_BLOB_ARRAY pObject, void *pvFreeContext); 1403 1404 #define SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC \ 1405 "SchemeDllRetrieveEncodedObject" 1406 #define SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC \ 1407 "SchemeDllRetrieveEncodedObjectW" 1408 /* The signature of SchemeDllRetrieveEncodedObjectW is: 1409 BOOL WINAPI SchemeDllRetrieveEncodedObjectW(LPCWSTR pwszUrl, 1410 LPCSTR pszObjectOid, DWORD dwRetrievalFlags, DWORD dwTimeout, 1411 PCRYPT_BLOB_ARRAY pObject, PFN_FREE_ENCODED_OBJECT_FUNC *ppfnFreeObject, 1412 void **ppvFreeContext, HCRYPTASYNC hAsyncRetrieve, 1413 PCRYPT_CREDENTIALS pCredentials, PCRYPT_RETRIEVE_AUX_INFO pAuxInfo); 1414 */ 1415 1416 #define CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC "ContextDllCreateObjectContext" 1417 /* The signature of ContextDllCreateObjectContext is: 1418 BOOL WINAPI ContextDllCreateObjectContext(LPCSTR pszObjectOid, 1419 DWORD dwRetrievalFlags, PCRYPT_BLOB_ARRAY pObject, void **ppvContxt); 1420 */ 1421 1422 #define CONTEXT_OID_CERTIFICATE ((LPCSTR)1) 1423 #define CONTEXT_OID_CRL ((LPCSTR)2) 1424 #define CONTEXT_OID_CTL ((LPCSTR)3) 1425 #define CONTEXT_OID_PKCS7 ((LPCSTR)4) 1426 #define CONTEXT_OID_CAPI2_ANY ((LPCSTR)5) 1427 1428 #define CRYPT_RETRIEVE_MULTIPLE_OBJECTS 0x00000001 1429 #define CRYPT_CACHE_ONLY_RETRIEVAL 0x00000002 1430 #define CRYPT_WIRE_ONLY_RETRIEVAL 0x00000004 1431 #define CRYPT_DONT_CACHE_RESULT 0x00000008 1432 #define CRYPT_ASYNC_RETRIEVAL 0x00000010 1433 #define CRYPT_STICKY_CACHE_RETRIEVAL 0x00001000 1434 #define CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL 0x00002000 1435 #define CRYPT_OFFLINE_CHECK_RETRIEVAL 0x00004000 1436 #define CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE 0x00008000 1437 #define CRYPT_LDAP_SIGN_RETRIEVAL 0x00010000 1438 #define CRYPT_NO_AUTH_RETRIEVAL 0x00020000 1439 #define CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL 0x00040000 1440 #define CRYPT_AIA_RETRIEVAL 0x00080000 1441 1442 #define CRYPT_VERIFY_CONTEXT_SIGNATURE 0x00000020 1443 #define CRYPT_VERIFY_DATA_HASH 0x00000040 1444 #define CRYPT_KEEP_TIME_VALID 0x00000080 1445 #define CRYPT_DONT_VERIFY_SIGNATURE 0x00000100 1446 #define CRYPT_DONT_CHECK_TIME_VALIDITY 0x00000200 1447 #define CRYPT_CHECK_FRESHNESS_TIME_VALIDITY 0x00000400 1448 #define CRYPT_ACCUMULATIVE_TIMEOUT 0x00000800 1449 1450 typedef BOOL (*WINAPI PFN_CRYPT_CANCEL_RETRIEVAL)(DWORD dwFlags, void *pvArg); 1451 1452 typedef struct _CERT_CRL_CONTEXT_PAIR 1453 { 1454 PCCERT_CONTEXT pCertContext; 1455 PCCRL_CONTEXT pCrlContext; 1456 } CERT_CRL_CONTEXT_PAIR, *PCERT_CRL_CONTEXT_PAIR; 1457 typedef const CERT_CRL_CONTEXT_PAIR *PCCERT_CRL_CONTEXT_PAIR; 1458 1459 #define TIME_VALID_OID_GET_OBJECT_FUNC "TimeValidDllGetObject" 1460 1461 #define TIME_VALID_OID_GET_CTL ((LPCSTR)1) 1462 #define TIME_VALID_OID_GET_CRL ((LPCSTR)2) 1463 #define TIME_VALID_OID_GET_CRL_FROM_CERT ((LPCSTR)3) 1464 #define TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT ((LPCSTR)4) 1465 #define TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL ((LPCSTR)5) 1466 1467 #define TIME_VALID_OID_FLUSH_OBJECT_FUNC "TimeValidDllFlushObject" 1468 1469 #define TIME_VALID_OID_FLUSH_CTL ((LPCSTR)1) 1470 #define TIME_VALID_OID_FLUSH_CRL ((LPCSTR)2) 1471 #define TIME_VALID_OID_FLUSH_CRL_FROM_CERT ((LPCSTR)3) 1472 #define TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CERT ((LPCSTR)4) 1473 #define TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CRL ((LPCSTR)5) 1474 1475 /* OID group IDs */ 1476 #define CRYPT_HASH_ALG_OID_GROUP_ID 1 1477 #define CRYPT_ENCRYPT_ALG_OID_GROUP_ID 2 1478 #define CRYPT_PUBKEY_ALG_OID_GROUP_ID 3 1479 #define CRYPT_SIGN_ALG_OID_GROUP_ID 4 1480 #define CRYPT_RDN_ATTR_OID_GROUP_ID 5 1481 #define CRYPT_EXT_OR_ATTR_OID_GROUP_ID 6 1482 #define CRYPT_ENHKEY_USAGE_OID_GROUP_ID 7 1483 #define CRYPT_POLICY_OID_GROUP_ID 8 1484 #define CRYPT_TEMPLATE_OID_GROUP_ID 9 1485 #define CRYPT_LAST_OID_GROUP_ID 9 1486 1487 #define CRYPT_FIRST_ALG_OID_GROUP_ID CRYPT_HASH_ALG_OID_GROUP_ID 1488 #define CRYPT_LAST_ALG_OID_GROUP_ID CRYPT_SIGN_ALG_OID_GROUP_ID 1489 1490 #define CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG 0x1 1491 #define CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG 0x2 1492 #define CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG 0x4 1493 1494 #define CRYPT_OID_INFO_OID_KEY 1 1495 #define CRYPT_OID_INFO_NAME_KEY 2 1496 #define CRYPT_OID_INFO_ALGID_KEY 3 1497 #define CRYPT_OID_INFO_SIGN_KEY 4 1498 1499 /* Algorithm IDs */ 1500 7 1501 #define GET_ALG_CLASS(x) (x & (7 << 13)) 8 1502 #define GET_ALG_TYPE(x) (x & (15 << 9)) 9 1503 #define GET_ALG_SID(x) (x & (511)) 10 1504 1505 /* Algorithm Classes */ 11 1506 #define ALG_CLASS_ANY (0) 12 1507 #define ALG_CLASS_SIGNATURE (1 << 13) … … 15 1510 #define ALG_CLASS_HASH (4 << 13) 16 1511 #define ALG_CLASS_KEY_EXCHANGE (5 << 13) 17 1512 #define ALG_CLASS_ALL (7 << 13) 1513 /* Algorithm types */ 18 1514 #define ALG_TYPE_ANY (0) 19 1515 #define ALG_TYPE_DSS (1 << 9) … … 21 1517 #define ALG_TYPE_BLOCK (3 << 9) 22 1518 #define ALG_TYPE_STREAM (4 << 9) 23 1519 #define ALG_TYPE_DH (5 << 9) 1520 #define ALG_TYPE_SECURECHANNEL (6 << 9) 1521 1522 /* SIDs */ 24 1523 #define ALG_SID_ANY (0) 25 1524 /* RSA SIDs */ 26 1525 #define ALG_SID_RSA_ANY 0 27 1526 #define ALG_SID_RSA_PKCS 1 … … 29 1528 #define ALG_SID_RSA_ENTRUST 3 30 1529 #define ALG_SID_RSA_PGP 4 31 1530 /* DSS SIDs */ 32 1531 #define ALG_SID_DSS_ANY 0 33 1532 #define ALG_SID_DSS_PKCS 1 34 1533 #define ALG_SID_DSS_DMS 2 35 1534 1535 /* DES SIDs */ 36 1536 #define ALG_SID_DES 1 37 #define ALG_SID_3DES 3 38 #define ALG_SID_DESX 4 39 #define ALG_SID_IDEA 5 40 #define ALG_SID_CAST 6 41 #define ALG_SID_SAFERSK64 7 42 #define ALD_SID_SAFERSK128 8 43 44 #define CRYPT_MODE_CBCI 6 45 #define CRYPT_MODE_CFBP 7 46 #define CRYPT_MODE_OFBP 8 47 #define CRYPT_MODE_CBCOFM 9 48 #define CRYPT_MODE_CBCOFMI 10 49 1537 #define ALG_SID_3DES 3 1538 #define ALG_SID_DESX 4 1539 #define ALG_SID_IDEA 5 1540 #define ALG_SID_CAST 6 1541 #define ALG_SID_SAFERSK64 7 1542 #define ALG_SID_SAFERSK128 8 1543 #define ALG_SID_3DES_112 9 1544 #define ALG_SID_CYLINK_MEK 12 1545 #define ALG_SID_RC5 13 1546 #define ALG_SID_AES_128 14 1547 #define ALG_SID_AES_192 15 1548 #define ALG_SID_AES_256 16 1549 #define ALG_SID_AES 17 1550 /* Diffie-Hellmans SIDs */ 1551 #define ALG_SID_DH_SANDF 1 1552 #define ALG_SID_DH_EPHEM 2 1553 #define ALG_SID_AGREED_KEY_ANY 3 1554 #define ALG_SID_KEA 4 1555 /* RC2 SIDs */ 1556 #define ALG_SID_RC4 1 50 1557 #define ALG_SID_RC2 2 51 52 #define ALG_SID_RC4 153 1558 #define ALG_SID_SEAL 2 54 1559 /* Hash SIDs */ 55 1560 #define ALG_SID_MD2 1 56 1561 #define ALG_SID_MD4 2 57 1562 #define ALG_SID_MD5 3 58 1563 #define ALG_SID_SHA 4 1564 #define ALG_SID_SHA1 ALG_SID_SHA 59 1565 #define ALG_SID_MAC 5 60 #define ALG_SID_RIPEMD 6 61 #define ALG_SID_RIPEMD160 7 62 #define ALG_SID_SSL3SHAMD5 8 63 #define ALG_SID_EXAMPLE 80 64 65 #undef ALGIDDEF 66 #define ALGIDDEF 67 typedef unsigned int ALG_ID; 68 69 #define CALG_MD2 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD2) 70 #define CALG_MD4 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4) 71 #define CALG_MD5 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5) 72 #define CALG_SHA (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA) 73 #define CALG_MAC (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC) 74 #define CALG_RSA_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY) 75 #define CALG_DSS_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY) 76 #define CALG_RSA_KEYX (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_RSA|ALG_SID_RSA_ANY) 77 #define CALG_DES (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_DES) 78 #define CALG_RC2 (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_RC2) 79 #define CALG_RC4 (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_RC4) 80 #define CALG_SEAL (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_SEAL) 81 82 #define CRYPT_VERIFYCONTEXT 0xF0000000 83 #define CRYPT_NEWKEYSET 0x8 84 #define CRYPT_DELETEKEYSET 0x10 85 86 #define CRYPT_EXPORTABLE 0x00000001 87 #define CRYPT_USER_PROTECTED 0x00000002 88 #define CRYPT_CREATE_SALT 0x00000004 89 #define CRYPT_UPDATE_KEY 0x00000008 90 91 #define SIMPLEBLOB 0x1 92 #define PUBLICKEYBLOB 0x6 93 #define PRIVATEKEYBLOB 0x7 94 1566 #define ALG_SID_RIPEMD 6 1567 #define ALG_SID_RIPEMD160 7 1568 #define ALG_SID_SSL3SHAMD5 8 1569 #define ALG_SID_HMAC 9 1570 #define ALG_SID_TLS1PRF 10 1571 #define ALG_SID_HASH_REPLACE_OWF 11 1572 #define ALG_SID_SHA_256 12 1573 #define ALG_SID_SHA_384 13 1574 #define ALG_SID_SHA_512 14 1575 /* SCHANNEL SIDs */ 1576 #define ALG_SID_SSL3_MASTER 1 1577 #define ALG_SID_SCHANNEL_MASTER_HASH 2 1578 #define ALG_SID_SCHANNEL_MAC_KEY 3 1579 #define ALG_SID_PCT1_MASTER 4 1580 #define ALG_SID_SSL2_MASTER 5 1581 #define ALG_SID_TLS1_MASTER 6 1582 #define ALG_SID_SCHANNEL_ENC_KEY 7 1583 #define ALG_SID_EXAMPLE 80 1584 1585 /* Algorithm Definitions */ 1586 #define CALG_MD2 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD2) 1587 #define CALG_MD4 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4) 1588 #define CALG_MD5 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5) 1589 #define CALG_SHA (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA) 1590 #define CALG_SHA1 CALG_SHA 1591 #define CALG_MAC (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC) 1592 #define CALG_SSL3_SHAMD5 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SSL3SHAMD5) 1593 #define CALG_HMAC (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HMAC) 1594 #define CALG_TLS1PRF (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_TLS1PRF) 1595 #define CALG_HASH_REPLACE_OWF (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HASH_REPLACE_OWF) 1596 #define CALG_SHA_256 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256) 1597 #define CALG_SHA_384 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384) 1598 #define CALG_SHA_512 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512) 1599 #define CALG_RSA_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY) 1600 #define CALG_DSS_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY) 1601 #define CALG_NO_SIGN (ALG_CLASS_SIGNATURE | ALG_TYPE_ANY | ALG_SID_ANY) 1602 #define CALG_DH_SF (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_DH_SANDF) 1603 #define CALG_DH_EPHEM (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_DH_EPHEM) 1604 #define CALG_RSA_KEYX (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_RSA | ALG_SID_RSA_ANY) 1605 #define CALG_DES (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DES) 1606 #define CALG_RC2 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_RC2) 1607 #define CALG_3DES (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_3DES) 1608 #define CALG_3DES_112 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_3DES_112) 1609 #define CALG_AES_128 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_128) 1610 #define CALG_AES_192 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_192) 1611 #define CALG_AES_256 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_256) 1612 #define CALG_AES (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES) 1613 #define CALG_RC4 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC4) 1614 #define CALG_SEAL (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_SEAL) 1615 #define CALG_RC5 (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC5) 1616 #define CALG_SSL3_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SSL3_MASTER) 1617 #define CALG_SCHANNEL_MASTER_HASH (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_MASTER_HASH) 1618 #define CALG_SCHANNEL_MAC_KEY (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_MAC_KEY) 1619 #define CALG_SCHANNEL_ENC_KEY (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_ENC_KEY) 1620 #define CALG_PCT1_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_PCT1_MASTER) 1621 #define CALG_SSL2_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SSL2_MASTER) 1622 #define CALG_TLS1_MASTER (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_TLS1_MASTER) 1623 1624 1625 /* Protocol Flags */ 1626 #define CRYPT_FLAG_PCT1 0x0001 1627 #define CRYPT_FLAG_SSL2 0x0002 1628 #define CRYPT_FLAG_SSL3 0x0004 1629 #define CRYPT_FLAG_TLS1 0x0008 1630 #define CRYPT_FLAG_IPSEC 0x0010 1631 #define CRYPT_FLAG_SIGNING 0x0020 1632 1633 /* Provider names */ 1634 #define MS_DEF_PROV_A "Microsoft Base Cryptographic Provider v1.0" 1635 #if defined(__GNUC__) 1636 # define MS_DEF_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1637 'B','a','s','e',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ', \ 1638 'P','r','o','v','i','d','e','r',' ','v','1','.','0',0 } 1639 #elif defined(_MSC_VER) 1640 # define MS_DEF_PROV_W L"Microsoft Base Cryptographic Provider v1.0" 1641 #else 1642 static const WCHAR MS_DEF_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', 1643 'B','a','s','e',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ', 1644 'P','r','o','v','i','d','e','r',' ','v','1','.','0',0 }; 1645 #endif 1646 #define MS_DEF_PROV WINELIB_NAME_AW(MS_DEF_PROV_) 1647 1648 #define MS_ENHANCED_PROV_A "Microsoft Enhanced Cryptographic Provider v1.0" 1649 #if defined(__GNUC__) 1650 # define MS_ENHANCED_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1651 'E','n','h','a','n','c','e','d',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ', \ 1652 'P','r','o','v','i','d','e','r',' ','v','1','.','0',0 } 1653 #elif defined(_MSC_VER) 1654 # define MS_ENHANCED_PROV_W L"Microsoft Enhanced Cryptographic Provider v1.0" 1655 #else 1656 static const WCHAR MS_ENHANCED_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', 1657 'E','n','h','a','n','c','e','d',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ', 1658 'P','r','o','v','i','d','e','r',' ','v','1','.','0',0 }; 1659 #endif 1660 #define MS_ENHANCED_PROV WINELIB_NAME_AW(MS_ENHANCED_PROV_) 1661 1662 #define MS_STRONG_PROV_A "Microsoft Strong Cryptographic Provider" 1663 #if defined(__GNUC__) 1664 # define MS_STRONG_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1665 'S','t','r','o','n','g',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ', \ 1666 'P','r','o','v','i','d','e','r',0 } 1667 #elif defined(_MSC_VER) 1668 # define MS_STRONG_PROV_W L"Microsoft Strong Cryptographic Provider" 1669 #else 1670 static const WCHAR MS_STRONG_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', 1671 'S','t','r','o','n','g',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ', 1672 'P','r','o','v','i','d','e','r',0 }; 1673 #endif 1674 #define MS_STRONG_PROV WINELIB_NAME_AW(MS_STRONG_PROV_) 1675 1676 #define MS_DEF_RSA_SIG_PROV_A "Microsoft RSA Signature Cryptographic Provider" 1677 #if defined(__GNUC__) 1678 # define MS_DEF_RSA_SIG_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1679 'R','S','A',' ','S','i','g','n','a','t','u','r','e',' ', \ 1680 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1681 #elif defined(_MSC_VER) 1682 # define MS_DEF_RSA_SIG_PROV_W L"Microsoft RSA Signature Cryptographic Provider" 1683 #else 1684 static const WCHAR MS_DEF_RSA_SIG_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', 1685 'R','S','A',' ','S','i','g','n','a','t','u','r','e',' ', 1686 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }; 1687 #endif 1688 #define MS_DEF_RSA_SIG_PROV WINELIB_NAME_AW(MS_DEF_RSA_SIG_PROV_) 1689 1690 #define MS_DEF_RSA_SCHANNEL_PROV_A "Microsoft RSA SChannel Cryptographic Provider" 1691 #if defined(__GNUC__) 1692 # define MS_DEF_RSA_SCHANNEL_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1693 'R','S','A',' ','S','C','h','a','n','n','e','l',' ', \ 1694 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1695 #elif defined(_MSC_VER) 1696 # define MS_DEF_RSA_SCHANNEL_PROV_W L"Microsoft RSA SChannel Cryptographic Provider" 1697 #else 1698 static const WCHAR MS_DEF_RSA_SCHANNEL_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', 1699 'R','S','A',' ','S','C','h','a','n','n','e','l',' ', 1700 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }; 1701 #endif 1702 #define MS_DEF_RSA_SCHANNEL_PROV WINELIB_NAME_AW(MS_DEF_RSA_SCHANNEL_PROV_) 1703 1704 #define MS_DEF_DSS_PROV_A "Microsoft Base DSS Cryptographic Provider" 1705 #if defined(__GNUC__) 1706 # define MS_DEF_DSS_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1707 'B','a','s','e',' ','D','S','S',' ', \ 1708 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1709 #elif defined(_MSC_VER) 1710 # define MS_DEF_DSS_PROV_W L"Microsoft Base DSS Cryptographic Provider" 1711 #else 1712 static const WCHAR MS_DEF_DSS_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', 1713 'B','a','s','e',' ','D','S','S',' ', 1714 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }; 1715 #endif 1716 #define MS_DEF_DSS_PROV WINELIB_NAME_AW(MS_DEF_DSS_PROV_) 1717 1718 #define MS_DEF_DSS_DH_PROV_A "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" 1719 #if defined(__GNUC__) 1720 # define MS_DEF_DSS_DH_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1721 'B','a','s','e',' ','D','S','S',' ','a','n','d',' ', \ 1722 'D','i','f','f','i','e','-','H','e','l','l','m','a','n',' ', \ 1723 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1724 #elif defined(_MSC_VER) 1725 # define MS_DEF_DSS_DH_PROV_W L"Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" 1726 #else 1727 static const WCHAR MS_DEF_DSS_DH_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', 1728 'B','a','s','e',' ','D','S','S',' ','a','n','d',' ', 1729 'D','i','f','f','i','e','-','H','e','l','l','m','a','n',' ', 1730 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }; 1731 #endif 1732 #define MS_DEF_DSS_DH_PROV WINELIB_NAME_AW(MS_DEF_DSS_DH_PROV_) 1733 1734 #define MS_ENH_DSS_DH_PROV_A "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" 1735 #if defined(__GNUC__) 1736 # define MS_ENH_DSS_DH_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1737 'E','n','h','a','n','c','e','d',' ','D','S','S',' ','a','n','d',' ', \ 1738 'D','i','f','f','i','e','-','H','e','l','l','m','a','n',' ', \ 1739 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1740 #elif defined(_MSC_VER) 1741 # define MS_ENH_DSS_DH_PROV_W L"Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" 1742 #else 1743 static const WCHAR MS_ENH_DSS_DH_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', 1744 'E','n','h','a','n','c','e','d',' ','D','S','S',' ','a','n','d',' ', 1745 'D','i','f','f','i','e','-','H','e','l','l','m','a','n',' ', 1746 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }; 1747 #endif 1748 #define MS_ENH_DSS_DH_PROV WINELIB_NAME_AW(MS_ENH_DSS_DH_PROV_) 1749 1750 #define MS_DEF_DH_SCHANNEL_PROV_A "Microsoft DH SChannel Cryptographic Provider" 1751 #if defined(__GNUC__) 1752 # define MS_DEF_DH_SCHANNEL_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1753 'D','H',' ','S','C','h','a','n','n','e','l',' ', \ 1754 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1755 #elif defined(_MSC_VER) 1756 # define MS_DEF_DH_SCHANNEL_PROV_W L"Microsoft DH SChannel Cryptographic Provider" 1757 #else 1758 static const WCHAR MS_DEF_DH_SCHANNEL_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', 1759 'D','H',' ','S','C','h','a','n','n','e','l',' ', 1760 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }; 1761 #endif 1762 #define MS_DEF_DH_SCHANNEL_PROV WINELIB_NAME_AW(MS_DEF_DH_SCHANNEL_PROV_) 1763 1764 #define MS_SCARD_PROV_A "Microsoft Base Smart Card Cryptographic Provider" 1765 #if defined(__GNUC__) 1766 # define MS_SCARD_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1767 'B','a','s','e',' ','S','m','a','r','t',' ','C','a','r','d',' ', \ 1768 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1769 #elif defined(_MSC_VER) 1770 # define MS_SCARD_PROV_W L"Microsoft Base Smart Card Cryptographic Provider" 1771 #else 1772 static const WCHAR MS_SCARD_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', 1773 'B','a','s','e',' ','S','m','a','r','t',' ','C','a','r','d',' ', 1774 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }; 1775 #endif 1776 #define MS_SCARD_PROV WINELIB_NAME_AW(MS_SCARD_PROV_) 1777 1778 #define MS_ENH_RSA_AES_PROV_A "Microsoft Enhanced RSA and AES Cryptographic Provider" 1779 #if defined(__GNUC__) 1780 # define MS_ENH_RSA_AES_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \ 1781 'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ',\ 1782 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 } 1783 #elif defined(_MSC_VER) 1784 # define MS_ENH_RSA_AES_PROV_W L"Microsoft Enhanced RSA and AES Cryptographic Provider" 1785 #else 1786 static const WCHAR MS_ENH_RSA_AES_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ', 1787 'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ', 1788 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }; 1789 #endif 1790 #define MS_ENH_RSA_AES_PROV WINELIB_NAME_AW(MS_ENH_RSA_AES_PROV_) 1791 1792 /* Key Specs*/ 95 1793 #define AT_KEYEXCHANGE 1 96 1794 #define AT_SIGNATURE 2 97 1795 98 #define CRYPT_USERDATA 1 99 1796 /* Provider Types */ 1797 #define PROV_RSA_FULL 1 1798 #define PROV_RSA_SIG 2 1799 #define PROV_DSS 3 1800 #define PROV_FORTEZZA 4 1801 #define PROV_MS_EXCHANGE 5 1802 #define PROV_SSL 6 1803 #define PROV_RSA_SCHANNEL 12 1804 #define PROV_DSS_DH 13 1805 #define PROV_EC_ECDSA_SIG 14 1806 #define PROV_EC_ECNRA_SIG 15 1807 #define PROV_EC_ECDSA_FULL 16 1808 #define PROV_EC_ECNRA_FULL 17 1809 #define PROV_DH_SCHANNEL 18 1810 #define PROV_SPYRUS_LYNKS 20 1811 #define PROV_RNG 21 1812 #define PROV_INTEL_SEC 22 1813 #define PROV_REPLACE_OWF 23 1814 #define PROV_RSA_AES 24 1815 1816 /* FLAGS Section */ 1817 1818 #define CRYPT_FIRST 1 1819 #define CRYPT_NEXT 2 1820 1821 #define CRYPT_IMPL_HARDWARE 1 1822 #define CRYPT_IMPL_SOFTWARE 2 1823 #define CRYPT_IMPL_MIXED 3 1824 #define CRYPT_IMPL_UNKNOWN 4 1825 1826 /* CryptAcquireContext */ 1827 #define CRYPT_VERIFYCONTEXT 0xF0000000 1828 #define CRYPT_NEWKEYSET 0x00000008 1829 #define CRYPT_DELETEKEYSET 0x00000010 1830 #define CRYPT_MACHINE_KEYSET 0x00000020 1831 #define CRYPT_SILENT 0x00000040 1832 1833 /* Crypt{Get|Set}Provider */ 1834 #define CRYPT_MACHINE_DEFAULT 0x00000001 1835 #define CRYPT_USER_DEFAULT 0x00000002 1836 #define CRYPT_DELETE_DEFAULT 0x00000004 1837 1838 /* Crypt{Get/Set}ProvParam */ 1839 #define PP_CLIENT_HWND 1 1840 #define PP_ENUMALGS 1 1841 #define PP_ENUMCONTAINERS 2 1842 #define PP_IMPTYPE 3 1843 #define PP_NAME 4 1844 #define PP_VERSION 5 1845 #define PP_CONTAINER 6 1846 #define PP_CHANGE_PASSWORD 7 1847 #define PP_KEYSET_SEC_DESCR 8 1848 #define PP_KEY_TYPE_SUBTYPE 10 1849 #define PP_CONTEXT_INFO 11 1850 #define PP_KEYEXCHANGE_KEYSIZE 12 1851 #define PP_SIGNATURE_KEYSIZE 13 1852 #define PP_KEYEXCHANGE_ALG 14 1853 #define PP_SIGNATURE_ALG 15 1854 #define PP_PROVTYPE 16 1855 #define PP_KEYSTORAGE 17 1856 #define PP_SYM_KEYSIZE 19 1857 #define PP_SESSION_KEYSIZE 20 1858 #define PP_UI_PROMPT 21 1859 #define PP_ENUMALGS_EX 22 1860 #define PP_DELETEKEY 24 1861 #define PP_ENUMMANDROOTS 25 1862 #define PP_ENUMELECTROOTS 26 1863 #define PP_KEYSET_TYPE 27 1864 #define PP_ADMIN_PIN 31 1865 #define PP_KEYEXCHANGE_PIN 32 1866 #define PP_SIGNATURE_PIN 33 1867 #define PP_SIG_KEYSIZE_INC 34 1868 #define PP_KEYX_KEYSIZE_INC 35 1869 #define PP_UNIQUE_CONTAINER 36 1870 #define PP_SGC_INFO 37 1871 #define PP_USE_HARDWARE_RNG 38 1872 #define PP_KEYSPEC 39 1873 #define PP_ENUMEX_SIGNING_PROT 40 1874 #define PP_CRYPT_COUNT_KEY_USE 41 1875 #define PP_USER_CERTSTORE 42 1876 #define PP_SMARTCARD_READER 43 1877 #define PP_SMARTCARD_GUID 45 1878 #define PP_ROOT_CERTSTORE 46 1879 1880 /* Values returned by CryptGetProvParam of PP_KEYSTORAGE */ 1881 #define CRYPT_SEC_DESCR 0x00000001 1882 #define CRYPT_PSTORE 0x00000002 1883 #define CRYPT_UI_PROMPT 0x00000004 1884 1885 /* Crypt{Get/Set}KeyParam */ 100 1886 #define KP_IV 1 101 1887 #define KP_SALT 2 … … 106 1892 #define KP_ALGID 7 107 1893 #define KP_BLOCKLEN 8 108 109 #define PKCS5_PADDING 1 110 1894 #define KP_KEYLEN 9 1895 #define KP_SALT_EX 10 1896 #define KP_P 11 1897 #define KP_G 12 1898 #define KP_Q 13 1899 #define KP_X 14 1900 #define KP_Y 15 1901 #define KP_RA 16 1902 #define KP_RB 17 1903 #define KP_INFO 18 1904 #define KP_EFFECTIVE_KEYLEN 19 1905 #define KP_SCHANNEL_ALG 20 1906 #define KP_CLIENT_RANDOM 21 1907 #define KP_SERVER_RANDOM 22 1908 #define KP_RP 23 1909 #define KP_PRECOMP_MD5 24 1910 #define KP_PRECOMP_SHA 25 1911 #define KP_CERTIFICATE 26 1912 #define KP_CLEAR_KEY 27 1913 #define KP_PUB_EX_LEN 28 1914 #define KP_PUB_EX_VAL 29 1915 #define KP_KEYVAL 30 1916 #define KP_ADMIN_PIN 31 1917 #define KP_KEYEXCHANGE_PIN 32 1918 #define KP_SIGNATURE_PIN 33 1919 #define KP_PREHASH 34 1920 #define KP_ROUNDS 35 1921 #define KP_OAEP_PARAMS 36 1922 #define KP_CMS_KEY_INFO 37 1923 #define KP_CMS_DH_KEY_INFO 38 1924 #define KP_PUB_PARAMS 39 1925 #define KP_VERIFY_PARAMS 40 1926 #define KP_HIGHEST_VERSION 41 1927 #define KP_GET_USE_COUNT 42 1928 1929 /* Values for KP_PADDING */ 1930 #define PKCS5_PADDING 1 1931 #define RANDOM_PADDING 2 1932 #define ZERO_PADDING 3 1933 1934 /* CryptSignHash/CryptVerifySignature */ 1935 #define CRYPT_NOHASHOID 0x00000001 1936 #define CRYPT_TYPE2_FORMAT 0x00000002 1937 #define CRYPT_X931_FORMAT 0x00000004 1938 1939 /* Crypt{Get,Set}HashParam */ 1940 #define HP_ALGID 0x0001 1941 #define HP_HASHVAL 0x0002 1942 #define HP_HASHSIZE 0x0004 1943 #define HP_HMAC_INFO 0x0005 1944 #define HP_TLS1PRF_LABEL 0x0006 1945 #define HP_TLS1PRF_SEED 0x0007 1946 1947 /* Crypt{Get,Set}KeyParam */ 111 1948 #define CRYPT_MODE_CBC 1 112 1949 #define CRYPT_MODE_ECB 2 113 1950 #define CRYPT_MODE_OFB 3 114 1951 #define CRYPT_MODE_CFB 4 115 #define CRYPT_MODE_CTS 5 116 117 #define CRYPT_ENCRYPT 0x0001 1952 1953 #define CRYPT_ENCRYPT 0x0001 118 1954 #define CRYPT_DECRYPT 0x0002 119 1955 #define CRYPT_EXPORT 0x0004 … … 122 1958 #define CRYPT_MAC 0x0020 123 1959 124 #define HP_ALGID 0x0001 125 #define HP_HASHVAL 0x0002 126 #define HP_HASHSIZE 0x0004 127 128 129 #define CRYPT_FAILED FALSE 130 #define CRYPT_SUCCEED TRUE 131 132 #define RCRYPT_SUCCEEDED(rt) ((rt) == CRYPT_SUCCEED) 133 #define RCRYPT_FAILED(rt) ((rt) == CRYPT_FAILED) 134 135 #define PP_ENUMALGS 1 136 #define PP_ENUMCONTAINERS 2 137 #define PP_IMPTYPE 3 138 #define PP_NAME 4 139 #define PP_VERSION 5 140 #define PP_CONTAINER 6 141 142 #define CRYPT_FIRST 1 143 #define CRYPT_NEXT 2 144 145 #define CRYPT_IMPL_HARDWARE 1 146 #define CRYPT_IMPL_SOFTWARE 2 147 #define CRYPT_IMPL_MIXED 3 148 #define CRYPT_IMPL_UNKNOWN 4 149 150 #define PP_CLIENT_HWND 1 151 152 #define PROV_RSA_FULL 1 153 #define PROV_RSA_SIG 2 154 #define PROV_DSS 3 155 #define PROV_FORTEZZA 4 156 #define PROV_MS_EXCHANGE 5 157 #define PROV_SSL 6 158 159 #define PROV_STT_MER 7 160 #define PROV_STT_ACQ 8 161 #define PROV_STT_BRND 9 162 #define PROV_STT_ROOT 10 163 #define PROV_STT_ISS 11 164 165 #define MAXUIDLEN 64 1960 /* Crypt*Key */ 1961 #define CRYPT_EXPORTABLE 0x00000001 1962 #define CRYPT_USER_PROTECTED 0x00000002 1963 #define CRYPT_CREATE_SALT 0x00000004 1964 #define CRYPT_UPDATE_KEY 0x00000008 1965 #define CRYPT_NO_SALT 0x00000010 1966 #define CRYPT_PREGEN 0x00000040 1967 #define CRYPT_SERVER 0x00000400 1968 #define CRYPT_ARCHIVABLE 0x00004000 1969 1970 /* CryptExportKey */ 1971 #define CRYPT_SSL2_FALLBACK 0x00000002 1972 #define CRYPT_DESTROYKEY 0x00000004 1973 #define CRYPT_OAEP 0x00000040 1974 1975 /* CryptHashSessionKey */ 1976 #define CRYPT_LITTLE_ENDIAN 0x00000001 1977 1978 /* Crypt{Protect,Unprotect}Data PROMPTSTRUCT flags */ 1979 #define CRYPTPROTECT_PROMPT_ON_PROTECT 0x0001 1980 #define CRYPTPROTECT_PROMPT_ON_UNPROTECT 0x0002 1981 /* Crypt{Protect,Unprotect}Data flags */ 1982 #define CRYPTPROTECT_UI_FORBIDDEN 0x0001 1983 #define CRYPTPROTECT_LOCAL_MACHINE 0x0004 1984 #define CRYPTPROTECT_AUDIT 0x0010 1985 #define CRYPTPROTECT_VERIFY_PROTECTION 0x0040 1986 1987 /* Blob Types */ 1988 #define SIMPLEBLOB 0x1 1989 #define PUBLICKEYBLOB 0x6 1990 #define PRIVATEKEYBLOB 0x7 1991 #define PLAINTEXTKEYBLOB 0x8 1992 #define OPAQUEKEYBLOB 0x9 1993 #define PUBLICKEYBLOBEX 0xA 1994 #define SYMMETRICWRAPKEYBLOB 0xB 166 1995 167 1996 #define CUR_BLOB_VERSION 2 168 1997 169 typedef struct _VTableProvStruc { 170 DWORD Version; 171 FARPROC FuncVerifyImage; 172 FARPROC FuncReturnhWnd; 173 } VTableProvStruc, *PVTableProvStruc; 174 175 typedef unsigned long HCRYPTPROV; 176 typedef unsigned long HCRYPTKEY; 177 typedef unsigned long HCRYPTHASH; 178 179 typedef struct _PROV_ENUMALGS { 180 ALG_ID aiAlgid; 181 DWORD dwBitLen; 182 DWORD dwNameLen; 183 CHAR szName[20]; 184 } PROV_ENUMALGS; 185 186 typedef struct _PUBLICKEYSTRUC { 187 BYTE bType; 188 BYTE bVersion; 189 WORD reserved; 190 ALG_ID aiKeyAlg; 191 } PUBLICKEYSTRUC; 192 193 typedef struct _RSAPUBKEY { 194 DWORD magic; 195 DWORD bitlen; 196 DWORD pubexp; 197 } RSAPUBKEY; 1998 /* cert store provider types */ 1999 #define CERT_STORE_PROV_MSG ((LPCSTR)1) 2000 #define CERT_STORE_PROV_MEMORY ((LPCSTR)2) 2001 #define CERT_STORE_PROV_FILE ((LPCSTR)3) 2002 #define CERT_STORE_PROV_REG ((LPCSTR)4) 2003 #define CERT_STORE_PROV_PKCS7 ((LPCSTR)5) 2004 #define CERT_STORE_PROV_SERIALIZED ((LPCSTR)6) 2005 #define CERT_STORE_PROV_FILENAME_A ((LPCSTR)7) 2006 #define CERT_STORE_PROV_FILENAME_W ((LPCSTR)8) 2007 #define CERT_STORE_PROV_SYSTEM_A ((LPCSTR)9) 2008 #define CERT_STORE_PROV_SYSTEM_W ((LPCSTR)10) 2009 #define CERT_STORE_PROV_SYSTEM CERT_STORE_PROV_SYSTEM_W 2010 #define CERT_STORE_PROV_COLLECTION ((LPCSTR)11) 2011 #define CERT_STORE_PROV_SYSTEM_REGISTRY_A ((LPCSTR)12) 2012 #define CERT_STORE_PROV_SYSTEM_REGISTRY_W ((LPCSTR)13) 2013 #define CERT_STORE_PROV_SYSTEM_REGISTRY CERT_STORE_PROV_SYSTEM_REGISTRY_W 2014 #define CERT_STORE_PROV_PHYSICAL_W ((LPCSTR)14) 2015 #define CERT_STORE_PROV_PHYSICAL CERT_STORE_PROV_PHYSICAL_W 2016 #define CERT_STORE_PROV_SMART_CARD_W ((LPCSTR)15) 2017 #define CERT_STORE_PROV_SMART_CARD CERT_STORE_PROV_SMART_CARD_W 2018 #define CERT_STORE_PROV_LDAP_W ((LPCSTR)16) 2019 #define CERT_STORE_PROV_LDAP CERT_STORE_PROV_LDAP_W 2020 2021 #define sz_CERT_STORE_PROV_MEMORY "Memory" 2022 #define sz_CERT_STORE_PROV_FILENAME_W "File" 2023 #define sz_CERT_STORE_PROV_FILENAME sz_CERT_STORE_PROV_FILENAME_W 2024 #define sz_CERT_STORE_PROV_SYSTEM_W "System" 2025 #define sz_CERT_STORE_PROV_SYSTEM sz_CERT_STORE_PROV_SYSTEM_W 2026 #define sz_CERT_STORE_PROV_PKCS7 "PKCS7" 2027 #define sz_CERT_STORE_PROV_SERIALIZED "Serialized" 2028 #define sz_CERT_STORE_PROV_COLLECTION "Collection" 2029 #define sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W "SystemRegistry" 2030 #define sz_CERT_STORE_PROV_SYSTEM_REGISTRY sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W 2031 #define sz_CERT_STORE_PROV_PHYSICAL_W "Physical" 2032 #define sz_CERT_STORE_PROV_PHYSICAL sz_CERT_STORE_PROV_PHYSICAL_W 2033 #define sz_CERT_STORE_PROV_SMART_CARD_W "SmartCard" 2034 #define sz_CERT_STORE_PROV_SMART_CARD sz_CERT_STORE_PROV_SMART_CARD_W 2035 #define sz_CERT_STORE_PROV_LDAP_W "Ldap" 2036 #define sz_CERT_STORE_PROV_LDAP sz_CERT_STORE_PROV_LDAP_W 2037 2038 /* types for CertOpenStore dwEncodingType */ 2039 #define CERT_ENCODING_TYPE_MASK 0x0000ffff 2040 #define CMSG_ENCODING_TYPE_MASK 0xffff0000 2041 #define GET_CERT_ENCODING_TYPE(x) ((x) & CERT_ENCODING_TYPE_MASK) 2042 #define GET_CMSG_ENCODING_TYPE(x) ((x) & CMSG_ENCODING_TYPE_MASK) 2043 2044 #define CRYPT_ASN_ENCODING 0x00000001 2045 #define CRYPT_NDR_ENCODING 0x00000002 2046 #define X509_ASN_ENCODING 0x00000001 2047 #define X509_NDR_ENCODING 0x00000002 2048 #define PKCS_7_ASN_ENCODING 0x00010000 2049 #define PKCS_7_NDR_ENCODING 0x00020000 2050 2051 /* system store locations */ 2052 #define CERT_SYSTEM_STORE_LOCATION_MASK 0x00ff0000 2053 #define CERT_SYSTEM_STORE_LOCATION_SHIFT 16 2054 2055 /* system store location ids */ 2056 /* hkcu */ 2057 #define CERT_SYSTEM_STORE_CURRENT_USER_ID 1 2058 /* hklm */ 2059 #define CERT_SYSTEM_STORE_LOCAL_MACHINE_ID 2 2060 /* hklm\Software\Microsoft\Cryptography\Services */ 2061 #define CERT_SYSTEM_STORE_CURRENT_SERVICE_ID 4 2062 #define CERT_SYSTEM_STORE_SERVICES_ID 5 2063 /* HKEY_USERS */ 2064 #define CERT_SYSTEM_STORE_USERS_ID 6 2065 /* hkcu\Software\Policies\Microsoft\SystemCertificates */ 2066 #define CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID 7 2067 /* hklm\Software\Policies\Microsoft\SystemCertificates */ 2068 #define CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID 8 2069 /* hklm\Software\Microsoft\EnterpriseCertificates */ 2070 #define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID 9 2071 2072 /* system store location values */ 2073 #define CERT_SYSTEM_STORE_CURRENT_USER \ 2074 (CERT_SYSTEM_STORE_CURRENT_USER_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) 2075 #define CERT_SYSTEM_STORE_LOCAL_MACHINE \ 2076 (CERT_SYSTEM_STORE_LOCAL_MACHINE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) 2077 #define CERT_SYSTEM_STORE_CURRENT_SERVICE \ 2078 (CERT_SYSTEM_STORE_CURRENT_SERVICE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) 2079 #define CERT_SYSTEM_STORE_SERVICES \ 2080 (CERT_SYSTEM_STORE_SERVICES_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) 2081 #define CERT_SYSTEM_STORE_USERS \ 2082 (CERT_SYSTEM_STORE_USERS_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) 2083 #define CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY \ 2084 (CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) 2085 #define CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY \ 2086 (CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) 2087 #define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE \ 2088 (CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) 2089 2090 #if defined(__GNUC__) 2091 #define CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH (const WCHAR[])\ 2092 {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t',\ 2093 '\\','S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s',\ 2094 0 } 2095 #define CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH (const WCHAR[])\ 2096 {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',\ 2097 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',\ 2098 't','i','f','i','c','a','t','e','s',0 } 2099 #elif defined(_MSC_VER) 2100 #define CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH \ 2101 L"Software\\Microsoft\\SystemCertificates" 2102 #define CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH \ 2103 L"Software\\Policies\\Microsoft\\SystemCertificates" 2104 #else 2105 static const WCHAR CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH[] = 2106 {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\', 2107 'S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s',0 }; 2108 static const WCHAR CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH[] = 2109 {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\', 2110 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r', 2111 't','i','f','i','c','a','t','e','s',0 }; 2112 #endif 2113 2114 #if defined(__GNUC__) 2115 #define CERT_EFSBLOB_REGPATH (const WCHAR[])\ 2116 {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',\ 2117 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',\ 2118 't','i','f','i','c','a','t','e','s','\\','E','F','S',0 } 2119 #define CERT_EFSBLOB_VALUE_NAME (const WCHAR[]) {'E','F','S','B','l','o','b',0 } 2120 #elif defined(_MSC_VER) 2121 #define CERT_EFSBLOB_REGPATH CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH L"\\EFS" 2122 #define CERT_EFSBLOB_VALUE_NAME L"EFSBlob" 2123 #else 2124 static const WCHAR CERT_EFSBLOB_REGPATH[] = 2125 {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\', 2126 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r', 2127 't','i','f','i','c','a','t','e','s','\\','E','F','S',0 }; 2128 static const CERT_EFSBLOB_VALUE_NAME[] = { 'E','F','S','B','l','o','b',0 }; 2129 #endif 2130 2131 #if defined(__GNUC__) 2132 #define CERT_PROT_ROOT_FLAGS_REGPATH (const WCHAR[])\ 2133 {'\\','R','o','o','t','\\','P','r','o','t','e','c','t','e','d','R','o','o','t',\ 2134 's',0 } 2135 #define CERT_PROT_ROOT_FLAGS_VALUE_NAME (const WCHAR[])\ 2136 {'F','l','a','g','s',0 } 2137 #elif defined(_MSC_VER) 2138 #define CERT_PROT_ROOT_FLAGS_REGPATH L"\\Root\\ProtectedRoots" 2139 #define CERT_PROT_ROOT_FLAGS_VALUE_NAME L"Flags" 2140 #else 2141 static const WCHAR CERT_PROT_ROOT_FLAGS_REGPATH[] = 2142 { '\\','R','o','o','t','\\','P','r','o','t','e','c','t','e','d','R','o','o', 2143 't','s',0 }; 2144 static const WCHAR CERT_PROT_ROOT_FLAGS_VALUE_NAME[] = {'F','l','a','g','s',0 }; 2145 #endif 2146 2147 #define CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG 0x01 2148 #define CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG 0x02 2149 #define CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG 0x04 2150 #define CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG 0x08 2151 #define CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG 0x10 2152 #define CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG 0x20 2153 2154 #if defined(__GNUC__) 2155 #define CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH (const WCHAR[])\ 2156 {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',\ 2157 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',\ 2158 't','i','f','i','c','a','t','e','s','\\','T','r','u','s','t','e','d',\ 2159 'P','u','b','l','i','s','h','e','r','\\','S','a','f','e','r',0 } 2160 #elif defined(_MSC_VER) 2161 #define CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH \ 2162 CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH L"\\TrustedPublisher\\Safer" 2163 #else 2164 static const WCHAR CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH[] = 2165 {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\', 2166 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r', 2167 't','i','f','i','c','a','t','e','s','\\','T','r','u','s','t','e','d', 2168 'P','u','b','l','i','s','h','e','r','\\','S','a','f','e','r',0 }; 2169 #endif 2170 2171 #if defined(__GNUC__) 2172 #define CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH (const WCHAR[])\ 2173 {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',\ 2174 'S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s','\\',\ 2175 'T','r','u','s','t','e','d','P','u','b','l','i','s','h','e','r','\\',\ 2176 'S','a','f','e','r',0 } 2177 #define CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME (const WCHAR[])\ 2178 {'A','u','t','h','e','n','t','i','c','o','d','e','F','l','a','g','s',0 }; 2179 #elif defined(_MSC_VER) 2180 #define CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH \ 2181 CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH L"\\TrustedPublisher\\Safer" 2182 #define CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME L"AuthenticodeFlags" 2183 #else 2184 static const WCHAR CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH[] = 2185 {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\', 2186 'S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s','\\', 2187 'T','r','u','s','t','e','d','P','u','b','l','i','s','h','e','r','\\', 2188 'S','a','f','e','r',0 }; 2189 static const WCHAR CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME[] = 2190 { 'A','u','t','h','e','n','t','i','c','o','d','e','F','l','a','g','s',0 }; 2191 #endif 2192 2193 #define CERT_TRUST_PUB_ALLOW_END_USER_TRUST 0x00000000 2194 #define CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST 0x00000001 2195 #define CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST 0x00000002 2196 #define CERT_TRUST_PUB_ALLOW_TRUST_MASK 0x00000003 2197 #define CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG 0x00000100 2198 #define CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG 0x00000200 2199 2200 /* flags for CertOpenStore dwFlags */ 2201 #define CERT_STORE_NO_CRYPT_RELEASE_FLAG 0x00000001 2202 #define CERT_STORE_SET_LOCALIZED_NAME_FLAG 0x00000002 2203 #define CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG 0x00000004 2204 #define CERT_STORE_DELETE_FLAG 0x00000010 2205 #define CERT_STORE_UNSAFE_PHYSICAL_FLAG 0x00000020 2206 #define CERT_STORE_SHARE_STORE_FLAG 0x00000040 2207 #define CERT_STORE_SHARE_CONTEXT_FLAG 0x00000080 2208 #define CERT_STORE_MANIFOLD_FLAG 0x00000100 2209 #define CERT_STORE_ENUM_ARCHIVED_FLAG 0x00000200 2210 #define CERT_STORE_UPDATE_KEYID_FLAG 0x00000400 2211 #define CERT_STORE_BACKUP_RESTORE_FLAG 0x00000800 2212 #define CERT_STORE_MAXIMUM_ALLOWED_FLAG 0x00001000 2213 #define CERT_STORE_CREATE_NEW_FLAG 0x00002000 2214 #define CERT_STORE_OPEN_EXISTING_FLAG 0x00004000 2215 #define CERT_STORE_READONLY_FLAG 0x00008000 2216 2217 #define CERT_REGISTRY_STORE_REMOTE_FLAG 0x00010000 2218 #define CERT_REGISTRY_STORE_SERIALIZED_FLAG 0x00020000 2219 #define CERT_REGISTRY_STORE_ROAMING_FLAG 0x00040000 2220 #define CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG 0x00080000 2221 #define CERT_REGISTRY_STORE_LM_GPT_FLAG 0x01000000 2222 #define CERT_REGISTRY_STORE_CLIENT_GPT_FLAG 0x80000000 2223 2224 #define CERT_FILE_STORE_COMMIT_ENABLE_FLAG 0x00010000 2225 2226 /* CertCloseStore dwFlags */ 2227 #define CERT_CLOSE_STORE_FORCE_FLAG 0x00000001 2228 #define CERT_CLOSE_STORE_CHECK_FLAG 0x00000002 2229 2230 /* dwAddDisposition */ 2231 #define CERT_STORE_ADD_NEW 1 2232 #define CERT_STORE_ADD_USE_EXISTING 2 2233 #define CERT_STORE_ADD_REPLACE_EXISTING 3 2234 #define CERT_STORE_ADD_ALWAYS 4 2235 #define CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES 5 2236 #define CERT_STORE_ADD_NEWER 6 2237 #define CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES 7 2238 2239 /* Installable OID function defs */ 2240 #define CRYPT_OID_OPEN_STORE_PROV_FUNC "CertDllOpenStoreProv" 2241 #define CRYPT_OID_ENCODE_OBJECT_FUNC "CryptDllEncodeObject" 2242 #define CRYPT_OID_DECODE_OBJECT_FUNC "CryptDllDecodeObject" 2243 #define CRYPT_OID_ENCODE_OBJECT_EX_FUNC "CryptDllEncodeObjectEx" 2244 #define CRYPT_OID_DECODE_OBJECT_EX_FUNC "CryptDllDecodeObjectEx" 2245 #define CRYPT_OID_CREATE_COM_OBJECT_FUNC "CryptDllCreateComObject" 2246 #define CRYPT_OID_VERIFY_REVOCATION_FUNC "CertDllVerifyRevocation" 2247 #define CRYPT_OID_VERIFY_CTL_USAGE_FUNC "CertDllVerifyCTLUsage" 2248 #define CRYPT_OID_FORMAT_OBJECT_FUNC "CryptDllFormatObject" 2249 #define CRYPT_OID_FIND_OID_INFO_FUNC "CryptDllFindOIDInfo" 2250 #define CRYPT_OID_FIND_LOCALIZED_NAME_FUNC "CryptDllFindLocalizedName" 2251 #define CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC "CryptDllExportPublicKeyInfoEx" 2252 #define CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC "CryptDllImportPublicKeyInfoEx" 2253 #define CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC "CryptDllExportPrivateKeyInfoEx" 2254 #define CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC "CryptDllImportPrivateKeyInfoEx" 2255 #define CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC \ 2256 "CertDllVerifyCertificateChainPolicy" 2257 #define URL_OID_GET_OBJECT_URL_FUNC "UrlDllGetObjectUrl" 2258 #define TIME_VALID_OID_GET_OBJECT_FUNC "TimeValidDllGetObject" 2259 2260 #define CRYPT_OID_REGPATH "Software\\Microsoft\\Cryptography\\OID" 2261 #define CRYPT_OID_REG_ENCODING_TYPE_PREFIX "EncodingType " 2262 #if defined(__GNUC__) 2263 # define CRYPT_OID_REG_DLL_VALUE_NAME (const WCHAR []){ 'D','l','l',0 } 2264 # define CRYPT_OID_REG_FUNC_NAME_VALUE_NAME \ 2265 (const WCHAR []){ 'F','u','n','c','N','a','m','e',0 } 2266 # define CRYPT_OID_REG_FLAGS_VALUE_NAME \ 2267 (const WCHAR []){ 'C','r','y','p','t','F','l','a','g','s',0 } 2268 #elif defined(_MSC_VER) 2269 # define CRYPT_OID_REG_DLL_VALUE_NAME L"Dll" 2270 # define CRYPT_OID_REG_FUNC_NAME_VALUE_NAME L"FuncName" 2271 # define CRYPT_OID_REG_FLAGS_VALUE_NAME L"CryptFlags" 2272 #else 2273 static const WCHAR CRYPT_OID_REG_DLL_VALUE_NAME[] = { 'D','l','l',0 }; 2274 static const WCHAR CRYPT_OID_REG_FUNC_NAME_VALUE_NAME[] = 2275 { 'F','u','n','c','N','a','m','e',0 }; 2276 static const WCHAR CRYPT_OID_REG_FLAGS_VALUE_NAME[] = 2277 { 'C','r','y','p','t','F','l','a','g','s',0 }; 2278 #endif 2279 #define CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A "FuncName" 2280 #define CRYPT_DEFAULT_OID "DEFAULT" 2281 2282 #define CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG 1 2283 2284 #define CRYPT_GET_INSTALLED_OID_FUNC_FLAG 0x1 2285 2286 #define CRYPT_REGISTER_FIRST_INDEX 0 2287 #define CRYPT_REGISTER_LAST_INDEX 0xffffffff 2288 2289 /* values for CERT_STORE_PROV_INFO's dwStoreProvFlags */ 2290 #define CERT_STORE_PROV_EXTERNAL_FLAG 0x1 2291 #define CERT_STORE_PROV_DELETED_FLAG 0x2 2292 #define CERT_STORE_PROV_NO_PERSIST_FLAG 0x4 2293 #define CERT_STORE_PROV_SYSTEM_STORE_FLAG 0x8 2294 #define CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG 0x10 2295 2296 /* function indices */ 2297 #define CERT_STORE_PROV_CLOSE_FUNC 0 2298 #define CERT_STORE_PROV_READ_CERT_FUNC 1 2299 #define CERT_STORE_PROV_WRITE_CERT_FUNC 2 2300 #define CERT_STORE_PROV_DELETE_CERT_FUNC 3 2301 #define CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC 4 2302 #define CERT_STORE_PROV_READ_CRL_FUNC 5 2303 #define CERT_STORE_PROV_WRITE_CRL_FUNC 6 2304 #define CERT_STORE_PROV_DELETE_CRL_FUNC 7 2305 #define CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC 8 2306 #define CERT_STORE_PROV_READ_CTL_FUNC 9 2307 #define CERT_STORE_PROV_WRITE_CTL_FUNC 10 2308 #define CERT_STORE_PROV_DELETE_CTL_FUNC 11 2309 #define CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC 12 2310 #define CERT_STORE_PROV_CONTROL_FUNC 13 2311 #define CERT_STORE_PROV_FIND_CERT_FUNC 14 2312 #define CERT_STORE_PROV_FREE_FIND_CERT_FUNC 15 2313 #define CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC 16 2314 #define CERT_STORE_PROV_FIND_CRL_FUNC 17 2315 #define CERT_STORE_PROV_FREE_FIND_CRL_FUNC 18 2316 #define CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC 19 2317 #define CERT_STORE_PROV_FIND_CTL_FUNC 20 2318 #define CERT_STORE_PROV_FREE_FIND_CTL_FUNC 21 2319 #define CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC 22 2320 2321 /* physical store dwFlags, also used by CertAddStoreToCollection as 2322 * dwUpdateFlags 2323 */ 2324 #define CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG 0x1 2325 #define CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG 0x2 2326 #define CERT_PHYSICAL_STORE_REMOVE_OPEN_DISABLE_FLAG 0x4 2327 #define CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG 0x8 2328 2329 /* dwFlag values for CertEnumPhysicalStore callback */ 2330 #define CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG 0x1 2331 2332 /* predefined store names */ 2333 #if defined(__GNUC__) 2334 # define CERT_PHYSICAL_STORE_DEFAULT_NAME (const WCHAR[])\ 2335 {'.','D','e','f','a','u','l','t','0'} 2336 # define CERT_PHYSICAL_STORE_GROUP_POLICY_NAME (const WCHAR[])\ 2337 {'.','G','r','o','u','p','P','o','l','i','c','y',0} 2338 # define CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME (const WCHAR[])\ 2339 {'.','L','o','c','a','l','M','a','c','h','i','n','e',0} 2340 # define CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME (const WCHAR[])\ 2341 {'.','U','s','e','r','C','e','r','t','i','f','i','c','a','t','e',0} 2342 # define CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME (const WCHAR[])\ 2343 {'.','L','o','c','a','l','M','a','c','h','i','n','e','G','r','o','u','p',\ 2344 'P','o','l','i','c','y',0} 2345 # define CERT_PHYSICAL_STORE_ENTERPRISE_NAME (const WCHAR[])\ 2346 {'.','E','n','t','e','r','p','r','i','s','e',0} 2347 # define CERT_PHYSICAL_STORE_AUTH_ROOT_NAME (const WCHAR[])\ 2348 {'.','A','u','t','h','R','o','o','t',0} 2349 #elif defined(_MSC_VER) 2350 # define CERT_PHYSICAL_STORE_DEFAULT_NAME \ 2351 L".Default" 2352 # define CERT_PHYSICAL_STORE_GROUP_POLICY_NAME \ 2353 L".GroupPolicy" 2354 # define CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME \ 2355 L".LocalMachine" 2356 # define CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME \ 2357 L".UserCertificate" 2358 # define CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME \ 2359 L".LocalMachineGroupPolicy" 2360 # define CERT_PHYSICAL_STORE_ENTERPRISE_NAME \ 2361 L".Enterprise" 2362 # define CERT_PHYSICAL_STORE_AUTH_ROOT_NAME \ 2363 L".AuthRoot" 2364 #else 2365 static const WCHAR CERT_PHYSICAL_STORE_DEFAULT_NAME[] = 2366 {'.','D','e','f','a','u','l','t','0'}; 2367 static const WCHAR CERT_PHYSICAL_STORE_GROUP_POLICY_NAME[] = 2368 {'.','G','r','o','u','p','P','o','l','i','c','y',0}; 2369 static const WCHAR CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME[] = 2370 {'.','L','o','c','a','l','M','a','c','h','i','n','e',0}; 2371 static const WCHAR CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME[] = 2372 {'.','U','s','e','r','C','e','r','t','i','f','i','c','a','t','e',0}; 2373 static const WCHAR CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME[] = 2374 {'.','L','o','c','a','l','M','a','c','h','i','n','e','G','r','o','u','p', 2375 'P','o','l','i','c','y',0}; 2376 static const WCHAR CERT_PHYSICAL_STORE_ENTERPRISE_NAME[] = 2377 {'.','E','n','t','e','r','p','r','i','s','e',0}; 2378 static const WCHAR CERT_PHYSICAL_STORE_AUTH_ROOT_NAME[] = 2379 {'.','A','u','t','h','R','o','o','t',0}; 2380 #endif 2381 2382 /* cert system store flags */ 2383 #define CERT_SYSTEM_STORE_MASK 0xffff0000 2384 #define CERT_SYSTEM_STORE_RELOCATE_FLAG 0x80000000 2385 2386 /* CertFindChainInStore dwFindType types */ 2387 #define CERT_CHAIN_FIND_BY_ISSUER 1 2388 2389 /* CertSaveStore dwSaveAs values */ 2390 #define CERT_STORE_SAVE_AS_STORE 1 2391 #define CERT_STORE_SAVE_AS_PKCS7 2 2392 /* CertSaveStore dwSaveTo values */ 2393 #define CERT_STORE_SAVE_TO_FILE 1 2394 #define CERT_STORE_SAVE_TO_MEMORY 2 2395 #define CERT_STORE_SAVE_TO_FILENAME_A 3 2396 #define CERT_STORE_SAVE_TO_FILENAME_W 4 2397 #define CERT_STORE_SAVE_TO_FILENAME CERT_STORE_SAVE_TO_FILENAME_W 2398 2399 /* CERT_INFO versions/flags */ 2400 #define CERT_V1 0 2401 #define CERT_V2 1 2402 #define CERT_V3 2 2403 #define CERT_INFO_VERSION_FLAG 1 2404 #define CERT_INFO_SERIAL_NUMBER_FLAG 2 2405 #define CERT_INFO_SIGNATURE_ALGORITHM_FLAG 3 2406 #define CERT_INFO_ISSUER_FLAG 4 2407 #define CERT_INFO_NOT_BEFORE_FLAG 5 2408 #define CERT_INFO_NOT_AFTER_FLAG 6 2409 #define CERT_INFO_SUBJECT_FLAG 7 2410 #define CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG 8 2411 #define CERT_INFO_ISSUER_UNIQUE_ID_FLAG 9 2412 #define CERT_INFO_SUBJECT_UNIQUE_ID_FLAG 10 2413 #define CERT_INFO_EXTENSION_FLAG 11 2414 2415 /* CERT_REQUEST_INFO versions */ 2416 #define CERT_REQUEST_V1 0 2417 2418 /* CERT_KEYGEN_REQUEST_INFO versions */ 2419 #define CERT_KEYGEN_REQUEST_V1 0 2420 2421 /* CRL versions */ 2422 #define CRL_V1 0 2423 #define CRL_V2 1 2424 2425 /* CTL versions */ 2426 #define CTL_V1 0 2427 2428 /* Certificate, CRL, CTL property IDs */ 2429 #define CERT_KEY_PROV_HANDLE_PROP_ID 1 2430 #define CERT_KEY_PROV_INFO_PROP_ID 2 2431 #define CERT_SHA1_HASH_PROP_ID 3 2432 #define CERT_HASH_PROP_ID CERT_SHA1_HASH_PROP_ID 2433 #define CERT_MD5_HASH_PROP_ID 4 2434 #define CERT_KEY_CONTEXT_PROP_ID 5 2435 #define CERT_KEY_SPEC_PROP_ID 6 2436 #define CERT_IE30_RESERVED_PROP_ID 7 2437 #define CERT_PUBKEY_HASH_RESERVED_PROP_ID 8 2438 #define CERT_ENHKEY_USAGE_PROP_ID 9 2439 #define CERT_CTL_USAGE_PROP_ID CERT_ENHKEY_USAGE_PROP_ID 2440 #define CERT_NEXT_UPDATE_LOCATION_PROP_ID 10 2441 #define CERT_FRIENDLY_NAME_PROP_ID 11 2442 #define CERT_PVK_FILE_PROP_ID 12 2443 #define CERT_DESCRIPTION_PROP_ID 13 2444 #define CERT_ACCESS_STATE_PROP_ID 14 2445 #define CERT_SIGNATURE_HASH_PROP_ID 15 2446 #define CERT_SMART_CARD_DATA_PROP_ID 16 2447 #define CERT_EFS_PROP_ID 17 2448 #define CERT_FORTEZZA_DATA_PROP 18 2449 #define CERT_ARCHIVED_PROP_ID 19 2450 #define CERT_KEY_IDENTIFIER_PROP_ID 20 2451 #define CERT_AUTO_ENROLL_PROP_ID 21 2452 #define CERT_PUBKEY_ALG_PARA_PROP_ID 22 2453 #define CERT_CROSS_CERT_DIST_POINTS_PROP_ID 23 2454 #define CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID 24 2455 #define CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID 25 2456 #define CERT_ENROLLMENT_PROP_ID 26 2457 #define CERT_DATE_STAMP_PROP_ID 27 2458 #define CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID 28 2459 #define CERT_SUBJECT_NAME_MD5_HASH_PROP_ID 29 2460 #define CERT_EXTENDED_ERROR_INFO_PROP_ID 30 2461 /* 31 -- unused? 2462 32 -- cert prop id 2463 33 -- CRL prop id 2464 34 -- CTL prop id 2465 35 -- KeyId prop id 2466 36-63 -- reserved 2467 */ 2468 #define CERT_RENEWAL_PROP_ID 64 2469 #define CERT_ARCHIVED_KEY_HASH_PROP_ID 65 2470 #define CERT_AUTO_ENROLL_RETRY_PROP_ID 66 2471 #define CERT_AIA_URL_RETRIEVED_PROP_ID 67 2472 #define CERT_AUTHORITY_INFO_ACCESS_PROP_ID 68 2473 #define CERT_BACKED_UP_PROP_ID 69 2474 #define CERT_OCSP_RESPONSE_PROP_ID 70 2475 #define CERT_REQUEST_ORIGINATOR_PROP_ID 71 2476 #define CERT_SOURCE_LOCATION_PROP_ID 72 2477 #define CERT_SOURCE_URL_PROP_ID 73 2478 #define CERT_NEW_KEY_PROP_ID 74 2479 #define CERT_OCSP_CACHE_PREFIX_PROP_ID 75 2480 #define CERT_SMART_CARD_ROOT_INFO_PROP_ID 76 2481 #define CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID 77 2482 #define CERT_NCRYPT_KEY_HANDLE_PROP_ID 78 2483 #define CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID 79 2484 #define CERT_SUBJECT_INFO_ACCESS_PROP_ID 80 2485 #define CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID 81 2486 #define CERT_CA_DISABLE_CRL_PROP_ID 82 2487 #define CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID 83 2488 #define CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID 84 2489 2490 #define CERT_FIRST_RESERVED_PROP_ID 85 2491 #define CERT_LAST_RESERVED_PROP_ID 0x00007fff 2492 #define CERT_FIRST_USER_PROP_ID 0x00008000 2493 #define CERT_LAST_USER_PROP_ID 0x0000ffff 2494 2495 #define IS_CERT_HASH_PROP_ID(x) \ 2496 ((x) == CERT_SHA1_HASH_PROP_ID || (x) == CERT_MD5_HASH_PROP_ID || \ 2497 (x) == CERT_SIGNATURE_HASH_PROP_ID) 2498 2499 #define IS_PUBKEY_HASH_PROP_ID(x) \ 2500 ((x) == CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID || \ 2501 (x) == CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID) 2502 2503 #define IS_CHAIN_HASH_PROP_ID(x) \ 2504 ((x) == CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID || \ 2505 (x) == CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID || \ 2506 (x) == CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID || \ 2507 (x) == CERT_SUBJECT_NAME_MD5_HASH_PROP_ID) 2508 2509 /* access state flags */ 2510 #define CERT_ACCESS_STATE_WRITE_PERSIST_FLAG 0x1 2511 #define CERT_ACCESS_STATE_SYSTEM_STORE_FLAG 0x2 2512 #define CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG 0x4 2513 2514 /* CertSetCertificateContextProperty flags */ 2515 #define CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG 0x40000000 2516 #define CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG 0x80000000 2517 2518 /* CERT_RDN attribute dwValueType types */ 2519 #define CERT_RDN_TYPE_MASK 0x000000ff 2520 #define CERT_RDN_ANY_TYPE 0 2521 #define CERT_RDN_ENCODED_BLOB 1 2522 #define CERT_RDN_OCTET_STRING 2 2523 #define CERT_RDN_NUMERIC_STRING 3 2524 #define CERT_RDN_PRINTABLE_STRING 4 2525 #define CERT_RDN_TELETEX_STRING 5 2526 #define CERT_RDN_T61_STRING 5 2527 #define CERT_RDN_VIDEOTEX_STRING 6 2528 #define CERT_RDN_IA5_STRING 7 2529 #define CERT_RDN_GRAPHIC_STRING 8 2530 #define CERT_RDN_VISIBLE_STRING 9 2531 #define CERT_RDN_ISO646_STRING 9 2532 #define CERT_RDN_GENERAL_STRING 10 2533 #define CERT_RDN_UNIVERSAL_STRING 11 2534 #define CERT_RDN_INT4_STRING 11 2535 #define CERT_RDN_BMP_STRING 12 2536 #define CERT_RDN_UNICODE_STRING 12 2537 #define CERT_RDN_UTF8_STRING 13 2538 2539 /* CERT_RDN attribute dwValueType flags */ 2540 #define CERT_RDN_FLAGS_MASK 0xff000000 2541 #define CERT_RDN_ENABLE_T61_UNICODE_FLAG 0x80000000 2542 #define CERT_RDN_DISABLE_CHECK_TYPE_FLAG 0x4000000 2543 #define CERT_RDN_ENABLE_UTF8_UNICODE_FLAG 0x2000000 2544 #define CERT_RDN_DISABLE_IE4_UTF8_FLAG 0x0100000 2545 2546 #define IS_CERT_RDN_CHAR_STRING(x) \ 2547 (((x) & CERT_RDN_TYPE_MASK) >= CERT_RDN_NUMERIC_STRING) 2548 2549 /* CertIsRDNAttrsInCertificateName flags */ 2550 #define CERT_UNICODE_IS_RDN_ATTRS_FLAG 0x1 2551 #define CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG 0x2 2552 2553 /* CRL reason codes */ 2554 #define CRL_REASON_UNSPECIFIED 0 2555 #define CRL_REASON_KEY_COMPROMISE 1 2556 #define CRL_REASON_CA_COMPROMISE 2 2557 #define CRL_REASON_AFFILIATION_CHANGED 3 2558 #define CRL_REASON_SUPERSEDED 4 2559 #define CRL_REASON_CESSATION_OF_OPERATION 5 2560 #define CRL_REASON_CERTIFICATE_HOLD 6 2561 #define CRL_REASON_REMOVE_FROM_CRL 8 2562 2563 /* CertControlStore control types */ 2564 #define CERT_STORE_CTRL_RESYNC 1 2565 #define CERT_STORE_CTRL_NOTIFY_CHANGE 2 2566 #define CERT_STORE_CTRL_COMMIT 3 2567 #define CERT_STORE_CTRL_AUTO_RESYNC 4 2568 #define CERT_STORE_CTRL_CANCEL_NOTIFY 5 2569 2570 #define CERT_STORE_CTRL_COMMIT_FORCE_FLAG 0x1 2571 #define CERT_STORE_CTRL_COMMIT_CLEAR_FLAG 0x2 2572 2573 /* cert store properties */ 2574 #define CERT_STORE_LOCALIZED_NAME_PROP_ID 0x1000 2575 2576 /* CertCreateContext flags */ 2577 #define CERT_CREATE_CONTEXT_NOCOPY_FLAG 0x1 2578 #define CERT_CREATE_CONTEXT_SORTED_FLAG 0x2 2579 #define CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG 0x4 2580 #define CERT_CREATE_CONTEXT_NO_ENTRY_FLAG 0x8 2581 2582 #define CERT_COMPARE_MASK 0xffff 2583 #define CERT_COMPARE_SHIFT 16 2584 #define CERT_COMPARE_ANY 0 2585 #define CERT_COMPARE_SHA1_HASH 1 2586 #define CERT_COMPARE_HASH CERT_COMPARE_SHA1_HASH 2587 #define CERT_COMPARE_NAME 2 2588 #define CERT_COMPARE_ATTR 3 2589 #define CERT_COMPARE_MD5_HASH 4 2590 #define CERT_COMPARE_PROPERTY 5 2591 #define CERT_COMPARE_PUBLIC_KEY 6 2592 #define CERT_COMPARE_NAME_STR_A 7 2593 #define CERT_COMPARE_NAME_STR_W 8 2594 #define CERT_COMPARE_KEY_SPEC 9 2595 #define CERT_COMPARE_ENHKEY_USAGE 10 2596 #define CERT_COMPARE_CTL_USAGE CERT_COMPARE_ENHKEY_USAGE 2597 #define CERT_COMPARE_SUBJECT_CERT 11 2598 #define CERT_COMPARE_ISSUER_OF 12 2599 #define CERT_COMPARE_EXISTING 13 2600 #define CERT_COMPARE_SIGNATURE_HASH 14 2601 #define CERT_COMPARE_KEY_IDENTIFIER 15 2602 #define CERT_COMPARE_CERT_ID 16 2603 #define CERT_COMPARE_CROSS_CERT_DIST_POINTS 17 2604 #define CERT_COMPARE_PUBKEY_MD5_HASH 18 2605 2606 /* values of dwFindType for CertFind*InStore */ 2607 #define CERT_FIND_ANY \ 2608 (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT) 2609 #define CERT_FIND_SHA1_HASH \ 2610 (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT) 2611 #define CERT_FIND_MD5_HASH \ 2612 (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT) 2613 #define CERT_FIND_SIGNATURE_HASH \ 2614 (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT) 2615 #define CERT_FIND_KEY_IDENTIFIER \ 2616 (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT) 2617 #define CERT_FIND_HASH CERT_FIND_SHA1_HASH 2618 #define CERT_FIND_PROPERTY \ 2619 (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT) 2620 #define CERT_FIND_PUBLIC_KEY \ 2621 (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT) 2622 #define CERT_FIND_SUBJECT_NAME \ 2623 (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG) 2624 #define CERT_FIND_SUBJECT_ATTR \ 2625 (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG) 2626 #define CERT_FIND_ISSUER_NAME \ 2627 (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG) 2628 #define CERT_FIND_ISSUER_ATTR \ 2629 (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG) 2630 #define CERT_FIND_SUBJECT_STR_A \ 2631 (CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG) 2632 #define CERT_FIND_SUBJECT_STR_W \ 2633 (CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG) 2634 #define CERT_FIND_SUBJECT_STR CERT_FIND_SUBJECT_STR_W 2635 #define CERT_FIND_ISSUER_STR_A \ 2636 (CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG) 2637 #define CERT_FIND_ISSUER_STR_W \ 2638 (CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG) 2639 #define CERT_FIND_ISSUER_STR CERT_FIND_ISSUER_STR_W 2640 #define CERT_FIND_KEY_SPEC \ 2641 (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT) 2642 #define CERT_FIND_ENHKEY_USAGE \ 2643 (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT) 2644 #define CERT_FIND_CTL_USAGE CERT_FIND_ENHKEY_USAGE 2645 #define CERT_FIND_SUBJECT_CERT \ 2646 (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT) 2647 #define CERT_FIND_ISSUER_OF \ 2648 (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT) 2649 #define CERT_FIND_EXISTING \ 2650 (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT) 2651 #define CERT_FIND_CERT_ID \ 2652 (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT) 2653 #define CERT_FIND_CROSS_CERT_DIST_POINTS \ 2654 (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT) 2655 #define CERT_FIND_PUBKEY_MD5_HASH \ 2656 (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT) 2657 2658 #define CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG 0x1 2659 #define CERT_FIND_OPTIONAL_CTL_USAGE_FLAG 0x1 2660 #define CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG 0x2 2661 #define CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG 0x2 2662 #define CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG 0x4 2663 #define CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG 0x4 2664 #define CERT_FIND_NO_ENHKEY_USAGE_FLAG 0x8 2665 #define CERT_FIND_NO_CTL_USAGE_FLAG 0x8 2666 #define CERT_FIND_OR_ENHKEY_USAGE_FLAG 0x10 2667 #define CERT_FIND_OR_CTL_USAGE_FLAG 0x10 2668 #define CERT_FIND_VALID_ENHKEY_USAGE_FLAG 0x20 2669 #define CERT_FIND_VALID_CTL_USAGE_FLAG 0x20 2670 2671 #define CRL_FIND_ANY 0 2672 #define CRL_FIND_ISSUED_BY 1 2673 #define CRL_FIND_EXISTING 2 2674 #define CRL_FIND_ISSUED_FOR 3 2675 2676 #define CRL_FIND_ISSUED_BY_AKI_FLAG 0x1 2677 #define CRL_FIND_ISSUED_BY_SIGNATURE_FLAG 0x2 2678 #define CRL_FIND_ISSUED_BY_DELTA_FLAG 0x4 2679 #define CRL_FIND_ISSUED_BY_BASE_FLAG 0x8 2680 2681 typedef struct _CRL_FIND_ISSUED_FOR_PARA 2682 { 2683 PCCERT_CONTEXT pSubjectCert; 2684 PCCERT_CONTEXT pIssuerCert; 2685 } CRL_FIND_ISSUED_FOR_PARA, *PCRL_FIND_ISSUED_FOR_PARA; 2686 2687 #define CTL_FIND_ANY 0 2688 #define CTL_FIND_SHA1_HASH 1 2689 #define CTL_FIND_MD5_HASH 2 2690 #define CTL_FIND_USAGE 3 2691 #define CTL_FIND_SUBJECT 4 2692 #define CTL_FIND_EXISTING 5 2693 2694 typedef struct _CTL_FIND_USAGE_PARA 2695 { 2696 DWORD cbSize; 2697 CTL_USAGE SubjectUsage; 2698 CRYPT_DATA_BLOB ListIdentifier; 2699 PCERT_INFO pSigner; 2700 } CTL_FIND_USAGE_PARA, *PCTL_FIND_USAGE_PARA; 2701 2702 #define CTL_FIND_NO_LIST_ID_CBDATA 0xffffffff 2703 #define CTL_FIND_NO_SIGNER_PTR ((PCERT_INFO)-1) 2704 #define CTL_FIND_SAME_USAGE_FLAG 0x00000001 2705 2706 typedef struct _CTL_FIND_SUBJECT_PARA 2707 { 2708 DWORD cbSize; 2709 PCTL_FIND_USAGE_PARA pUsagePara; 2710 DWORD dwSubjectType; 2711 void *pvSubject; 2712 } CTL_FIND_SUBJECT_PARA, *PCTL_FIND_SUBJECT_PARA; 2713 2714 /* PFN_CERT_STORE_PROV_WRITE_CERT dwFlags values */ 2715 #define CERT_STORE_PROV_WRITE_ADD_FLAG 0x1 2716 2717 /* CertAddSerializedElementToStore context types */ 2718 #define CERT_STORE_CERTIFICATE_CONTEXT 1 2719 #define CERT_STORE_CRL_CONTEXT 2 2720 #define CERT_STORE_CTL_CONTEXT 3 2721 #define CERT_STORE_ALL_CONTEXT_FLAG ~0U 2722 #define CERT_STORE_CERTIFICATE_CONTEXT_FLAG \ 2723 (1 << CERT_STORE_CERTIFICATE_CONTEXT) 2724 #define CERT_STORE_CRL_CONTEXT_FLAG (1 << CERT_STORE_CRL_CONTEXT) 2725 #define CERT_STORE_CTL_CONTEXT_FLAG (1 << CERT_STORE_CTL_CONTEXT) 2726 2727 /* CryptBinaryToString/CryptStringToBinary flags */ 2728 #define CRYPT_STRING_BASE64HEADER 0x00000000 2729 #define CRYPT_STRING_BASE64 0x00000001 2730 #define CRYPT_STRING_BINARY 0x00000002 2731 #define CRYPT_STRING_BASE64REQUESTHEADER 0x00000003 2732 #define CRYPT_STRING_HEX 0x00000004 2733 #define CRYPT_STRING_HEXASCII 0x00000005 2734 #define CRYPT_STRING_BASE64_ANY 0x00000006 2735 #define CRYPT_STRING_ANY 0x00000007 2736 #define CRYPT_STRING_HEX_ANY 0x00000008 2737 #define CRYPT_STRING_BASE64X509CRLHEADER 0x00000009 2738 #define CRYPT_STRING_HEXADDR 0x0000000a 2739 #define CRYPT_STRING_HEXASCIIADDR 0x0000000b 2740 #define CRYPT_STRING_NOCR 0x80000000 2741 2742 /* OIDs */ 2743 #define szOID_RSA "1.2.840.113549" 2744 #define szOID_PKCS "1.2.840.113549.1" 2745 #define szOID_RSA_HASH "1.2.840.113549.2" 2746 #define szOID_RSA_ENCRYPT "1.2.840.113549.3" 2747 #define szOID_PKCS_1 "1.2.840.113549.1.1" 2748 #define szOID_PKCS_2 "1.2.840.113549.1.2" 2749 #define szOID_PKCS_3 "1.2.840.113549.1.3" 2750 #define szOID_PKCS_4 "1.2.840.113549.1.4" 2751 #define szOID_PKCS_5 "1.2.840.113549.1.5" 2752 #define szOID_PKCS_6 "1.2.840.113549.1.6" 2753 #define szOID_PKCS_7 "1.2.840.113549.1.7" 2754 #define szOID_PKCS_8 "1.2.840.113549.1.8" 2755 #define szOID_PKCS_9 "1.2.840.113549.1.9" 2756 #define szOID_PKCS_10 "1.2.840.113549.1.10" 2757 #define szOID_PKCS_11 "1.2.840.113549.1.12" 2758 #define szOID_RSA_RSA "1.2.840.113549.1.1.1" 2759 #define CERT_RSA_PUBLIC_KEY_OBJID szOID_RSA_RSA 2760 #define CERT_DEFAULT_OID_PUBLIC_KEY_SIGN szOID_RSA_RSA 2761 #define CERT_DEFAULT_OID_PUBLIC_KEY_XCHG szOID_RSA_RSA 2762 #define szOID_RSA_MD2RSA "1.2.840.113549.1.1.2" 2763 #define szOID_RSA_MD4RSA "1.2.840.113549.1.1.3" 2764 #define szOID_RSA_MD5RSA "1.2.840.113549.1.1.4" 2765 #define szOID_RSA_SHA1RSA "1.2.840.113549.1.1.5" 2766 #define szOID_RSA_SET0AEP_RSA "1.2.840.113549.1.1.6" 2767 #define szOID_RSA_DH "1.2.840.113549.1.3.1" 2768 #define szOID_RSA_data "1.2.840.113549.1.7.1" 2769 #define szOID_RSA_signedData "1.2.840.113549.1.7.2" 2770 #define szOID_RSA_envelopedData "1.2.840.113549.1.7.3" 2771 #define szOID_RSA_signEnvData "1.2.840.113549.1.7.4" 2772 #define szOID_RSA_digestedData "1.2.840.113549.1.7.5" 2773 #define szOID_RSA_hashedData "1.2.840.113549.1.7.5" 2774 #define szOID_RSA_encryptedData "1.2.840.113549.1.7.6" 2775 #define szOID_RSA_emailAddr "1.2.840.113549.1.9.1" 2776 #define szOID_RSA_unstructName "1.2.840.113549.1.9.2" 2777 #define szOID_RSA_contentType "1.2.840.113549.1.9.3" 2778 #define szOID_RSA_messageDigest "1.2.840.113549.1.9.4" 2779 #define szOID_RSA_signingTime "1.2.840.113549.1.9.5" 2780 #define szOID_RSA_counterSign "1.2.840.113549.1.9.6" 2781 #define szOID_RSA_challengePwd "1.2.840.113549.1.9.7" 2782 #define szOID_RSA_unstructAddr "1.2.840.113549.1.9.9" 2783 #define szOID_RSA_extCertAttrs "1.2.840.113549.1.9.9" 2784 #define szOID_RSA_certExtensions "1.2.840.113549.1.9.14" 2785 #define szOID_RSA_SMIMECapabilities "1.2.840.113549.1.9.15" 2786 #define szOID_RSA_preferSignedData "1.2.840.113549.1.9.15.1" 2787 #define szOID_RSA_SMIMEalg "1.2.840.113549.1.9.16.3" 2788 #define szOID_RSA_SMIMEalgESDH "1.2.840.113549.1.9.16.3.5" 2789 #define szOID_RSA_SMIMEalgCMS3DESwrap "1.2.840.113549.1.9.16.3.6" 2790 #define szOID_RSA_SMIMEalgCMSRC2wrap "1.2.840.113549.1.9.16.3.7" 2791 #define szOID_RSA_MD2 "1.2.840.113549.2.2" 2792 #define szOID_RSA_MD4 "1.2.840.113549.2.4" 2793 #define szOID_RSA_MD5 "1.2.840.113549.2.5" 2794 #define szOID_RSA_RC2CBC "1.2.840.113549.3.2" 2795 #define szOID_RSA_RC4 "1.2.840.113549.3.4" 2796 #define szOID_RSA_DES_EDE3_CBC "1.2.840.113549.3.7" 2797 #define szOID_RSA_RC5_CBCPad "1.2.840.113549.3.9" 2798 #define szOID_ANSI_X942 "1.2.840.10046" 2799 #define szOID_ANSI_X942_DH "1.2.840.10046.2.1" 2800 #define szOID_X957 "1.2.840.10040" 2801 #define szOID_X957_DSA "1.2.840.10040.4.1" 2802 #define szOID_X957_SHA1DSA "1.2.840.10040.4.3" 2803 #define szOID_DS "2.5" 2804 #define szOID_DSALG "2.5.8" 2805 #define szOID_DSALG_CRPT "2.5.8.1" 2806 #define szOID_DSALG_HASH "2.5.8.2" 2807 #define szOID_DSALG_SIGN "2.5.8.3" 2808 #define szOID_DSALG_RSA "2.5.8.1.1" 2809 #define szOID_OIW "1.3.14" 2810 #define szOID_OIWSEC "1.3.14.3.2" 2811 #define szOID_OIWSEC_md4RSA "1.3.14.3.2.2" 2812 #define szOID_OIWSEC_md5RSA "1.3.14.3.2.3" 2813 #define szOID_OIWSEC_md4RSA2 "1.3.14.3.2.4" 2814 #define szOID_OIWSEC_desECB "1.3.14.3.2.6" 2815 #define szOID_OIWSEC_desCBC "1.3.14.3.2.7" 2816 #define szOID_OIWSEC_desOFB "1.3.14.3.2.8" 2817 #define szOID_OIWSEC_desCFB "1.3.14.3.2.9" 2818 #define szOID_OIWSEC_desMAC "1.3.14.3.2.10" 2819 #define szOID_OIWSEC_rsaSign "1.3.14.3.2.11" 2820 #define szOID_OIWSEC_dsa "1.3.14.3.2.12" 2821 #define szOID_OIWSEC_shaDSA "1.3.14.3.2.13" 2822 #define szOID_OIWSEC_mdc2RSA "1.3.14.3.2.14" 2823 #define szOID_OIWSEC_shaRSA "1.3.14.3.2.15" 2824 #define szOID_OIWSEC_dhCommMod "1.3.14.3.2.16" 2825 #define szOID_OIWSEC_desEDE "1.3.14.3.2.17" 2826 #define szOID_OIWSEC_sha "1.3.14.3.2.18" 2827 #define szOID_OIWSEC_mdc2 "1.3.14.3.2.19" 2828 #define szOID_OIWSEC_dsaComm "1.3.14.3.2.20" 2829 #define szOID_OIWSEC_dsaCommSHA "1.3.14.3.2.21" 2830 #define szOID_OIWSEC_rsaXchg "1.3.14.3.2.22" 2831 #define szOID_OIWSEC_keyHashSeal "1.3.14.3.2.23" 2832 #define szOID_OIWSEC_md2RSASign "1.3.14.3.2.24" 2833 #define szOID_OIWSEC_md5RSASign "1.3.14.3.2.25" 2834 #define szOID_OIWSEC_sha1 "1.3.14.3.2.26" 2835 #define szOID_OIWSEC_dsaSHA1 "1.3.14.3.2.27" 2836 #define szOID_OIWSEC_dsaCommSHA1 "1.3.14.3.2.28" 2837 #define szOID_OIWSEC_sha1RSASign "1.3.14.3.2.29" 2838 #define szOID_OIWDIR "1.3.14.7.2" 2839 #define szOID_OIWDIR_CRPT "1.3.14.7.2.1" 2840 #define szOID_OIWDIR_HASH "1.3.14.7.2.2" 2841 #define szOID_OIWDIR_SIGN "1.3.14.7.2.3" 2842 #define szOID_OIWDIR_md2 "1.3.14.7.2.2.1" 2843 #define szOID_OIWDIR_md2RSA "1.3.14.7.2.3.1" 2844 #define szOID_INFOSEC "2.16.840.1.101.2.1" 2845 #define szOID_INFOSEC_sdnsSignature "2.16.840.1.101.2.1.1.1" 2846 #define szOID_INFOSEC_mosaicSignature "2.16.840.1.101.2.1.1.2" 2847 #define szOID_INFOSEC_sdnsConfidentiality "2.16.840.1.101.2.1.1.3" 2848 #define szOID_INFOSEC_mosaicConfidentiality "2.16.840.1.101.2.1.1.4" 2849 #define szOID_INFOSEC_sdnsIntegrity "2.16.840.1.101.2.1.1.5" 2850 #define szOID_INFOSEC_mosaicIntegrity "2.16.840.1.101.2.1.1.6" 2851 #define szOID_INFOSEC_sdnsTokenProtection "2.16.840.1.101.2.1.1.7" 2852 #define szOID_INFOSEC_mosaicTokenProtection "2.16.840.1.101.2.1.1.8" 2853 #define szOID_INFOSEC_sdnsKeyManagement "2.16.840.1.101.2.1.1.9" 2854 #define szOID_INFOSEC_mosaicKeyManagement "2.16.840.1.101.2.1.1.10" 2855 #define szOID_INFOSEC_sdnsKMandSig "2.16.840.1.101.2.1.1.11" 2856 #define szOID_INFOSEC_mosaicKMandSig "2.16.840.1.101.2.1.1.12" 2857 #define szOID_INFOSEC_SuiteASignature "2.16.840.1.101.2.1.1.13" 2858 #define szOID_INFOSEC_SuiteAConfidentiality "2.16.840.1.101.2.1.1.14" 2859 #define szOID_INFOSEC_SuiteAIntegrity "2.16.840.1.101.2.1.1.15" 2860 #define szOID_INFOSEC_SuiteATokenProtection "2.16.840.1.101.2.1.1.16" 2861 #define szOID_INFOSEC_SuiteAKeyManagement "2.16.840.1.101.2.1.1.17" 2862 #define szOID_INFOSEC_SuiteAKMandSig "2.16.840.1.101.2.1.1.18" 2863 #define szOID_INFOSEC_mosaicUpdatedSig "2.16.840.1.101.2.1.1.19" 2864 #define szOID_INFOSEC_mosaicKMandUpdSig "2.16.840.1.101.2.1.1.20" 2865 #define szOID_INFOSEC_mosaicUpdateInteg "2.16.840.1.101.2.1.1.21" 2866 #define szOID_COMMON_NAME "2.5.4.3" 2867 #define szOID_SUR_NAME "2.5.4.4" 2868 #define szOID_DEVICE_SERIAL_NUMBER "2.5.4.5" 2869 #define szOID_COUNTRY_NAME "2.5.4.6" 2870 #define szOID_LOCALITY_NAME "2.5.4.7" 2871 #define szOID_STATE_OR_PROVINCE_NAME "2.5.4.8" 2872 #define szOID_STREET_ADDRESS "2.5.4.9" 2873 #define szOID_ORGANIZATION_NAME "2.5.4.10" 2874 #define szOID_ORGANIZATIONAL_UNIT_NAME "2.5.4.11" 2875 #define szOID_TITLE "2.5.4.12" 2876 #define szOID_DESCRIPTION "2.5.4.13" 2877 #define szOID_SEARCH_GUIDE "2.5.4.14" 2878 #define szOID_BUSINESS_CATEGORY "2.5.4.15" 2879 #define szOID_POSTAL_ADDRESS "2.5.4.16" 2880 #define szOID_POSTAL_CODE "2.5.4.17" 2881 #define szOID_POST_OFFICE_BOX "2.5.4.18" 2882 #define szOID_PHYSICAL_DELIVERY_OFFICE_NAME "2.5.4.19" 2883 #define szOID_TELEPHONE_NUMBER "2.5.4.20" 2884 #define szOID_TELEX_NUMBER "2.5.4.21" 2885 #define szOID_TELETEXT_TERMINAL_IDENTIFIER "2.5.4.22" 2886 #define szOID_FACSIMILE_TELEPHONE_NUMBER "2.5.4.23" 2887 #define szOID_X21_ADDRESS "2.5.4.24" 2888 #define szOID_INTERNATIONAL_ISDN_NUMBER "2.5.4.25" 2889 #define szOID_REGISTERED_ADDRESS "2.5.4.26" 2890 #define szOID_DESTINATION_INDICATOR "2.5.4.27" 2891 #define szOID_PREFERRED_DELIVERY_METHOD "2.5.4.28" 2892 #define szOID_PRESENTATION_ADDRESS "2.5.4.29" 2893 #define szOID_SUPPORTED_APPLICATION_CONTEXT "2.5.4.30" 2894 #define szOID_MEMBER "2.5.4.31" 2895 #define szOID_OWNER "2.5.4.32" 2896 #define szOID_ROLE_OCCUPANT "2.5.4.33" 2897 #define szOID_SEE_ALSO "2.5.4.34" 2898 #define szOID_USER_PASSWORD "2.5.4.35" 2899 #define szOID_USER_CERTIFICATE "2.5.4.36" 2900 #define szOID_CA_CERTIFICATE "2.5.4.37" 2901 #define szOID_AUTHORITY_REVOCATION_LIST "2.5.4.38" 2902 #define szOID_CERTIFICATE_REVOCATION_LIST "2.5.4.39" 2903 #define szOID_CROSS_CERTIFICATE_PAIR "2.5.4.40" 2904 #define szOID_GIVEN_NAME "2.5.4.42" 2905 #define szOID_INITIALS "2.5.4.43" 2906 #define szOID_DN_QUALIFIER "2.5.4.46" 2907 #define szOID_AUTHORITY_KEY_IDENTIFIER "2.5.29.1" 2908 #define szOID_KEY_ATTRIBUTES "2.5.29.2" 2909 #define szOID_CERT_POLICIES_95 "2.5.29.3" 2910 #define szOID_KEY_USAGE_RESTRICTION "2.5.29.4" 2911 #define szOID_LEGACY_POLICY_MAPPINGS "2.5.29.5" 2912 #define szOID_SUBJECT_ALT_NAME "2.5.29.7" 2913 #define szOID_ISSUER_ALT_NAME "2.5.29.8" 2914 #define szOID_SUBJECT_DIR_ATTRS "2.5.29.9" 2915 #define szOID_BASIC_CONSTRAINTS "2.5.29.10" 2916 #define szOID_SUBJECT_KEY_IDENTIFIER "2.5.29.14" 2917 #define szOID_KEY_USAGE "2.5.29.15" 2918 #define szOID_PRIVATEKEY_USAGE_PERIOD "2.5.29.16" 2919 #define szOID_SUBJECT_ALT_NAME2 "2.5.29.17" 2920 #define szOID_ISSUER_ALT_NAME2 "2.5.29.18" 2921 #define szOID_BASIC_CONSTRAINTS2 "2.5.29.19" 2922 #define szOID_CRL_NUMBER "2.5.29.20" 2923 #define szOID_CRL_REASON_CODE "2.5.29.21" 2924 #define szOID_REASON_CODE_HOLD "2.5.29.23" 2925 #define szOID_DELTA_CRL_INDICATOR "2.5.29.27" 2926 #define szOID_ISSUING_DIST_POINT "2.5.29.28" 2927 #define szOID_NAME_CONSTRAINTS "2.5.29.30" 2928 #define szOID_CRL_DIST_POINTS "2.5.29.31" 2929 #define szOID_CERT_POLICIES "2.5.29.32" 2930 #define szOID_ANY_CERT_POLICY "2.5.29.32.0" 2931 #define szOID_POLICY_MAPPINGS "2.5.29.33" 2932 #define szOID_AUTHORITY_KEY_IDENTIFIER2 "2.5.29.35" 2933 #define szOID_POLICY_CONSTRAINTS "2.5.29.36" 2934 #define szOID_ENHANCED_KEY_USAGE "2.5.29.37" 2935 #define szOID_FRESHEST_CRL "2.5.29.46" 2936 #define szOID_DOMAIN_COMPONENT "0.9.2342.19200300.100.1.25" 2937 #define szOID_PKCS_12_FRIENDLY_NAME_ATTR "1.2.840.113549.1.9.20" 2938 #define szOID_PKCS_12_LOCAL_KEY_ID "1.2.840.113549.1.9.21" 2939 #define szOID_CERT_EXTENSIONS "1.3.6.1.4.1.311.2.1.14" 2940 #define szOID_NEXT_UPDATE_LOCATION "1.3.6.1.4.1.311.10.2" 2941 #define szOID_KP_CTL_USAGE_SIGNING "1.3.6.1.4.1.311.10.3.1" 2942 #define szOID_KP_TIME_STAMP_SIGNING "1.3.6.1.4.1.311.10.3.2" 2943 #ifndef szOID_SERVER_GATED_CRYPTO 2944 #define szOID_SERVER_GATED_CRYPTO "1.3.6.1.4.1.311.10.3.3" 2945 #endif 2946 #ifndef szOID_SGC_NETSCAPE 2947 #define szOID_SGC_NETSCAPE "2.16.840.1.113730.4.1" 2948 #endif 2949 #define szOID_KP_EFS "1.3.6.1.4.1.311.10.3.4" 2950 #define szOID_EFS_RECOVERY "1.3.6.1.4.1.311.10.3.4.1" 2951 #define szOID_WHQL_CRYPTO "1.3.6.1.4.1.311.10.3.5" 2952 #define szOID_NT5_CRYPTO "1.3.6.1.4.1.311.10.3.6" 2953 #define szOID_OEM_WHQL_CRYPTO "1.3.6.1.4.1.311.10.3.7" 2954 #define szOID_EMBEDDED_NT_CRYPTO "1.3.6.1.4.1.311.10.3.8" 2955 #define szOID_ROOT_LIST_SIGNER "1.3.6.1.4.1.311.10.3.9" 2956 #define szOID_KP_QUALIFIED_SUBORDINATION "1.3.6.1.4.1.311.10.3.10" 2957 #define szOID_KP_KEY_RECOVERY "1.3.6.1.4.1.311.10.3.11" 2958 #define szOID_KP_DOCUMENT_SIGNING "1.3.6.1.4.1.311.10.3.12" 2959 #define szOID_KP_LIFETIME_SIGNING "1.3.6.1.4.1.311.10.3.13" 2960 #define szOID_KP_MOBILE_DEVICE_SOFTWARE "1.3.6.1.4.1.311.10.3.14" 2961 #define szOID_YESNO_TRUST_ATTR "1.3.6.1.4.1.311.10.4.1" 2962 #ifndef szOID_DRM 2963 #define szOID_DRM "1.3.6.1.4.1.311.10.5.1" 2964 #endif 2965 #ifndef szOID_DRM_INDIVIDUALIZATION 2966 #define szOID_DRM_INDIVIDUALIZATION "1.3.6.1.4.1.311.10.5.2" 2967 #endif 2968 #ifndef szOID_LICENSES 2969 #define szOID_LICENSES "1.3.6.1.4.1.311.10.6.1" 2970 #endif 2971 #ifndef szOID_LICENSE_SERVER 2972 #define szOID_LICENSE_SERVER "1.3.6.1.4.1.311.10.6.2" 2973 #endif 2974 #define szOID_REMOVE_CERTIFICATE "1.3.6.1.4.1.311.10.8.1" 2975 #define szOID_CROSS_CERT_DIST_POINTS "1.3.6.1.4.1.311.10.9.1" 2976 #define szOID_CTL "1.3.6.1.4.1.311.10.1" 2977 #define szOID_SORTED_CTL "1.3.6.1.4.1.311.10.1.1" 2978 #define szOID_ANY_APPLICATION_POLICY "1.3.6.1.4.1.311.10.12.1" 2979 #define szOID_RENEWAL_CERTIFICATE "1.3.6.1.4.1.311.13.1" 2980 #define szOID_ENROLLMENT_NAME_VALUE_PAIR "1.3.6.1.4.1.311.13.2.1" 2981 #define szOID_ENROLLMENT_CSP_PROVIDER "1.3.6.1.4.1.311.13.2.2" 2982 #define szOID_OS_VERSION "1.3.6.1.4.1.311.13.2.3" 2983 #define szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR "1.3.6.1.4.1.311.17.1" 2984 #define szOID_LOCAL_MACHINE_KEYSET "1.3.6.1.4.1.311.17.2" 2985 #define szOID_AUTO_ENROLL_CTL_USAGE "1.3.6.1.4.1.311.20.1" 2986 #define szOID_ENROLL_CERTTYPE_EXTENSION "1.3.6.1.4.1.311.20.2" 2987 #define szOID_ENROLLMENT_AGENT "1.3.6.1.4.1.311.20.2.1" 2988 #define szOID_KP_SMARTCARD_LOGON "1.3.6.1.4.1.311.20.2.2" 2989 #define szOID_CERT_MANIFOLD "1.3.6.1.4.1.311.20.3" 2990 #ifndef szOID_CERTSRV_CA_VERSION 2991 #define szOID_CERTSRV_CA_VERSION "1.3.6.1.4.1.311.21.1" 2992 #endif 2993 #define szOID_CERTSRV_PREVIOUS_CERT_HASH "1.3.6.1.4.1.311.21.2" 2994 #define szOID_CRL_VIRTUAL_BASE "1.3.6.1.4.1.311.21.3" 2995 #define szOID_CRL_NEXT_PUBLISH "1.3.6.1.4.1.311.21.4" 2996 #define szOID_KP_CA_EXCHANGE "1.3.6.1.4.1.311.21.5" 2997 #define szOID_KP_KEY_RECOVERY_AGENT "1.3.6.1.4.1.311.21.6" 2998 #define szOID_CERTIFICATE_TEMPLATE "1.3.6.1.4.1.311.21.7" 2999 #define szOID_ENTERPRISE_OID_ROOT "1.3.6.1.4.1.311.21.8" 3000 #define szOID_RDN_DUMMY_SIGNER "1.3.6.1.4.1.311.21.9" 3001 #define szOID_APPLICATION_CERT_POLICIES "1.3.6.1.4.1.311.21.10" 3002 #define szOID_APPLICATION_POLICY_MAPPINGS "1.3.6.1.4.1.311.21.11" 3003 #define szOID_APPLICATION_POLICY_CONSTRAINTS "1.3.6.1.4.1.311.21.12" 3004 #define szOID_ARCHIVED_KEY_ATTR "1.3.6.1.4.1.311.21.13" 3005 #define szOID_CRL_SELF_CDP "1.3.6.1.4.1.311.21.14" 3006 #define szOID_REQUIRE_CERT_CHAIN_POLICY "1.3.6.1.4.1.311.21.15" 3007 #define szOID_ARCHIVED_KEY_CERT_HASH "1.3.6.1.4.1.311.21.16" 3008 #define szOID_ISSUED_CERT_HASH "1.3.6.1.4.1.311.21.17" 3009 #define szOID_DS_EMAIL_REPLICATION "1.3.6.1.4.1.311.21.19" 3010 #define szOID_REQUEST_CLIENT_INFO "1.3.6.1.4.1.311.21.20" 3011 #define szOID_ENCRYPTED_KEY_HASH "1.3.6.1.4.1.311.21.21" 3012 #define szOID_CERTSRV_CROSSCA_VERSION "1.3.6.1.4.1.311.21.22" 3013 #define szOID_KEYID_RDN "1.3.6.1.4.1.311.10.7.1" 3014 #define szOID_PKIX "1.3.6.1.5.5.7" 3015 #define szOID_PKIX_PE "1.3.6.1.5.5.7.1" 3016 #define szOID_AUTHORITY_INFO_ACCESS "1.3.6.1.5.5.7.1.1" 3017 #define szOID_PKIX_POLICY_QUALIFIER_CPS "1.3.6.1.5.5.7.2.1" 3018 #define szOID_PKIX_POLICY_QUALIFIER_USERNOTICE "1.3.6.1.5.5.7.2.2" 3019 #define szOID_PKIX_KP "1.3.6.1.5.5.7.3" 3020 #define szOID_PKIX_KP_SERVER_AUTH "1.3.6.1.5.5.7.3.1" 3021 #define szOID_PKIX_KP_CLIENT_AUTH "1.3.6.1.5.5.7.3.2" 3022 #define szOID_PKIX_KP_CODE_SIGNING "1.3.6.1.5.5.7.3.3" 3023 #define szOID_PKIX_KP_EMAIL_PROTECTION "1.3.6.1.5.5.7.3.4" 3024 #define szOID_PKIX_KP_IPSEC_END_SYSTEM "1.3.6.1.5.5.7.3.5" 3025 #define szOID_PKIX_KP_IPSEC_TUNNEL "1.3.6.1.5.5.7.3.6" 3026 #define szOID_PKIX_KP_IPSEC_USER "1.3.6.1.5.5.7.3.7" 3027 #define szOID_PKIX_KP_TIMESTAMP_SIGNING "1.3.6.1.5.5.7.3.8" 3028 #define szOID_PKIX_NO_SIGNATURE "1.3.6.1.5.5.7.6.2" 3029 #define szOID_CMC "1.3.6.1.5.5.7.7" 3030 #define szOID_CMC_STATUS_INFO "1.3.6.1.5.5.7.7.1" 3031 #define szOID_CMC_IDENTIFICATION "1.3.6.1.5.5.7.7.2" 3032 #define szOID_CMC_IDENTITY_PROOF "1.3.6.1.5.5.7.7.3" 3033 #define szOID_CMC_DATA_RETURN "1.3.6.1.5.5.7.7.4" 3034 #define szOID_CMC_TRANSACTION_ID "1.3.6.1.5.5.7.7.5" 3035 #define szOID_CMC_SENDER_NONCE "1.3.6.1.5.5.7.7.6" 3036 #define szOID_CMC_RECIPIENT_NONCE "1.3.6.1.5.5.7.7.7" 3037 #define szOID_CMC_ADD_EXTENSIONS "1.3.6.1.5.5.7.7.8" 3038 #define szOID_CMC_ENCRYPTED_POP "1.3.6.1.5.5.7.7.9" 3039 #define szOID_CMC_DECRYPTED_POP "1.3.6.1.5.5.7.7.10" 3040 #define szOID_CMC_LRA_POP_WITNESS "1.3.6.1.5.5.7.7.11" 3041 #define szOID_CMC_GET_CERT "1.3.6.1.5.5.7.7.15" 3042 #define szOID_CMC_GET_CRL "1.3.6.1.5.5.7.7.16" 3043 #define szOID_CMC_REVOKE_REQUEST "1.3.6.1.5.5.7.7.17" 3044 #define szOID_CMC_REG_INFO "1.3.6.1.5.5.7.7.18" 3045 #define szOID_CMC_RESPONSE_INFO "1.3.6.1.5.5.7.7.19" 3046 #define szOID_CMC_QUERY_PENDING "1.3.6.1.5.5.7.7.21" 3047 #define szOID_CMC_ID_POP_LINK_RANDOM "1.3.6.1.5.5.7.7.22" 3048 #define szOID_CMC_ID_POP_LINK_WITNESS "1.3.6.1.5.5.7.7.23" 3049 #define szOID_CT_PKI_DATA "1.3.6.1.5.5.7.12.2" 3050 #define szOID_CT_PKI_RESPONSE "1.3.6.1.5.5.7.12.3" 3051 #define szOID_PKIX_ACC_DESCR "1.3.6.1.5.5.7.48" 3052 #define szOID_PKIX_OCSP "1.3.6.1.5.5.7.48.1" 3053 #define szOID_PKIX_CA_ISSUERS "1.3.6.1.5.5.7.48.2" 3054 #define szOID_IPSEC_KP_IKE_INTERMEDIATE "1.3.6.1.5.5.8.2.2" 3055 3056 #ifndef szOID_SERIALIZED 3057 #define szOID_SERIALIZED "1.3.6.1.4.1.311.10.3.3.1" 3058 #endif 3059 3060 #define szOID_AUTO_ENROLL_CTL_USAGE "1.3.6.1.4.1.311.20.1" 3061 #define szOID_ENROLL_CERTTYPE_EXTENSION "1.3.6.1.4.1.311.20.2" 3062 #define szOID_ENROLLMENT_AGENT "1.3.6.1.4.1.311.20.2.1" 3063 #ifndef szOID_KP_SMARTCARD_LOGON 3064 #define szOID_KP_SMARTCARD_LOGON "1.3.6.1.4.1.311.20.2.2" 3065 #endif 3066 #ifndef szOID_NT_PRINCIPAL_NAME 3067 #define szOID_NT_PRINCIPAL_NAME "1.3.6.1.4.1.311.20.2.3" 3068 #endif 3069 #define szOID_CERT_MANIFOLD "1.3.6.1.4.1.311.20.3" 3070 3071 #ifndef szOID_CERTSRV_CA_VERSION 3072 #define szOID_CERTSRV_CA_VERSION "1.3.6.1.4.1.311.21.1" 3073 #endif 3074 3075 #ifndef szOID_PRODUCT_UPDATE 3076 #define szOID_PRODUCT_UPDATE "1.3.6.1.4.1.311.31.1" 3077 #endif 3078 3079 #define szOID_NETSCAPE "2.16.840.1.113730" 3080 #define szOID_NETSCAPE_CERT_EXTENSION "2.16.840.1.113730.1" 3081 #define szOID_NETSCAPE_CERT_TYPE "2.16.840.1.113730.1.1" 3082 #define szOID_NETSCAPE_BASE_URL "2.16.840.1.113730.1.2" 3083 #define szOID_NETSCAPE_REVOCATION_URL "2.16.840.1.113730.1.3" 3084 #define szOID_NETSCAPE_CA_REVOCATION_URL "2.16.840.1.113730.1.4" 3085 #define szOID_NETSCAPE_CERT_RENEWAL_URL "2.16.840.1.113730.1.7" 3086 #define szOID_NETSCAPE_CA_POLICY_URL "2.16.840.1.113730.1.8" 3087 #define szOID_NETSCAPE_SSL_SERVER_NAME "2.16.840.1.113730.1.12" 3088 #define szOID_NETSCAPE_COMMENT "2.16.840.1.113730.1.13" 3089 #define szOID_NETSCAPE_DATA_TYPE "2.16.840.1.113730.2" 3090 #define szOID_NETSCAPE_CERT_SEQUENCE "2.16.840.1.113730.2.5" 3091 3092 /* Bits for szOID_NETSCAPE_CERT_TYPE */ 3093 #define NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE 0x80 3094 #define NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE 0x40 3095 #define NETSCAPE_SMIME_CERT_TYPE 0x20 3096 #define NETSCAPE_SIGN_CERT_TYPE 0x10 3097 #define NETSCAPE_SSL_CA_CERT_TYPE 0x04 3098 #define NETSCAPE_SMIME_CA_CERT_TYPE 0x02 3099 #define NETSCAPE_SIGN_CA_CERT_TYPE 0x01 3100 3101 #define CRYPT_ENCODE_DECODE_NONE 0 3102 #define X509_CERT ((LPCSTR)1) 3103 #define X509_CERT_TO_BE_SIGNED ((LPCSTR)2) 3104 #define X509_CERT_CRL_TO_BE_SIGNED ((LPCSTR)3) 3105 #define X509_CERT_REQUEST_TO_BE_SIGNED ((LPCSTR)4) 3106 #define X509_EXTENSIONS ((LPCSTR)5) 3107 #define X509_NAME_VALUE ((LPCSTR)6) 3108 #define X509_ANY_STRING X509_NAME_VALUE 3109 #define X509_NAME ((LPCSTR)7) 3110 #define X509_PUBLIC_KEY_INFO ((LPCSTR)8) 3111 #define X509_AUTHORITY_KEY_ID ((LPCSTR)9) 3112 #define X509_KEY_ATTRIBUTES ((LPCSTR)10) 3113 #define X509_KEY_USAGE_RESTRICTION ((LPCSTR)11) 3114 #define X509_ALTERNATE_NAME ((LPCSTR)12) 3115 #define X509_BASIC_CONSTRAINTS ((LPCSTR)13) 3116 #define X509_KEY_USAGE ((LPCSTR)14) 3117 #define X509_BASIC_CONSTRAINTS2 ((LPCSTR)15) 3118 #define X509_CERT_POLICIES ((LPCSTR)16) 3119 #define PKCS_UTC_TIME ((LPCSTR)17) 3120 #define PKCS_TIME_REQUEST ((LPCSTR)18) 3121 #define RSA_CSP_PUBLICKEYBLOB ((LPCSTR)19) 3122 #define X509_UNICODE_NAME ((LPCSTR)20) 3123 #define X509_KEYGEN_REQUEST_TO_BE_SIGNED ((LPCSTR)21) 3124 #define PKCS_ATTRIBUTE ((LPCSTR)22) 3125 #define PKCS_CONTENT_INFO_SEQUENCE_OF_ANY ((LPCSTR)23) 3126 #define X509_UNICODE_NAME_VALUE ((LPCSTR)24) 3127 #define X509_UNICODE_ANY_STRING X509_UNICODE_NAME_VALUE 3128 #define X509_OCTET_STRING ((LPCSTR)25) 3129 #define X509_BITS ((LPCSTR)26) 3130 #define X509_INTEGER ((LPCSTR)27) 3131 #define X509_MULTI_BYTE_INTEGER ((LPCSTR)28) 3132 #define X509_ENUMERATED ((LPCSTR)29) 3133 #define X509_CRL_REASON_CODE X509_ENUMERATED 3134 #define X509_CHOICE_OF_TIME ((LPCSTR)30) 3135 #define X509_AUTHORITY_KEY_ID2 ((LPCSTR)31) 3136 #define X509_AUTHORITY_INFO_ACCESS ((LPCSTR)32) 3137 #define PKCS_CONTENT_INFO ((LPCSTR)33) 3138 #define X509_SEQUENCE_OF_ANY ((LPCSTR)34) 3139 #define X509_CRL_DIST_POINTS ((LPCSTR)35) 3140 #define X509_ENHANCED_KEY_USAGE ((LPCSTR)36) 3141 #define PKCS_CTL ((LPCSTR)37) 3142 #define X509_MULTI_BYTE_UINT ((LPCSTR)38) 3143 #define X509_DSS_PUBLICKEY X509_MULTI_BYTE_UINT 3144 #define X509_DSS_PARAMETERS ((LPCSTR)39) 3145 #define X509_DSS_SIGNATURE ((LPCSTR)40) 3146 #define PKCS_RC2_CBC_PARAMETERS ((LPCSTR)41) 3147 #define PKCS_SMIME_CAPABILITIES ((LPCSTR)42) 3148 #define PKCS_RSA_PRIVATE_KEY ((LPCSTR)43) 3149 #define PKCS_PRIVATE_KEY_INFO ((LPCSTR)44) 3150 #define PKCS_ENCRYPTED_PRIVATE_KEY_INFO ((LPCSTR)45) 3151 #define X509_PKIX_POLICY_QUALIFIER_USERNOTICE ((LPCSTR)46) 3152 #define X509_DH_PUBLICKEY X509_MULTI_BYTE_UINT 3153 #define X509_DH_PARAMETERS ((LPCSTR)47) 3154 #define PKCS_ATTRIBUTES ((LPCSTR)48) 3155 #define PKCS_SORTED_CTL ((LPCSTR)49) 3156 #define X942_DH_PARAMETERS ((LPCSTR)50) 3157 #define X509_BITS_WITHOUT_TRAILING_ZEROES ((LPCSTR)51) 3158 #define X942_OTHER_INFO ((LPCSTR)52) 3159 #define X509_CERT_PAIR ((LPCSTR)53) 3160 #define X509_ISSUING_DIST_POINT ((LPCSTR)54) 3161 #define X509_NAME_CONSTRAINTS ((LPCSTR)55) 3162 #define X509_POLICY_MAPPINGS ((LPCSTR)56) 3163 #define X509_POLICY_CONSTRAINTS ((LPCSTR)57) 3164 #define X509_CROSS_CERT_DIST_POINTS ((LPCSTR)58) 3165 #define CMC_DATA ((LPCSTR)59) 3166 #define CMC_RESPONSE ((LPCSTR)60) 3167 #define CMC_STATUS ((LPCSTR)61) 3168 #define CMC_ADD_EXTENSIONS ((LPCSTR)62) 3169 #define CMC_ADD_ATTRIBUTES ((LPCSTR)63) 3170 #define X509_CERTIFICATE_TEMPLATE ((LPCSTR)64) 3171 #define PKCS7_SIGNER_INFO ((LPCSTR)500) 3172 #define CMS_SIGNER_INFO ((LPCSTR)501) 3173 3174 /* encode/decode flags */ 3175 #define CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG 0x00008 3176 #define CRYPT_ENCODE_ALLOC_FLAG 0x08000 3177 #define CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG 0x10000 3178 #define CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG \ 3179 CERT_RDN_ENABLE_T61_UNICODE_FLAG 3180 #define CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG \ 3181 CERT_RDN_ENABLE_UTF8_UNICODE_FLAG 3182 #define CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG \ 3183 CERT_RDN_DISABLE_CHECK_TYPE_FLAG 3184 3185 #define CRYPT_DECODE_NOCOPY_FLAG 0x00001 3186 #define CRYPT_DECODE_TO_BE_SIGNED_FLAG 0x00002 3187 #define CRYPT_DECODE_SHARE_OID_STRING_FLAG 0x00004 3188 #define CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG 0x00008 3189 #define CRYPT_DECODE_ALLOC_FLAG 0x08000 3190 #define CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG \ 3191 CERT_RDN_DISABLE_IE4_UTF8_FLAG 3192 3193 #define CERT_STORE_SIGNATURE_FLAG 0x00000001 3194 #define CERT_STORE_TIME_VALIDITY_FLAG 0x00000002 3195 #define CERT_STORE_REVOCATION_FLAG 0x00000004 3196 #define CERT_STORE_NO_CRL_FLAG 0x00010000 3197 #define CERT_STORE_NO_ISSUER_FLAG 0x00020000 3198 3199 #define CERT_STORE_BASE_CRL_FLAG 0x00000100 3200 #define CERT_STORE_DELTA_CRL_FLAG 0x00000200 3201 3202 /* subject types for CryptVerifyCertificateSignatureEx */ 3203 #define CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB 1 3204 #define CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT 2 3205 #define CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL 3 3206 3207 /* issuer types for CryptVerifyCertificateSignatureEx */ 3208 #define CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY 1 3209 #define CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT 2 3210 #define CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN 3 3211 #define CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL 4 3212 3213 #define CRYPT_GET_URL_FROM_PROPERTY 0x00000001 3214 #define CRYPT_GET_URL_FROM_EXTENSION 0x00000002 3215 #define CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE 0x00000004 3216 #define CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE 0x00000008 3217 3218 /* Certificate name string types and flags */ 3219 #define CERT_SIMPLE_NAME_STR 1 3220 #define CERT_OID_NAME_STR 2 3221 #define CERT_X500_NAME_STR 3 3222 #define CERT_NAME_STR_SEMICOLON_FLAG 0x40000000 3223 #define CERT_NAME_STR_NO_PLUS_FLAG 0x20000000 3224 #define CERT_NAME_STR_NO_QUOTING_FLAG 0x10000000 3225 #define CERT_NAME_STR_CRLF_FLAG 0x08000000 3226 #define CERT_NAME_STR_COMMA_FLAG 0x04000000 3227 #define CERT_NAME_STR_REVERSE_FLAG 0x02000000 3228 #define CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG 0x00040000 3229 #define CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG 0x00020000 3230 #define CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG 0x00010000 3231 3232 #define CERT_NAME_EMAIL_TYPE 1 3233 #define CERT_NAME_RDN_TYPE 2 3234 #define CERT_NAME_ATTR_TYPE 3 3235 #define CERT_NAME_SIMPLE_DISPLAY_TYPE 4 3236 #define CERT_NAME_FRIENDLY_DISPLAY_TYPE 5 3237 #define CERT_NAME_DNS_TYPE 6 3238 #define CERT_NAME_URL_TYPE 7 3239 #define CERT_NAME_UPN_TYPE 8 3240 3241 #define CERT_NAME_ISSUER_FLAG 0x00000001 3242 #define CERT_NAME_DISABLE_IE4_UTF8_FLAG 0x00010000 3243 3244 /* CryptFormatObject flags */ 3245 #define CRYPT_FORMAT_STR_MULTI_LINE 0x0001 3246 #define CRYPT_FORMAT_STR_NO_HEX 0x0010 3247 3248 #define CRYPT_FORMAT_SIMPLE 0x0001 3249 #define CRYPT_FORMAT_X509 0x0002 3250 #define CRYPT_FORMAT_OID 0x0004 3251 #define CRYPT_FORMAT_RDN_SEMICOLON 0x0100 3252 #define CRYPT_FORMAT_RDN_CRLF 0x0200 3253 #define CRYPT_FORMAT_RDN_UNQUOTE 0x0400 3254 #define CRYPT_FORMAT_RDN_REVERSE 0x0800 3255 3256 #define CRYPT_FORMAT_COMMA 0x1000 3257 #define CRYPT_FORMAT_SEMICOLON CRYPT_FORMAT_RDN_SEMICOLON 3258 #define CRYPT_FORMAT_CRLF CRYPT_FORMAT_RDN_CRLF 3259 3260 /* CryptQueryObject types and flags */ 3261 #define CERT_QUERY_OBJECT_FILE 1 3262 #define CERT_QUERY_OBJECT_BLOB 2 3263 3264 #define CERT_QUERY_CONTENT_CERT 1 3265 #define CERT_QUERY_CONTENT_CTL 2 3266 #define CERT_QUERY_CONTENT_CRL 3 3267 #define CERT_QUERY_CONTENT_SERIALIZED_STORE 4 3268 #define CERT_QUERY_CONTENT_SERIALIZED_CERT 5 3269 #define CERT_QUERY_CONTENT_SERIALIZED_CTL 6 3270 #define CERT_QUERY_CONTENT_SERIALIZED_CRL 7 3271 #define CERT_QUERY_CONTENT_PKCS7_SIGNED 8 3272 #define CERT_QUERY_CONTENT_PKCS7_UNSIGNED 9 3273 #define CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED 10 3274 #define CERT_QUERY_CONTENT_PKCS10 11 3275 #define CERT_QUERY_CONTENT_PFX 12 3276 #define CERT_QUERY_CONTENT_CERT_PAIR 13 3277 3278 #define CERT_QUERY_CONTENT_FLAG_CERT (1 << CERT_QUERY_CONTENT_CERT) 3279 #define CERT_QUERY_CONTENT_FLAG_CTL (1 << CERT_QUERY_CONTENT_CTL) 3280 #define CERT_QUERY_CONTENT_FLAG_CRL (1 << CERT_QUERY_CONTENT_CRL) 3281 #define CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE \ 3282 (1 << CERT_QUERY_CONTENT_SERIALIZED_STORE) 3283 #define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT \ 3284 (1 << CERT_QUERY_CONTENT_SERIALIZED_CERT) 3285 #define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL \ 3286 (1 << CERT_QUERY_CONTENT_SERIALIZED_CTL) 3287 #define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL \ 3288 (1 << CERT_QUERY_CONTENT_SERIALIZED_CRL) 3289 #define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED \ 3290 (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED) 3291 #define CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED \ 3292 (1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED) 3293 #define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED \ 3294 (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED) 3295 #define CERT_QUERY_CONTENT_FLAG_PKCS10 (1 << CERT_QUERY_CONTENT_PKCS10) 3296 #define CERT_QUERY_CONTENT_FLAG_PFX (1 << CERT_QUERY_CONTENT_PFX) 3297 #define CERT_QUERY_CONTENT_FLAG_CERT_PAIR (1 << CERT_QUERY_CONTENT_CERT_PAIR) 3298 3299 #define CERT_QUERY_CONTENT_FLAG_ALL \ 3300 CERT_QUERY_CONTENT_FLAG_CERT | \ 3301 CERT_QUERY_CONTENT_FLAG_CTL | \ 3302 CERT_QUERY_CONTENT_FLAG_CRL | \ 3303 CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | \ 3304 CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | \ 3305 CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | \ 3306 CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | \ 3307 CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | \ 3308 CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | \ 3309 CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | \ 3310 CERT_QUERY_CONTENT_FLAG_PKCS10 | \ 3311 CERT_QUERY_CONTENT_FLAG_PFX | \ 3312 CERT_QUERY_CONTENT_FLAG_CERT_PAIR 3313 3314 #define CERT_QUERY_FORMAT_BINARY 1 3315 #define CERT_QUERY_FORMAT_BASE64_ENCODED 2 3316 #define CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED 3 3317 3318 #define CERT_QUERY_FORMAT_FLAG_BINARY (1 << CERT_QUERY_FORMAT_BINARY) 3319 #define CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED \ 3320 (1 << CERT_QUERY_FORMAT_BASE64_ENCODED) 3321 #define CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED \ 3322 (1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED) 3323 3324 #define CERT_QUERY_FORMAT_FLAG_ALL \ 3325 CERT_QUERY_FORMAT_FLAG_BINARY | \ 3326 CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | \ 3327 CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED \ 3328 3329 #define CERT_SET_KEY_PROV_HANDLE_PROP_ID 0x00000001 3330 #define CERT_SET_KEY_CONTEXT_PROP_ID 0x00000001 3331 3332 #define CERT_CREATE_SELFSIGN_NO_SIGN 1 3333 #define CERT_CREATE_SELFSIGN_NO_KEY_INFO 2 3334 3335 /* flags for CryptAcquireCertificatePrivateKey */ 3336 #define CRYPT_ACQUIRE_CACHE_FLAG 0x00000001 3337 #define CRYPT_ACQUIRE_USE_PROV_INFO_FLAG 0x00000002 3338 #define CRYPT_ACQUIRE_COMPARE_KEY_FLAG 0x00000004 3339 #define CRYPT_ACQUIRE_SILENT_FLAG 0x00000040 3340 3341 /* Chain engines and chains */ 3342 typedef HANDLE HCERTCHAINENGINE; 3343 #define HCCE_CURRENT_USER ((HCERTCHAINENGINE)NULL) 3344 #define HCCE_LOCAL_MACHINE ((HCERTCHAINENGINE)1) 3345 3346 #define CERT_CHAIN_CACHE_END_CERT 0x00000001 3347 #define CERT_CHAIN_THREAD_STORE_SYNC 0x00000002 3348 #define CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL 0x00000004 3349 #define CERT_CHAIN_USE_LOCAL_MACHINE_STORE 0x00000008 3350 #define CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE 0x00000010 3351 #define CERT_CHAIN_ENABLE_SHARE_STORE 0x00000020 3352 3353 typedef struct _CERT_CHAIN_ENGINE_CONFIG 3354 { 3355 DWORD cbSize; 3356 HCERTSTORE hRestrictedRoot; 3357 HCERTSTORE hRestrictedTrust; 3358 HCERTSTORE hRestrictedOther; 3359 DWORD cAdditionalStore; 3360 HCERTSTORE *rghAdditionalStore; 3361 DWORD dwFlags; 3362 DWORD dwUrlRetrievalTimeout; 3363 DWORD MaximumCachedCertificates; 3364 DWORD CycleDetectionModulus; 3365 } CERT_CHAIN_ENGINE_CONFIG, *PCERT_CHAIN_ENGINE_CONFIG; 3366 3367 /* message-related definitions */ 3368 3369 typedef BOOL (*WINAPI PFN_CMSG_STREAM_OUTPUT)(const void *pvArg, BYTE *pbData, 3370 DWORD cbData, BOOL fFinal); 3371 3372 #define CMSG_INDEFINITE_LENGTH 0xffffffff 3373 3374 typedef struct _CMSG_STREAM_INFO 3375 { 3376 DWORD cbContent; 3377 PFN_CMSG_STREAM_OUTPUT pfnStreamOutput; 3378 void *pvArg; 3379 } CMSG_STREAM_INFO, *PCMSG_STREAM_INFO; 3380 3381 typedef struct _CERT_ISSUER_SERIAL_NUMBER 3382 { 3383 CERT_NAME_BLOB Issuer; 3384 CRYPT_INTEGER_BLOB SerialNumber; 3385 } CERT_ISSUER_SERIAL_NUMBER, *PCERT_ISSUER_SERIAL_NUMBER; 3386 3387 typedef struct _CERT_ID 3388 { 3389 DWORD dwIdChoice; 3390 union { 3391 CERT_ISSUER_SERIAL_NUMBER IssuerSerialNumber; 3392 CRYPT_HASH_BLOB KeyId; 3393 CRYPT_HASH_BLOB HashId; 3394 } DUMMYUNIONNAME; 3395 } CERT_ID, *PCERT_ID; 3396 3397 #define CERT_ID_ISSUER_SERIAL_NUMBER 1 3398 #define CERT_ID_KEY_IDENTIFIER 2 3399 #define CERT_ID_SHA1_HASH 3 3400 3401 #undef CMSG_DATA /* may be defined by sys/socket.h */ 3402 #define CMSG_DATA 1 3403 #define CMSG_SIGNED 2 3404 #define CMSG_ENVELOPED 3 3405 #define CMSG_SIGNED_AND_ENVELOPED 4 3406 #define CMSG_HASHED 5 3407 #define CMSG_ENCRYPTED 6 3408 3409 #define CMSG_ALL_FLAGS ~0U 3410 #define CMSG_DATA_FLAG (1 << CMSG_DATA) 3411 #define CMSG_SIGNED_FLAG (1 << CMSG_SIGNED) 3412 #define CMSG_ENVELOPED_FLAG (1 << CMSG_ENVELOPED) 3413 #define CMSG_SIGNED_AND_ENVELOPED_FLAG (1 << CMSG_SIGNED_AND_ENVELOPED) 3414 #define CMSG_ENCRYPTED_FLAG (1 << CMSG_ENCRYPTED) 3415 3416 typedef struct _CMSG_SIGNER_ENCODE_INFO 3417 { 3418 DWORD cbSize; 3419 PCERT_INFO pCertInfo; 3420 HCRYPTPROV hCryptProv; 3421 DWORD dwKeySpec; 3422 CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; 3423 void *pvHashAuxInfo; 3424 DWORD cAuthAttr; 3425 PCRYPT_ATTRIBUTE rgAuthAttr; 3426 DWORD cUnauthAttr; 3427 PCRYPT_ATTRIBUTE rgUnauthAttr; 3428 #ifdef CMSG_SIGNER_ENCODE_INFO_HAS_CMS_FIELDS 3429 CERT_ID SignerId; 3430 CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm; 3431 void *pvHashEncryptionAuxInfo; 3432 #endif 3433 } CMSG_SIGNER_ENCODE_INFO, *PCMSG_SIGNER_ENCODE_INFO; 3434 3435 typedef struct _CMSG_SIGNED_ENCODE_INFO 3436 { 3437 DWORD cbSize; 3438 DWORD cSigners; 3439 PCMSG_SIGNER_ENCODE_INFO rgSigners; 3440 DWORD cCertEncoded; 3441 PCERT_BLOB rgCertEncoded; 3442 DWORD cCrlEncoded; 3443 PCRL_BLOB rgCrlEncoded; 3444 #ifdef CMSG_SIGNED_ENCODE_INFO_HAS_CMS_FIELDS 3445 DWORD cAttrCertEncoded; 3446 PCERT_BLOB rgAttrCertEncoded; 3447 #endif 3448 } CMSG_SIGNED_ENCODE_INFO, *PCMSG_SIGNED_ENCODE_INFO; 3449 3450 typedef struct _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO 3451 { 3452 DWORD cbSize; 3453 CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; 3454 void *pvKeyEncryptionAuxInfo; 3455 HCRYPTPROV_LEGACY hCryptProv; 3456 CRYPT_BIT_BLOB RecipientPublicKey; 3457 CERT_ID RecipientId; 3458 } CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO, *PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO; 3459 3460 typedef struct _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO 3461 { 3462 DWORD cbSize; 3463 CRYPT_BIT_BLOB RecipientPublicKey; 3464 CERT_ID RecipientId; 3465 FILETIME Date; 3466 PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr; 3467 } CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO, 3468 *PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO; 3469 3470 typedef struct _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO 3471 { 3472 DWORD cbSize; 3473 CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; 3474 void *pvKeyEncryptionAuxInfo; 3475 CRYPT_ALGORITHM_IDENTIFIER KeyWrapAlgorithm; 3476 void *pvKeyWrapAuxInfo; 3477 HCRYPTPROV_LEGACY hCryptProv; 3478 DWORD dwKeySpec; 3479 DWORD dwKeyChoice; 3480 union { 3481 PCRYPT_ALGORITHM_IDENTIFIER pEphemeralAlgorithm; 3482 PCERT_ID pSenderId; 3483 } DUMMYUNIONNAME; 3484 CRYPT_DATA_BLOB UserKeyingMaterial; 3485 DWORD cRecipientEncryptedKeys; 3486 PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO *rgpRecipientEncryptedKeys; 3487 } CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, *PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO; 3488 3489 #define CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE 1 3490 #define CMSG_KEY_AGREE_STATIC_KEY_CHOICE 2 3491 3492 typedef struct _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO 3493 { 3494 DWORD cbSize; 3495 CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; 3496 void *pvKeyEncryptionAuxInfo; 3497 HCRYPTPROV hCryptProv; 3498 DWORD dwKeyChoice; 3499 union { 3500 HCRYPTKEY hKeyEncryptionKey; 3501 void *pvKeyEncryptionKey; 3502 } DUMMYUNIONNAME; 3503 CRYPT_DATA_BLOB KeyId; 3504 FILETIME Date; 3505 PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr; 3506 } CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, *PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO; 3507 3508 #define CMSG_MAIL_LIST_HANDLE_KEY_CHOICE 1 3509 3510 typedef struct _CMSG_RECIPIENT_ENCODE_INFO 3511 { 3512 DWORD dwRecipientChoice; 3513 union { 3514 PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTrans; 3515 PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO pKeyAgree; 3516 PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO pMailList; 3517 } DUMMYUNIONNAME; 3518 } CMSG_RECIPIENT_ENCODE_INFO, *PCMSG_RECIPIENT_ENCODE_INFO; 3519 3520 #define CMSG_KEY_TRANS_RECIPIENT 1 3521 #define CMSG_KEY_AGREE_RECIPIENT 2 3522 #define CMSG_MAIL_LIST_RECIPIENT 3 3523 3524 typedef struct _CMSG_ENVELOPED_ENCODE_INFO 3525 { 3526 DWORD cbSize; 3527 HCRYPTPROV_LEGACY hCryptProv; 3528 CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm; 3529 void *pvEncryptionAuxInfo; 3530 DWORD cRecipients; 3531 PCERT_INFO *rgpRecipientCert; 3532 #ifdef CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS 3533 PCMSG_RECIPIENT_ENCODE_INFO rgCmsRecipients; 3534 DWORD cCertEncoded; 3535 PCERT_BLOB rgCertEncoded; 3536 DWORD cCrlEncoded; 3537 PCRL_BLOB rgCrlEncoded; 3538 DWORD cAttrCertEncoded; 3539 PCERT_BLOB rgAttrCertEncoded; 3540 DWORD cUnprotectedAttr; 3541 PCRYPT_ATTRIBUTE rgUnprotectedAttr; 3542 #endif 3543 } CMSG_ENVELOPED_ENCODE_INFO, *PCMSG_ENVELOPED_ENCODE_INFO; 3544 3545 typedef struct _CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO 3546 { 3547 DWORD cbSize; 3548 CMSG_SIGNED_ENCODE_INFO SignedInfo; 3549 CMSG_ENVELOPED_ENCODE_INFO EnvelopedInfo; 3550 } CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO, 3551 *PCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO; 3552 3553 typedef struct _CMSG_HASHED_ENCODE_INFO 3554 { 3555 DWORD cbSize; 3556 HCRYPTPROV_LEGACY hCryptProv; 3557 CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; 3558 void *pvHashAuxInfo; 3559 } CMSG_HASHED_ENCODE_INFO, *PCMSG_HASHED_ENCODE_INFO; 3560 3561 typedef struct _CMSG_ENCRYPTED_ENCODE_INFO 3562 { 3563 DWORD cbSize; 3564 CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm; 3565 void *pvEncryptionAuxInfo; 3566 } CMSG_ENCRYPTED_ENCODE_INFO, *PCMSG_ENCRYPTED_ENCODE_INFO; 3567 3568 #define CMSG_BARE_CONTENT_FLAG 0x00000001 3569 #define CMSG_LENGTH_ONLY_FLAG 0x00000002 3570 #define CMSG_DETACHED_FLAG 0x00000004 3571 #define CMSG_AUTHENTICATED_ATTRIBUTES_FLAG 0x00000008 3572 #define CMSG_CONTENTS_OCTETS_FLAG 0x00000010 3573 #define CMSG_MAX_LENGTH_FLAG 0x00000020 3574 #define CMSG_CMS_ENCAPSULATED_CONTENT_FLAG 0x00000040 3575 #define CMSG_CRYPT_RELEASE_CONTEXT_FLAG 0x00008000 3576 3577 #define CMSG_CTRL_VERIFY_SIGNATURE 1 3578 #define CMSG_CTRL_DECRYPT 2 3579 #define CMSG_CTRL_VERIFY_HASH 5 3580 #define CMSG_CTRL_ADD_SIGNER 6 3581 #define CMSG_CTRL_DEL_SIGNER 7 3582 #define CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR 8 3583 #define CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR 9 3584 #define CMSG_CTRL_ADD_CERT 10 3585 #define CMSG_CTRL_DEL_CERT 11 3586 #define CMSG_CTRL_ADD_CRL 12 3587 #define CMSG_CTRL_DEL_CRL 13 3588 #define CMSG_CTRL_ADD_ATTR_CERT 14 3589 #define CMSG_CTRL_DEL_ATTR_CERT 15 3590 #define CMSG_CTRL_KEY_TRANS_DECRYPT 16 3591 #define CMSG_CTRL_KEY_AGREE_DECRYPT 17 3592 #define CMSG_CTRL_MAIL_LIST_DECRYPT 18 3593 #define CMSG_CTRL_VERIFY_SIGNATURE_EX 19 3594 #define CMSG_CTRL_ADD_CMS_SIGNER_INFO 20 3595 3596 typedef struct _CMSG_CTRL_DECRYPT_PARA 3597 { 3598 DWORD cbSize; 3599 HCRYPTPROV hCryptProv; 3600 DWORD dwKeySpec; 3601 DWORD dwRecipientIndex; 3602 } CMSG_CTRL_DECRYPT_PARA, *PCMSG_CTRL_DECRYPT_PARA; 3603 3604 typedef struct _CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA 3605 { 3606 DWORD cbSize; 3607 DWORD dwSignerIndex; 3608 CRYPT_DATA_BLOB blob; 3609 } CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA, 3610 *PCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA; 3611 3612 typedef struct _CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA 3613 { 3614 DWORD cbSize; 3615 DWORD dwSignerIndex; 3616 DWORD dwUnauthAttrIndex; 3617 } CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA, 3618 *PCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA; 3619 3620 typedef struct _CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA { 3621 DWORD cbSize; 3622 HCRYPTPROV hCryptProv; 3623 DWORD dwSignerIndex; 3624 DWORD dwSignerType; 3625 void *pvSigner; 3626 } CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA, *PCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA; 3627 3628 #define CMSG_VERIFY_SIGNER_PUBKEY 1 3629 #define CMSG_VERIFY_SIGNER_CERT 2 3630 #define CMSG_VERIFY_SIGNER_CHAIN 3 3631 #define CMSG_VERIFY_SIGNER_NULL 4 3632 3633 #define CMSG_TYPE_PARAM 1 3634 #define CMSG_CONTENT_PARAM 2 3635 #define CMSG_BARE_CONTENT_PARAM 3 3636 #define CMSG_INNER_CONTENT_TYPE_PARAM 4 3637 #define CMSG_SIGNER_COUNT_PARAM 5 3638 #define CMSG_SIGNER_INFO_PARAM 6 3639 #define CMSG_SIGNER_CERT_INFO_PARAM 7 3640 #define CMSG_SIGNER_HASH_ALGORITHM_PARAM 8 3641 #define CMSG_SIGNER_AUTH_ATTR_PARAM 9 3642 #define CMSG_SIGNER_UNAUTH_ATTR_PARAM 10 3643 #define CMSG_CERT_COUNT_PARAM 11 3644 #define CMSG_CERT_PARAM 12 3645 #define CMSG_CRL_COUNT_PARAM 13 3646 #define CMSG_CRL_PARAM 14 3647 #define CMSG_ENVELOPE_ALGORITHM_PARAM 15 3648 #define CMSG_RECIPIENT_COUNT_PARAM 17 3649 #define CMSG_RECIPIENT_INDEX_PARAM 18 3650 #define CMSG_RECIPIENT_INFO_PARAM 19 3651 #define CMSG_HASH_ALGORITHM_PARAM 20 3652 #define CMSG_HASH_DATA_PARAM 21 3653 #define CMSG_COMPUTED_HASH_PARAM 22 3654 #define CMSG_ENCRYPT_PARAM 26 3655 #define CMSG_ENCRYPTED_DIGEST 27 3656 #define CMSG_ENCODED_SIGNER 28 3657 #define CMSG_ENCODED_MESSAGE 29 3658 #define CMSG_VERSION_PARAM 30 3659 #define CMSG_ATTR_CERT_COUNT_PARAM 31 3660 #define CMSG_ATTR_CERT_PARAM 32 3661 #define CMSG_CMS_RECIPIENT_COUNT_PARAM 33 3662 #define CMSG_CMS_RECIPIENT_INDEX_PARAM 34 3663 #define CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM 35 3664 #define CMSG_CMS_RECIPIENT_INFO_PARAM 36 3665 #define CMSG_UNPROTECTED_ATTR_PARAM 37 3666 #define CMSG_SIGNER_CERT_ID_PARAM 38 3667 #define CMSG_CMS_SIGNER_INFO_PARAM 39 3668 3669 typedef struct _CMSG_CMS_SIGNER_INFO { 3670 DWORD dwVersion; 3671 CERT_ID SignerId; 3672 CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm; 3673 CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm; 3674 CRYPT_DATA_BLOB EncryptedHash; 3675 CRYPT_ATTRIBUTES AuthAttrs; 3676 CRYPT_ATTRIBUTES UnauthAttrs; 3677 } CMSG_CMS_SIGNER_INFO, *PCMSG_CMS_SIGNER_INFO; 3678 3679 typedef CRYPT_ATTRIBUTES CMSG_ATTR, *PCMSG_ATTR; 3680 3681 #define CMSG_SIGNED_DATA_V1 1 3682 #define CMSG_SIGNED_DATA_V3 3 3683 #define CMSG_SIGNED_DATA_PKCS_1_5_VERSION CMSG_SIGNED_DATA_V1 3684 #define CMSG_SIGNED_DATA_CMS_VERSION CMSG_SIGNED_DATA_V3 3685 3686 #define CMSG_SIGNER_INFO_V1 1 3687 #define CMSG_SIGNER_INFO_V3 3 3688 #define CMSG_SIGNER_INFO_PKCS_1_5_VERSION CMSG_SIGNER_INFO_V1 3689 #define CMSG_SIGNER_INFO_CMS_VERSION CMSG_SIGNER_INFO_V3 3690 3691 #define CMSG_HASHED_DATA_V0 0 3692 #define CMSG_HASHED_DATA_V2 2 3693 #define CMSG_HASHED_DATA_PKCS_1_5_VERSION CMSG_HASHED_DATA_V0 3694 #define CMSG_HASHED_DATA_CMS_VERSION CMSG_HASHED_DATA_V2 3695 3696 #define CMSG_ENVELOPED_DATA_V0 0 3697 #define CMSG_ENVELOPED_DATA_V2 2 3698 #define CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION CMSG_ENVELOPED_DATA_V0 3699 #define CMSG_ENVELOPED_DATA_CMS_VERSION CMSG_ENVELOPED_DATA_V2 3700 3701 typedef struct _CMSG_KEY_TRANS_RECIPIENT_INFO { 3702 DWORD dwVersion; 3703 CERT_ID RecipientId; 3704 CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; 3705 CRYPT_DATA_BLOB EncryptedKey; 3706 } CMSG_KEY_TRANS_RECIPIENT_INFO, *PCMSG_KEY_TRANS_RECIPIENT_INFO; 3707 3708 typedef struct _CMSG_RECIPIENT_ENCRYPTED_KEY_INFO { 3709 CERT_ID RecipientId; 3710 CRYPT_DATA_BLOB EncryptedKey; 3711 PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr; 3712 } CMSG_RECIPIENT_ENCRYPTED_KEY_INFO, *PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO; 3713 3714 typedef struct _CMSG_KEY_AGREE_RECIPIENT_INFO { 3715 DWORD dwVersion; 3716 DWORD dwOriginatorChoice; 3717 union { 3718 CERT_ID OriginatorCertId; 3719 CERT_PUBLIC_KEY_INFO OriginatorPublicKeyInfo; 3720 } DUMMYUNIONNAME; 3721 CRYPT_ALGORITHM_IDENTIFIER UserKeyingMaterial; 3722 DWORD cRecipientEncryptedKeys; 3723 PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO *rgpRecipientEncryptedKeys; 3724 } CMSG_KEY_AGREE_RECIPIENT_INFO, *PCMSG_KEY_AGREE_RECIPIENT_INFO; 3725 3726 #define CMSG_KEY_AGREE_ORIGINATOR_CERT 1 3727 #define CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY 2 3728 3729 typedef struct _CMSG_MAIL_LIST_RECIPIENT_INFO { 3730 DWORD dwVersion; 3731 CRYPT_DATA_BLOB KeyId; 3732 CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm; 3733 CRYPT_DATA_BLOB EncryptedKey; 3734 FILETIME Date; 3735 PCRYPT_ATTRIBUTE_TYPE_VALUE pOtherAttr; 3736 } CMSG_MAIL_LIST_RECIPIENT_INFO, *PCMSG_MAIL_LIST_RECIPIENT_INFO; 3737 3738 typedef struct _CMSG_CMS_RECIPIENT_INFO { 3739 DWORD dwRecipientChoice; 3740 union { 3741 PCMSG_KEY_TRANS_RECIPIENT_INFO pKeyTrans; 3742 PCMSG_KEY_AGREE_RECIPIENT_INFO pKeyAgree; 3743 PCMSG_MAIL_LIST_RECIPIENT_INFO pMailList; 3744 } DUMMYUNIONNAME; 3745 } CMSG_CMS_RECIPIENT_INFO, *PCMSG_CMS_RECIPIENT_INFO; 3746 3747 #define CMSG_ENVELOPED_RECIPIENT_V0 0 3748 #define CMSG_ENVELOPED_RECIPIENT_V2 2 3749 #define CMSG_ENVELOPED_RECIPIENT_V3 3 3750 #define CMSG_ENVELOPED_RECIPIENT_V4 4 3751 #define CMSG_KEY_TRANS_PKCS_1_5_VERSION CMSG_ENVELOPED_RECIPIENT_V0 3752 #define CMSG_KEY_TRANS_CMS_VERSION CMSG_ENVELOPED_RECIPIENT_V2 3753 #define CMSG_KEY_AGREE_VERSION CMSG_ENVELOPED_RECIPIENT_V3 3754 #define CMSG_MAIL_LIST_VERSION CMSG_ENVELOPED_RECIPIENT_V4 3755 3756 /* CryptMsgGetAndVerifySigner flags */ 3757 #define CMSG_TRUSTED_SIGNER_FLAG 0x1 3758 #define CMSG_SIGNER_ONLY_FLAG 0x2 3759 #define CMSG_USE_SIGNER_INDEX_FLAG 0x4 3760 3761 /* CryptMsgSignCTL flags */ 3762 #define CMSG_CMS_ENCAPSULATED_CTL_FLAG 0x00008000 3763 3764 /* CryptMsgEncodeAndSignCTL flags */ 3765 #define CMSG_ENCODED_SORTED_CTL_FLAG 0x1 3766 #define CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG 0x2 198 3767 199 3768 /* function declarations */ 200 201 BOOL WINAPI CryptAcquireContextA(HCRYPTPROV *phProv, LPCSTR pszContainer, 202 LPCSTR pszProvider, DWORD dwProvType, 203 DWORD dwFlags); 204 BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR pszContainer, 205 LPCWSTR pszProvider, DWORD dwProvType, 206 DWORD dwFlags); 207 #define CryptAcquireContext WINELIB_NAME_AW(CryptAcquireContext) 208 209 BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags); 210 BOOL WINAPI CryptGenKey(HCRYPTPROV hProv, ALG_ID Algid, DWORD dwFlags, 211 HCRYPTKEY *phKey); 212 BOOL WINAPI CryptDeriveKey(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTHASH hBaseData, 213 DWORD dwFlags, HCRYPTKEY *phKey); 214 BOOL WINAPI CryptDestroyKey(HCRYPTKEY hKey); 215 BOOL WINAPI CryptSetKeyParam(HCRYPTKEY hKey,DWORD dwParam,BYTE *pbData,DWORD dwFlags); 216 BOOL WINAPI CryptGetKeyParam(HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags); 217 BOOL WINAPI CryptSetHashParam(HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD dwFlags); 218 BOOL WINAPI CryptGetHashParam(HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen,DWORD dwFlags); 219 BOOL WINAPI CryptSetProvParam(HCRYPTPROV hProv, DWORD dwParam, BYTE *pbData,DWORD dwFlags); 220 BOOL WINAPI CryptGetProvParam(HCRYPTPROV hProv, DWORD dwParam, BYTE *pbData,DWORD *pdwDataLen, 221 DWORD dwFlags); 222 BOOL WINAPI CryptGenRandom(HCRYPTPROV hProv, DWORD dwLen, BYTE *pbBuffer); 223 BOOL WINAPI CryptGetUserKey(HCRYPTPROV hProv, DWORD dwKeySpec, HCRYPTKEY *phUserKey); 224 BOOL WINAPI CryptExportKey(HCRYPTKEY hKey,HCRYPTKEY hExpKey, DWORD dwBlobType, DWORD dwFlags, 225 BYTE *pbData, DWORD *pdwDataLen); 226 BOOL WINAPI CryptImportKey(HCRYPTPROV hProv,CONST BYTE *pbData, DWORD dwDataLen, 227 HCRYPTKEY hPubKey, DWORD dwFlags,HCRYPTKEY *phKey); 228 BOOL WINAPI CryptEncrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, 229 DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen, 230 DWORD dwBufLen); 231 BOOL WINAPI CryptDecrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, 232 BYTE *pbData, DWORD *pdwDataLen); 233 BOOL WINAPI CryptCreateHash(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags, 234 HCRYPTHASH *phHash); 235 BOOL WINAPI CryptHashData(HCRYPTHASH hHash, CONST BYTE *pbData, DWORD dwDataLen, 236 DWORD dwFlags); 237 BOOL WINAPI CryptHashSessionKey(HCRYPTHASH hHash, HCRYPTKEY hKey, DWORD dwFlags); 238 BOOL WINAPI CryptDestroyHash(HCRYPTHASH hHash); 239 BOOL WINAPI CryptSignHashA(HCRYPTHASH hHash, DWORD dwKeySpec, LPCSTR sDescription, 240 DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen); 241 BOOL WINAPI CryptSignHashW(HCRYPTHASH hHash, DWORD dwKeySpec, LPCWSTR sDescription, 242 DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen); 243 #define CryptSignHash WINELIB_NAME_AW(CryptSignHash) 244 245 BOOL WINAPI CryptVerifySignatureA(HCRYPTHASH hHash, CONST BYTE *pbSignature, DWORD dwSigLen, 246 HCRYPTKEY hPubKey, LPCSTR sDescription, DWORD dwFlags); 247 BOOL WINAPI CryptVerifySignatureW(HCRYPTHASH hHash, CONST BYTE *pbSignature, DWORD dwSigLen, 248 HCRYPTKEY hPubKey, LPCWSTR sDescription, DWORD dwFlags); 249 #define CryptVerifySignature WINELIB_NAME_AW(CryptVerifySignature) 250 251 BOOL WINAPI CryptSetProviderA(LPCSTR pszProvName, DWORD dwProvType); 252 BOOL WINAPI CryptSetProviderW(LPCWSTR pszProvName, DWORD dwProvType); 253 #define CryptSetProvider WINELIB_NAME_AW(CryptSetProvider) 254 3769 /* advapi32.dll */ 3770 WINADVAPI BOOL WINAPI CryptAcquireContextA(HCRYPTPROV *, LPCSTR, LPCSTR, DWORD, DWORD); 3771 WINADVAPI BOOL WINAPI CryptAcquireContextW (HCRYPTPROV *, LPCWSTR, LPCWSTR, DWORD, DWORD); 3772 #define CryptAcquireContext WINELIB_NAME_AW(CryptAcquireContext) 3773 WINADVAPI BOOL WINAPI CryptGenRandom (HCRYPTPROV, DWORD, BYTE *); 3774 WINADVAPI BOOL WINAPI CryptContextAddRef (HCRYPTPROV, DWORD *, DWORD); 3775 WINADVAPI BOOL WINAPI CryptCreateHash (HCRYPTPROV, ALG_ID, HCRYPTKEY, DWORD, HCRYPTHASH *); 3776 WINADVAPI BOOL WINAPI CryptDecrypt (HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, BYTE *, DWORD *); 3777 WINADVAPI BOOL WINAPI CryptDeriveKey (HCRYPTPROV, ALG_ID, HCRYPTHASH, DWORD, HCRYPTKEY *); 3778 WINADVAPI BOOL WINAPI CryptDestroyHash (HCRYPTHASH); 3779 WINADVAPI BOOL WINAPI CryptDestroyKey (HCRYPTKEY); 3780 WINADVAPI BOOL WINAPI CryptDuplicateKey (HCRYPTKEY, DWORD *, DWORD, HCRYPTKEY *); 3781 WINADVAPI BOOL WINAPI CryptDuplicateHash (HCRYPTHASH, DWORD *, DWORD, HCRYPTHASH *); 3782 WINADVAPI BOOL WINAPI CryptEncrypt (HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, BYTE *, DWORD *, DWORD); 3783 WINADVAPI BOOL WINAPI CryptEnumProvidersA (DWORD, DWORD *, DWORD, DWORD *, LPSTR, DWORD *); 3784 WINADVAPI BOOL WINAPI CryptEnumProvidersW (DWORD, DWORD *, DWORD, DWORD *, LPWSTR, DWORD *); 3785 #define CryptEnumProviders WINELIB_NAME_AW(CryptEnumProviders) 3786 WINADVAPI BOOL WINAPI CryptEnumProviderTypesA (DWORD, DWORD *, DWORD, DWORD *, LPSTR, DWORD *); 3787 WINADVAPI BOOL WINAPI CryptEnumProviderTypesW (DWORD, DWORD *, DWORD, DWORD *, LPWSTR, DWORD *); 3788 #define CryptEnumProviderTypes WINELIB_NAME_AW(CryptEnumProviderTypes) 3789 WINADVAPI BOOL WINAPI CryptExportKey (HCRYPTKEY, HCRYPTKEY, DWORD, DWORD, BYTE *, DWORD *); 3790 WINADVAPI BOOL WINAPI CryptGenKey (HCRYPTPROV, ALG_ID, DWORD, HCRYPTKEY *); 3791 WINADVAPI BOOL WINAPI CryptGetKeyParam (HCRYPTKEY, DWORD, BYTE *, DWORD *, DWORD); 3792 WINADVAPI BOOL WINAPI CryptGetHashParam (HCRYPTHASH, DWORD, BYTE *, DWORD *, DWORD); 3793 WINADVAPI BOOL WINAPI CryptGetProvParam (HCRYPTPROV, DWORD, BYTE *, DWORD *, DWORD); 3794 WINADVAPI BOOL WINAPI CryptGetDefaultProviderA (DWORD, DWORD *, DWORD, LPSTR, DWORD *); 3795 WINADVAPI BOOL WINAPI CryptGetDefaultProviderW (DWORD, DWORD *, DWORD, LPWSTR, DWORD *); 3796 #define CryptGetDefaultProvider WINELIB_NAME_AW(CryptGetDefaultProvider) 3797 WINADVAPI BOOL WINAPI CryptGetUserKey (HCRYPTPROV, DWORD, HCRYPTKEY *); 3798 WINADVAPI BOOL WINAPI CryptHashData (HCRYPTHASH, CONST BYTE *, DWORD, DWORD); 3799 WINADVAPI BOOL WINAPI CryptHashSessionKey (HCRYPTHASH, HCRYPTKEY, DWORD); 3800 WINADVAPI BOOL WINAPI CryptImportKey (HCRYPTPROV, CONST BYTE *, DWORD, HCRYPTKEY, DWORD, HCRYPTKEY *); 3801 WINADVAPI BOOL WINAPI CryptReleaseContext (HCRYPTPROV, ULONG_PTR); 3802 //WINADVAPI BOOL WINAPI CryptSetHashParam (HCRYPTHASH, DWORD, CONST BYTE *, DWORD); 3803 //BOOL WINAPI CryptSetKeyParam (HCRYPTKEY, DWORD, CONST BYTE *, DWORD); 3804 WINADVAPI BOOL WINAPI CryptSetProviderA (LPCSTR, DWORD); 3805 WINADVAPI BOOL WINAPI CryptSetProviderW (LPCWSTR, DWORD); 3806 #define CryptSetProvider WINELIB_NAME_AW(CryptSetProvider) 3807 WINADVAPI BOOL WINAPI CryptSetProviderExA (LPCSTR, DWORD, DWORD *, DWORD); 3808 WINADVAPI BOOL WINAPI CryptSetProviderExW (LPCWSTR, DWORD, DWORD *, DWORD); 3809 #define CryptSetProviderEx WINELIB_NAME_AW(CryptSetProviderEx) 3810 //WINADVAPI BOOL WINAPI CryptSetProvParam (HCRYPTPROV, DWORD, CONST BYTE *, DWORD); 3811 WINADVAPI BOOL WINAPI CryptSignHashA (HCRYPTHASH, DWORD, LPCSTR, DWORD, BYTE *, DWORD *); 3812 WINADVAPI BOOL WINAPI CryptSignHashW (HCRYPTHASH, DWORD, LPCWSTR, DWORD, BYTE *, DWORD *); 3813 #define CryptSignHash WINELIB_NAME_AW(CryptSignHash) 3814 WINADVAPI BOOL WINAPI CryptVerifySignatureA (HCRYPTHASH, CONST BYTE *, DWORD, HCRYPTKEY, LPCSTR, DWORD); 3815 WINADVAPI BOOL WINAPI CryptVerifySignatureW (HCRYPTHASH, CONST BYTE *, DWORD, HCRYPTKEY, LPCWSTR, DWORD); 3816 #define CryptVerifySignature WINELIB_NAME_AW(CryptVerifySignature) 3817 3818 /* crypt32.dll functions */ 3819 LPVOID WINAPI CryptMemAlloc(ULONG cbSize); 3820 LPVOID WINAPI CryptMemRealloc(LPVOID pv, ULONG cbSize); 3821 VOID WINAPI CryptMemFree(LPVOID pv); 3822 3823 BOOL WINAPI CryptBinaryToStringA(const BYTE *pbBinary, 3824 DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString); 3825 BOOL WINAPI CryptBinaryToStringW(const BYTE *pbBinary, 3826 DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString); 3827 #define CryptBinaryToString WINELIB_NAME_AW(CryptBinaryToString) 3828 3829 BOOL WINAPI CryptStringToBinaryA(LPCSTR pszString, 3830 DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary, 3831 DWORD *pdwSkip, DWORD *pdwFlags); 3832 BOOL WINAPI CryptStringToBinaryW(LPCWSTR pszString, 3833 DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary, 3834 DWORD *pdwSkip, DWORD *pdwFlags); 3835 #define CryptStringToBinary WINELIB_NAME_AW(CryptStringToBinary) 3836 3837 BOOL WINAPI CryptCreateAsyncHandle(DWORD dwFlags, PHCRYPTASYNC phAsync); 3838 BOOL WINAPI CryptSetAsyncParam(HCRYPTASYNC hAsync, LPSTR pszParamOid, 3839 LPVOID pvParam, PFN_CRYPT_ASYNC_PARAM_FREE_FUNC pfnFree); 3840 BOOL WINAPI CryptGetAsyncParam(HCRYPTASYNC hAsync, LPSTR pszParamOid, 3841 LPVOID *ppvParam, PFN_CRYPT_ASYNC_PARAM_FREE_FUNC *ppfnFree); 3842 BOOL WINAPI CryptCloseAsyncHandle(HCRYPTASYNC hAsync); 3843 3844 BOOL WINAPI CryptRegisterDefaultOIDFunction(DWORD,LPCSTR,DWORD,LPCWSTR); 3845 BOOL WINAPI CryptRegisterOIDFunction(DWORD,LPCSTR,LPCSTR,LPCWSTR,LPCSTR); 3846 BOOL WINAPI CryptGetOIDFunctionValue(DWORD dwEncodingType, LPCSTR pszFuncName, 3847 LPCSTR pszOID, LPCWSTR szValueName, DWORD *pdwValueType, 3848 BYTE *pbValueData, DWORD *pcbValueData); 3849 BOOL WINAPI CryptSetOIDFunctionValue(DWORD dwEncodingType, LPCSTR pszFuncName, 3850 LPCSTR pszOID, LPCWSTR pwszValueName, DWORD dwValueType, 3851 const BYTE *pbValueData, DWORD cbValueData); 3852 BOOL WINAPI CryptUnregisterDefaultOIDFunction(DWORD,LPCSTR,LPCWSTR); 3853 BOOL WINAPI CryptUnregisterOIDFunction(DWORD,LPCSTR,LPCSTR); 3854 BOOL WINAPI CryptEnumOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName, 3855 LPCSTR pszOID, DWORD dwFlags, void *pvArg, 3856 PFN_CRYPT_ENUM_OID_FUNC pfnEnumOIDFunc); 3857 HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet(LPCSTR,DWORD); 3858 BOOL WINAPI CryptGetDefaultOIDDllList(HCRYPTOIDFUNCSET hFuncSet, 3859 DWORD dwEncodingType, LPWSTR pwszDllList, DWORD *pcchDllList); 3860 BOOL WINAPI CryptGetDefaultOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, 3861 DWORD dwEncodingType, LPCWSTR pwszDll, DWORD dwFlags, void **ppvFuncAddr, 3862 HCRYPTOIDFUNCADDR *phFuncAddr); 3863 BOOL WINAPI CryptGetOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, 3864 DWORD dwEncodingType, LPCSTR pszOID, DWORD dwFlags, void **ppvFuncAddr, 3865 HCRYPTOIDFUNCADDR *phFuncAddr); 3866 BOOL WINAPI CryptFreeOIDFunctionAddress(HCRYPTOIDFUNCADDR hFuncAddr, 3867 DWORD dwFlags); 3868 BOOL WINAPI CryptInstallOIDFunctionAddress(HMODULE hModule, 3869 DWORD dwEncodingType, LPCSTR pszFuncName, DWORD cFuncEntry, 3870 const CRYPT_OID_FUNC_ENTRY rgFuncEntry[], DWORD dwFlags); 3871 BOOL WINAPI CryptInstallDefaultContext(HCRYPTPROV hCryptProv, 3872 DWORD dwDefaultType, const void *pvDefaultPara, DWORD dwFlags, 3873 void *pvReserved, HCRYPTDEFAULTCONTEXT *phDefaultContext); 3874 BOOL WINAPI CryptUninstallDefaultContext(HCRYPTDEFAULTCONTEXT hDefaultContext, 3875 DWORD dwFlags, void *pvReserved); 3876 3877 BOOL WINAPI CryptEnumOIDInfo(DWORD dwGroupId, DWORD dwFlags, void *pvArg, 3878 PFN_CRYPT_ENUM_OID_INFO pfnEnumOIDInfo); 3879 PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey, 3880 DWORD dwGroupId); 3881 BOOL WINAPI CryptRegisterOIDInfo(PCCRYPT_OID_INFO pInfo, DWORD dwFlags); 3882 BOOL WINAPI CryptUnregisterOIDInfo(PCCRYPT_OID_INFO pInfo); 3883 3884 LPCSTR WINAPI CertAlgIdToOID(DWORD dwAlgId); 3885 DWORD WINAPI CertOIDToAlgId(LPCSTR pszObjId); 3886 3887 /* cert store functions */ 3888 HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwEncodingType, 3889 HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara); 3890 3891 HCERTSTORE WINAPI CertOpenSystemStoreA(HCRYPTPROV_LEGACY hProv, 3892 LPCSTR szSubSystemProtocol); 3893 HCERTSTORE WINAPI CertOpenSystemStoreW(HCRYPTPROV_LEGACY hProv, 3894 LPCWSTR szSubSystemProtocol); 3895 #define CertOpenSystemStore WINELIB_NAME_AW(CertOpenSystemStore) 3896 3897 PCCERT_CONTEXT WINAPI CertEnumCertificatesInStore(HCERTSTORE hCertStore, 3898 PCCERT_CONTEXT pPrev); 3899 3900 PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(HCERTSTORE hCertStore, 3901 PCCRL_CONTEXT pPrev); 3902 3903 PCCTL_CONTEXT WINAPI CertEnumCTLsInStore(HCERTSTORE hCertStore, 3904 PCCTL_CONTEXT pPrev); 3905 3906 BOOL WINAPI CertEnumSystemStoreLocation(DWORD dwFlags, void *pvArg, 3907 PFN_CERT_ENUM_SYSTEM_STORE_LOCATION pfnEnum); 3908 3909 BOOL WINAPI CertEnumSystemStore(DWORD dwFlags, void *pvSystemStoreLocationPara, 3910 void *pvArg, PFN_CERT_ENUM_SYSTEM_STORE pfnEnum); 3911 3912 BOOL WINAPI CertEnumPhysicalStore(const void *pvSystemStore, DWORD dwFlags, 3913 void *pvArg, PFN_CERT_ENUM_PHYSICAL_STORE pfnEnum); 3914 3915 BOOL WINAPI CertSaveStore(HCERTSTORE hCertStore, DWORD dwMsgAndCertEncodingType, 3916 DWORD dwSaveAs, DWORD dwSaveTo, void* pvSaveToPara, DWORD dwFlags); 3917 3918 BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore, 3919 HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority); 3920 3921 void WINAPI CertRemoveStoreFromCollection(HCERTSTORE hCollectionStore, 3922 HCERTSTORE hSiblingStore); 3923 3924 BOOL WINAPI CertCreateCertificateChainEngine(PCERT_CHAIN_ENGINE_CONFIG pConfig, 3925 HCERTCHAINENGINE *phChainEngine); 3926 3927 BOOL WINAPI CertResyncCertificateChainEngine(HCERTCHAINENGINE hChainEngine); 3928 3929 VOID WINAPI CertFreeCertificateChainEngine(HCERTCHAINENGINE hChainEngine); 3930 3931 BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine, 3932 PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore, 3933 PCERT_CHAIN_PARA pChainPara, DWORD dwFlags, LPVOID pvReserved, 3934 PCCERT_CHAIN_CONTEXT *ppChainContext); 3935 3936 PCCERT_CHAIN_CONTEXT WINAPI CertDuplicateCertificateChain( 3937 PCCERT_CHAIN_CONTEXT pChainContext); 3938 3939 VOID WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext); 3940 3941 PCCERT_CHAIN_CONTEXT WINAPI CertFindChainInStore(HCERTSTORE hCertStore, 3942 DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, 3943 const void *pvFindPara, PCCERT_CHAIN_CONTEXT pPrevChainContext); 3944 3945 BOOL WINAPI CertVerifyCertificateChainPolicy(LPCSTR szPolicyOID, 3946 PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, 3947 PCERT_CHAIN_POLICY_STATUS pPolicyStatus); 3948 3949 DWORD WINAPI CertEnumCertificateContextProperties(PCCERT_CONTEXT pCertContext, 3950 DWORD dwPropId); 3951 3952 BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, 3953 DWORD dwPropId, void *pvData, DWORD *pcbData); 3954 3955 BOOL WINAPI CertSetCertificateContextProperty(PCCERT_CONTEXT pCertContext, 3956 DWORD dwPropId, DWORD dwFlags, const void *pvData); 3957 3958 DWORD WINAPI CertEnumCRLContextProperties(PCCRL_CONTEXT pCRLContext, 3959 DWORD dwPropId); 3960 3961 BOOL WINAPI CertGetCRLContextProperty(PCCRL_CONTEXT pCRLContext, 3962 DWORD dwPropId, void *pvData, DWORD *pcbData); 3963 3964 BOOL WINAPI CertSetCRLContextProperty(PCCRL_CONTEXT pCRLContext, 3965 DWORD dwPropId, DWORD dwFlags, const void *pvData); 3966 3967 DWORD WINAPI CertEnumCTLContextProperties(PCCTL_CONTEXT pCTLContext, 3968 DWORD dwPropId); 3969 3970 BOOL WINAPI CertEnumSubjectInSortedCTL(PCCTL_CONTEXT pCTLContext, 3971 void **ppvNextSubject, PCRYPT_DER_BLOB pSubjectIdentifier, 3972 PCRYPT_DER_BLOB pEncodedAttributes); 3973 3974 BOOL WINAPI CertGetCTLContextProperty(PCCTL_CONTEXT pCTLContext, 3975 DWORD dwPropId, void *pvData, DWORD *pcbData); 3976 3977 BOOL WINAPI CertSetCTLContextProperty(PCCTL_CONTEXT pCTLContext, 3978 DWORD dwPropId, DWORD dwFlags, const void *pvData); 3979 3980 BOOL WINAPI CertGetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, 3981 void *pvData, DWORD *pcbData); 3982 3983 BOOL WINAPI CertSetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, 3984 DWORD dwFlags, const void *pvData); 3985 3986 BOOL WINAPI CertControlStore(HCERTSTORE hCertStore, DWORD dwFlags, 3987 DWORD dwCtrlType, void const *pvCtrlPara); 3988 3989 HCERTSTORE WINAPI CertDuplicateStore(HCERTSTORE hCertStore); 3990 3991 BOOL WINAPI CertCloseStore( HCERTSTORE hCertStore, DWORD dwFlags ); 3992 3993 BOOL WINAPI CertFreeCertificateContext( PCCERT_CONTEXT pCertContext ); 3994 3995 BOOL WINAPI CertFreeCRLContext( PCCRL_CONTEXT pCrlContext ); 3996 3997 BOOL WINAPI CertFreeCTLContext( PCCTL_CONTEXT pCtlContext ); 3998 3999 BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore, 4000 PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, 4001 PCCERT_CONTEXT *ppStoreContext); 4002 4003 BOOL WINAPI CertAddCRLContextToStore( HCERTSTORE hCertStore, 4004 PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, 4005 PCCRL_CONTEXT *ppStoreContext ); 4006 4007 BOOL WINAPI CertAddCTLContextToStore( HCERTSTORE hCertStore, 4008 PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, 4009 PCCTL_CONTEXT *ppStoreContext ); 4010 4011 BOOL WINAPI CertAddCertificateLinkToStore(HCERTSTORE hCertStore, 4012 PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, 4013 PCCERT_CONTEXT *ppStoreContext); 4014 4015 BOOL WINAPI CertAddCRLLinkToStore(HCERTSTORE hCertStore, 4016 PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, 4017 PCCRL_CONTEXT *ppStoreContext); 4018 4019 BOOL WINAPI CertAddCTLLinkToStore(HCERTSTORE hCertStore, 4020 PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, 4021 PCCTL_CONTEXT *ppStoreContext); 4022 4023 BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore, 4024 DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, 4025 DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext); 4026 4027 BOOL WINAPI CertAddEncodedCRLToStore(HCERTSTORE hCertStore, 4028 DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded, 4029 DWORD dwAddDisposition, PCCRL_CONTEXT *ppCrlContext); 4030 4031 BOOL WINAPI CertAddEncodedCTLToStore(HCERTSTORE hCertStore, 4032 DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded, 4033 DWORD dwAddDisposition, PCCTL_CONTEXT *ppCtlContext); 4034 4035 BOOL WINAPI CertAddSerializedElementToStore(HCERTSTORE hCertStore, 4036 const BYTE *pbElement, DWORD cbElement, DWORD dwAddDisposition, DWORD dwFlags, 4037 DWORD dwContextTypeFlags, DWORD *pdwContentType, const void **ppvContext); 4038 4039 BOOL WINAPI CertCompareCertificate(DWORD dwCertEncodingType, 4040 PCERT_INFO pCertId1, PCERT_INFO pCertId2); 4041 BOOL WINAPI CertCompareCertificateName(DWORD dwCertEncodingType, 4042 PCERT_NAME_BLOB pCertName1, PCERT_NAME_BLOB pCertName2); 4043 BOOL WINAPI CertCompareIntegerBlob(PCRYPT_INTEGER_BLOB pInt1, 4044 PCRYPT_INTEGER_BLOB pInt2); 4045 BOOL WINAPI CertComparePublicKeyInfo(DWORD dwCertEncodingType, 4046 PCERT_PUBLIC_KEY_INFO pPublicKey1, PCERT_PUBLIC_KEY_INFO pPublicKey2); 4047 DWORD WINAPI CertGetPublicKeyLength(DWORD dwCertEncodingType, 4048 PCERT_PUBLIC_KEY_INFO pPublicKey); 4049 4050 const void * WINAPI CertCreateContext(DWORD dwContextType, DWORD dwEncodingType, 4051 const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, 4052 PCERT_CREATE_CONTEXT_PARA pCreatePara); 4053 4054 PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, 4055 const BYTE *pbCertEncoded, DWORD cbCertEncoded); 4056 4057 PCCRL_CONTEXT WINAPI CertCreateCRLContext( DWORD dwCertEncodingType, 4058 const BYTE* pbCrlEncoded, DWORD cbCrlEncoded); 4059 4060 PCCTL_CONTEXT WINAPI CertCreateCTLContext(DWORD dwMsgAndCertEncodingType, 4061 const BYTE *pbCtlEncoded, DWORD cbCtlEncoded); 4062 4063 PCCERT_CONTEXT WINAPI CertCreateSelfSignCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hProv, 4064 PCERT_NAME_BLOB pSubjectIssuerBlob, DWORD dwFlags, 4065 PCRYPT_KEY_PROV_INFO pKeyProvInfo, 4066 PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, LPSYSTEMTIME pStartTime, 4067 LPSYSTEMTIME pEndTime, PCERT_EXTENSIONS pExtensions); 4068 4069 BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT pCertContext); 4070 4071 BOOL WINAPI CertDeleteCRLFromStore(PCCRL_CONTEXT pCrlContext); 4072 4073 BOOL WINAPI CertDeleteCTLFromStore(PCCTL_CONTEXT pCtlContext); 4074 4075 PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext( 4076 PCCERT_CONTEXT pCertContext); 4077 4078 PCCRL_CONTEXT WINAPI CertDuplicateCRLContext(PCCRL_CONTEXT pCrlContext); 4079 4080 PCCTL_CONTEXT WINAPI CertDuplicateCTLContext(PCCTL_CONTEXT pCtlContext); 4081 4082 PCCERT_CONTEXT WINAPI CertFindCertificateInStore( HCERTSTORE hCertStore, 4083 DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, 4084 const void *pvFindPara, PCCERT_CONTEXT pPrevCertContext ); 4085 4086 PCCRL_CONTEXT WINAPI CertFindCRLInStore(HCERTSTORE hCertStore, 4087 DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, 4088 const void *pvFindPara, PCCRL_CONTEXT pPrevCrlContext); 4089 4090 PCCTL_CONTEXT WINAPI CertFindCTLInStore(HCERTSTORE hCertStore, 4091 DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, 4092 const void *pvFindPara, PCCTL_CONTEXT pPrevCtlContext); 4093 4094 PCCERT_CONTEXT WINAPI CertGetIssuerCertificateFromStore(HCERTSTORE hCertStore, 4095 PCCERT_CONTEXT pSubjectContext, PCCERT_CONTEXT pPrevIssuerContext, 4096 DWORD *pdwFlags); 4097 4098 PCCERT_CONTEXT WINAPI CertGetSubjectCertificateFromStore(HCERTSTORE hCertStore, 4099 DWORD dwCertEncodingType, PCERT_INFO pCertId); 4100 4101 PCCRL_CONTEXT WINAPI CertGetCRLFromStore(HCERTSTORE hCertStore, 4102 PCCERT_CONTEXT pIssuerContext, PCCRL_CONTEXT pPrevCrlContext, DWORD *pdwFlags); 4103 4104 BOOL WINAPI CertSerializeCertificateStoreElement(PCCERT_CONTEXT pCertContext, 4105 DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement); 4106 4107 BOOL WINAPI CertSerializeCRLStoreElement(PCCRL_CONTEXT pCrlContext, 4108 DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement); 4109 4110 BOOL WINAPI CertSerializeCTLStoreElement(PCCTL_CONTEXT pCtlContext, 4111 DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement); 4112 4113 BOOL WINAPI CertGetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, DWORD dwFlags, 4114 PCERT_ENHKEY_USAGE pUsage, DWORD *pcbUsage); 4115 BOOL WINAPI CertSetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, 4116 PCERT_ENHKEY_USAGE pUsage); 4117 BOOL WINAPI CertAddEnhancedKeyUsageIdentifier(PCCERT_CONTEXT pCertContext, 4118 LPCSTR pszUsageIdentifer); 4119 BOOL WINAPI CertRemoveEnhancedKeyUsageIdentifier(PCCERT_CONTEXT pCertContext, 4120 LPCSTR pszUsageIdentifer); 4121 BOOL WINAPI CertGetValidUsages(DWORD cCerts, PCCERT_CONTEXT *rghCerts, 4122 int *cNumOIDs, LPSTR *rghOIDs, DWORD *pcbOIDs); 4123 4124 BOOL WINAPI CryptEncodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType, 4125 const void *pvStructInfo, BYTE *pbEncoded, DWORD *pcbEncoded); 4126 BOOL WINAPI CryptEncodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, 4127 const void *pvStructInfo, DWORD dwFlags, PCRYPT_ENCODE_PARA pEncodePara, 4128 void *pvEncoded, DWORD *pcbEncoded); 4129 4130 BOOL WINAPI CryptDecodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType, 4131 const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, void *pvStructInfo, 4132 DWORD *pcbStructInfo); 4133 BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, 4134 const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, 4135 PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo); 4136 4137 BOOL WINAPI CryptFormatObject(DWORD dwCertEncodingType, DWORD dwFormatType, 4138 DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, 4139 const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat); 4140 4141 BOOL WINAPI CryptHashCertificate(HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid, 4142 DWORD dwFlags, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, 4143 DWORD *pcbComputedHash); 4144 4145 BOOL WINAPI CryptHashPublicKeyInfo(HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid, 4146 DWORD dwFlags, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, 4147 BYTE *pbComputedHash, DWORD *pcbComputedHash); 4148 4149 BOOL WINAPI CryptHashToBeSigned(HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, 4150 const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, 4151 DWORD *pcbComputedHash); 4152 4153 BOOL WINAPI CryptQueryObject(DWORD dwObjectType, const void* pvObject, 4154 DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, 4155 DWORD dwFlags, DWORD* pdwMsgAndCertEncodingType, DWORD* pdwContentType, 4156 DWORD* pdwFormatType, HCERTSTORE* phCertStore, HCRYPTMSG* phMsg, 4157 const void** ppvContext); 4158 4159 BOOL WINAPI CryptSignCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, 4160 DWORD dwCertEncodingType, const BYTE *pbEncodedToBeSigned, 4161 DWORD cbEncodedToBeSigned, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, 4162 const void *pvHashAuxInfo, BYTE *pbSignature, DWORD *pcbSignature); 4163 4164 BOOL WINAPI CryptSignAndEncodeCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, 4165 DWORD dwKeySpec, DWORD dwCertEncodingType, LPCSTR lpszStructType, 4166 const void *pvStructInfo, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, 4167 const void *pvHashAuxInfo, BYTE *pbEncoded, DWORD *pcbEncoded); 4168 4169 BOOL WINAPI CryptVerifyCertificateSignature(HCRYPTPROV_LEGACY hCryptProv, 4170 DWORD dwCertEncodingType, const BYTE *pbEncoded, DWORD cbEncoded, 4171 PCERT_PUBLIC_KEY_INFO pPublicKey); 4172 4173 BOOL WINAPI CryptVerifyCertificateSignatureEx(HCRYPTPROV_LEGACY hCryptProv, 4174 DWORD dwCertEncodingType, DWORD dwSubjectType, void *pvSubject, 4175 DWORD dwIssuerType, void *pvIssuer, DWORD dwFlags, void *pvReserved); 4176 4177 PCRYPT_ATTRIBUTE WINAPI CertFindAttribute(LPCSTR pszObjId, DWORD cAttr, 4178 CRYPT_ATTRIBUTE rgAttr[]); 4179 PCERT_EXTENSION WINAPI CertFindExtension(LPCSTR pszObjId, DWORD cExtensions, 4180 CERT_EXTENSION rgExtensions[]); 4181 PCERT_RDN_ATTR WINAPI CertFindRDNAttr(LPCSTR pszObjId, PCERT_NAME_INFO pName); 4182 4183 BOOL WINAPI CertFindSubjectInSortedCTL(PCRYPT_DATA_BLOB pSubjectIdentifier, 4184 PCCTL_CONTEXT pCtlContext, DWORD dwFlags, void *pvReserved, 4185 PCRYPT_DER_BLOB pEncodedAttributes); 4186 4187 BOOL WINAPI CertIsRDNAttrsInCertificateName(DWORD dwCertEncodingType, 4188 DWORD dwFlags, PCERT_NAME_BLOB pCertName, PCERT_RDN pRDN); 4189 4190 BOOL WINAPI CertIsValidCRLForCertificate(PCCERT_CONTEXT pCert, 4191 PCCRL_CONTEXT pCrl, DWORD dwFlags, void *pvReserved); 4192 BOOL WINAPI CertFindCertificateInCRL(PCCERT_CONTEXT pCert, 4193 PCCRL_CONTEXT pCrlContext, DWORD dwFlags, void *pvReserved, 4194 PCRL_ENTRY *ppCrlEntry); 4195 BOOL WINAPI CertVerifyCRLRevocation(DWORD dwCertEncodingType, 4196 PCERT_INFO pCertId, DWORD cCrlInfo, PCRL_INFO rgpCrlInfo[]); 4197 4198 BOOL WINAPI CertVerifySubjectCertificateContext(PCCERT_CONTEXT pSubject, 4199 PCCERT_CONTEXT pIssuer, DWORD *pdwFlags); 4200 4201 LONG WINAPI CertVerifyCRLTimeValidity(LPFILETIME pTimeToVerify, 4202 PCRL_INFO pCrlInfo); 4203 LONG WINAPI CertVerifyTimeValidity(LPFILETIME pTimeToVerify, 4204 PCERT_INFO pCertInfo); 4205 BOOL WINAPI CertVerifyValidityNesting(PCERT_INFO pSubjectInfo, 4206 PCERT_INFO pIssuerInfo); 4207 4208 BOOL WINAPI CertVerifyCTLUsage(DWORD dwEncodingType, DWORD dwSubjectType, 4209 void *pvSubject, PCTL_USAGE pSubjectUsage, DWORD dwFlags, 4210 PCTL_VERIFY_USAGE_PARA pVerifyUsagePara, 4211 PCTL_VERIFY_USAGE_STATUS pVerifyUsageStatus); 4212 4213 BOOL WINAPI CertVerifyRevocation(DWORD dwEncodingType, DWORD dwRevType, 4214 DWORD cContext, PVOID rgpvContext[], DWORD dwFlags, 4215 PCERT_REVOCATION_PARA pRevPara, PCERT_REVOCATION_STATUS pRevStatus); 4216 4217 BOOL WINAPI CryptExportPublicKeyInfo(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, 4218 DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo); 4219 BOOL WINAPI CryptExportPublicKeyInfoEx(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, 4220 DWORD dwCertEncodingType, LPSTR pszPublicKeyObjId, DWORD dwFlags, 4221 void *pvAuxInfo, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo); 4222 BOOL WINAPI CryptImportPublicKeyInfo(HCRYPTPROV hCryptProv, 4223 DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, HCRYPTKEY *phKey); 4224 BOOL WINAPI CryptImportPublicKeyInfoEx(HCRYPTPROV hCryptProv, 4225 DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, ALG_ID aiKeyAlg, 4226 DWORD dwFlags, void *pvAuxInfo, HCRYPTKEY *phKey); 4227 4228 BOOL WINAPI CryptAcquireCertificatePrivateKey(PCCERT_CONTEXT pCert, 4229 DWORD dwFlags, void *pvReserved, HCRYPTPROV_OR_NCRYPT_KEY_HANDLE *phCryptProv, DWORD *pdwKeySpec, 4230 BOOL *pfCallerFreeProv); 4231 4232 BOOL WINAPI CryptProtectData( DATA_BLOB* pDataIn, LPCWSTR szDataDescr, 4233 DATA_BLOB* pOptionalEntropy, PVOID pvReserved, 4234 CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, DWORD dwFlags, DATA_BLOB* pDataOut ); 4235 4236 BOOL WINAPI CryptUnprotectData( DATA_BLOB* pDataIn, LPWSTR* ppszDataDescr, 4237 DATA_BLOB* pOptionalEntropy, PVOID pvReserved, 4238 CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, DWORD dwFlags, DATA_BLOB* pDataOut ); 4239 4240 DWORD WINAPI CertGetNameStringA(PCCERT_CONTEXT pCertContext, DWORD dwType, 4241 DWORD dwFlags, void *pvTypePara, LPSTR pszNameString, DWORD cchNameString); 4242 DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType, 4243 DWORD dwFlags, void *pvTypePara, LPWSTR pszNameString, DWORD cchNameString); 4244 #define CertGetNameString WINELIB_NAME_AW(CertGetNameString) 4245 4246 DWORD WINAPI CertRDNValueToStrA(DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, 4247 LPSTR psz, DWORD csz); 4248 DWORD WINAPI CertRDNValueToStrW(DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, 4249 LPWSTR psz, DWORD csz); 4250 #define CertRDNValueToStr WINELIB_NAME_AW(CertRDNValueToStr) 4251 4252 DWORD WINAPI CertNameToStrA(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, 4253 DWORD dwStrType, LPSTR psz, DWORD csz); 4254 DWORD WINAPI CertNameToStrW(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, 4255 DWORD dwStrType, LPWSTR psz, DWORD csz); 4256 #define CertNameToStr WINELIB_NAME_AW(CertNameToStr) 4257 4258 BOOL WINAPI CertStrToNameA(DWORD dwCertEncodingType, LPCSTR pszX500, 4259 DWORD dwStrType, void *pvReserved, BYTE *pbEncoded, DWORD *pcbEncoded, 4260 LPCSTR *ppszError); 4261 BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500, 4262 DWORD dwStrType, void *pvReserved, BYTE *pbEncoded, DWORD *pcbEncoded, 4263 LPCWSTR *ppszError); 4264 #define CertStrToName WINELIB_NAME_AW(CertStrToName) 4265 4266 DWORD WINAPI CryptMsgCalculateEncodedLength(DWORD dwMsgEncodingType, 4267 DWORD dwFlags, DWORD dwMsgType, const void *pvMsgEncodeInfo, 4268 LPSTR pszInnerContentObjID, DWORD cbData); 4269 4270 BOOL WINAPI CryptMsgClose(HCRYPTMSG hCryptMsg); 4271 4272 BOOL WINAPI CryptMsgControl(HCRYPTMSG hCryptMsg, DWORD dwFlags, 4273 DWORD dwCtrlType, const void *pvCtrlPara); 4274 4275 BOOL WINAPI CryptMsgCountersign(HCRYPTMSG hCryptMsg, DWORD dwIndex, 4276 DWORD dwCountersigners, PCMSG_SIGNER_ENCODE_INFO rgCountersigners); 4277 4278 BOOL WINAPI CryptMsgCountersignEncoded(DWORD dwEncodingType, PBYTE pbSignerInfo, 4279 DWORD cbSignerInfo, DWORD cCountersigners, 4280 PCMSG_SIGNER_ENCODE_INFO rgCountersigners, PBYTE pbCountersignature, 4281 PDWORD pcbCountersignature); 4282 4283 HCRYPTMSG WINAPI CryptMsgDuplicate(HCRYPTMSG hCryptMsg); 4284 4285 BOOL WINAPI CryptMsgEncodeAndSignCTL(DWORD dwMsgEncodingType, 4286 PCTL_INFO pCtlInfo, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags, 4287 BYTE *pbEncoded, DWORD *pcbEncoded); 4288 4289 BOOL WINAPI CryptMsgGetAndVerifySigner(HCRYPTMSG hCryptMsg, DWORD cSignerStore, 4290 HCERTSTORE *rghSignerStore, DWORD dwFlags, PCCERT_CONTEXT *ppSigner, 4291 DWORD *pdwSignerIndex); 4292 4293 BOOL WINAPI CryptMsgGetParam(HCRYPTMSG hCryptMsg, DWORD dwParamType, 4294 DWORD dwIndex, void *pvData, DWORD *pcbData); 4295 4296 HCRYPTMSG WINAPI CryptMsgOpenToDecode(DWORD dwMsgEncodingType, DWORD dwFlags, 4297 DWORD dwMsgType, HCRYPTPROV_LEGACY hCryptProv, PCERT_INFO pRecipientInfo, 4298 PCMSG_STREAM_INFO pStreamInfo); 4299 4300 HCRYPTMSG WINAPI CryptMsgOpenToEncode(DWORD dwMsgEncodingType, DWORD dwFlags, 4301 DWORD dwMsgType, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID, 4302 PCMSG_STREAM_INFO pStreamInfo); 4303 4304 BOOL WINAPI CryptMsgSignCTL(DWORD dwMsgEncodingType, BYTE *pbCtlContent, 4305 DWORD cbCtlContent, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags, 4306 BYTE *pbEncoded, DWORD *pcbEncoded); 4307 4308 BOOL WINAPI CryptMsgUpdate(HCRYPTMSG hCryptMsg, const BYTE *pbData, 4309 DWORD cbData, BOOL fFinal); 4310 4311 BOOL WINAPI CryptMsgVerifyCountersignatureEncoded(HCRYPTPROV_LEGACY hCryptProv, 4312 DWORD dwEncodingType, PBYTE pbSignerInfo, DWORD cbSignerInfo, 4313 PBYTE pbSignerInfoCountersignature, DWORD cbSignerInfoCountersignature, 4314 PCERT_INFO pciCountersigner); 4315 4316 BOOL WINAPI CryptMsgVerifyCountersignatureEncodedEx(HCRYPTPROV_LEGACY hCryptProv, 4317 DWORD dwEncodingType, PBYTE pbSignerInfo, DWORD cbSignerInfo, 4318 PBYTE pbSignerInfoCountersignature, DWORD cbSignerInfoCountersignature, 4319 DWORD dwSignerType, void *pvSigner, DWORD dwFlags, void *pvReserved); 4320 4321 BOOL WINAPI CryptSignMessage(PCRYPT_SIGN_MESSAGE_PARA pSignPara, 4322 BOOL fDetachedSignature, DWORD cToBeSigned, const BYTE *rgpbToBeSigned[], 4323 DWORD rgcbToBeSigned[], BYTE *pbSignedBlob, DWORD *pcbSignedBlob); 4324 BOOL WINAPI CryptSignMessageWithKey(PCRYPT_KEY_SIGN_MESSAGE_PARA pSignPara, 4325 const BYTE *pbToBeSigned, DWORD cbToBeSigned, BYTE *pbSignedBlob, 4326 DWORD *pcbSignedBlob); 4327 4328 BOOL WINAPI CryptVerifyMessageSignature(PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, 4329 DWORD dwSignerIndex, const BYTE* pbSignedBlob, DWORD cbSignedBlob, 4330 BYTE* pbDecoded, DWORD* pcbDecoded, PCCERT_CONTEXT* ppSignerCert); 4331 BOOL WINAPI CryptVerifyMessageSignatureWithKey( 4332 PCRYPT_KEY_VERIFY_MESSAGE_PARA pVerifyPara, 4333 PCERT_PUBLIC_KEY_INFO pPublicKeyInfo, const BYTE *pbSignedBlob, 4334 DWORD cbSignedBlob, BYTE *pbDecoded, DWORD *pcbDecoded); 4335 4336 BOOL WINAPI CryptVerifyDetachedMessageSignature( 4337 PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, 4338 const BYTE *pbDetachedSignBlob, DWORD cbDetachedSignBlob, DWORD cToBeSigned, 4339 const BYTE *rgpbToBeSigned[], DWORD rgcbToBeSigned[], 4340 PCCERT_CONTEXT *ppSignerCert); 4341 LONG WINAPI CryptGetMessageSignerCount(DWORD dwMsgEncodingType, 4342 const BYTE *pbSignedBlob, DWORD cbSignedBlob); 4343 4344 BOOL WINAPI CryptEncryptMessage(PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, 4345 DWORD cRecipientCert, PCCERT_CONTEXT rgpRecipientCert[], 4346 const BYTE *pbToBeEncrypted, DWORD cbToBeEncrypted, BYTE *pbEncryptedBlob, 4347 DWORD *pcbEncryptedBlob); 4348 BOOL WINAPI CryptDecryptMessage(PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, 4349 const BYTE *pbEncryptedBlob, DWORD cbEncryptedBlob, BYTE *pbDecrypted, 4350 DWORD *pcbDecrypted, PCCERT_CONTEXT *ppXchgCert); 4351 4352 BOOL WINAPI CryptSignAndEncryptMessage(PCRYPT_SIGN_MESSAGE_PARA pSignPara, 4353 PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, DWORD cRecipientCert, 4354 PCCERT_CONTEXT rgpRecipientCert[], const BYTE *pbToBeSignedAndEncrypted, 4355 DWORD cbToBeSignedAndEncrypted, BYTE *pbSignedAndEncryptedBlob, 4356 DWORD *pcbSignedAndEncryptedBlob); 4357 BOOL WINAPI CryptDecryptAndVerifyMessageSignature( 4358 PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, 4359 PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, 4360 const BYTE *pbEncryptedBlob, DWORD cbEncryptedBlob, BYTE *pbDecrypted, 4361 DWORD *pcbDecrypted, PCCERT_CONTEXT *ppXchgCert, PCCERT_CONTEXT *ppSignerCert); 4362 4363 HCERTSTORE WINAPI CryptGetMessageCertificates(DWORD dwMsgAndCertEncodingType, 4364 HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const BYTE *pbSignedBlob, 4365 DWORD cbSignedBlob); 4366 4367 BOOL WINAPI CryptDecodeMessage(DWORD dwMsgTypeFlags, 4368 PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, 4369 PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, 4370 const BYTE *pbEncodedBlob, DWORD cbEncodedBlob, DWORD dwPrevInnerContentType, 4371 DWORD *pdwMsgType, DWORD *pdwInnerContentType, BYTE *pbDecoded, 4372 DWORD *pcbDecoded, PCCERT_CONTEXT *ppXchgCert, PCCERT_CONTEXT *ppSignerCert); 4373 4374 BOOL WINAPI CryptHashMessage(PCRYPT_HASH_MESSAGE_PARA pHashPara, 4375 BOOL fDetachedHash, DWORD cToBeHashed, const BYTE *rgpbToBeHashed[], 4376 DWORD rgcbToBeHashed[], BYTE *pbHashedBlob, DWORD *pcbHashedBlob, 4377 BYTE *pbComputedHash, DWORD *pcbComputedHash); 4378 BOOL WINAPI CryptVerifyMessageHash(PCRYPT_HASH_MESSAGE_PARA pHashPara, 4379 BYTE *pbHashedBlob, DWORD cbHashedBlob, BYTE *pbToBeHashed, 4380 DWORD *pcbToBeHashed, BYTE *pbComputedHash, DWORD *pcbComputedHash); 4381 BOOL WINAPI CryptVerifyDetachedMessageHash(PCRYPT_HASH_MESSAGE_PARA pHashPara, 4382 BYTE *pbDetachedHashBlob, DWORD cbDetachedHashBlob, DWORD cToBeHashed, 4383 const BYTE *rgpbToBeHashed[], DWORD rgcbToBeHashed[], BYTE *pbComputedHash, 4384 DWORD *pcbComputedHash); 4385 4386 /* cryptnet.dll functions */ 4387 BOOL WINAPI CryptCancelAsyncRetrieval(HCRYPTASYNC hAsyncRetrieval); 4388 4389 BOOL WINAPI CryptGetObjectUrl(LPCSTR pszUrlOid, LPVOID pvPara, DWORD dwFlags, 4390 PCRYPT_URL_ARRAY pUrlArray, DWORD *pcbUrlArray, PCRYPT_URL_INFO pUrlInfo, 4391 DWORD *pcbUrlInfo, LPVOID pvReserved); 4392 4393 BOOL WINAPI CryptGetTimeValidObject(LPCSTR pszTimeValidOid, void *pvPara, 4394 PCCERT_CONTEXT pIssuer, LPFILETIME pftValidFor, DWORD dwFlags, DWORD dwTimeout, 4395 void **ppvObject, PCRYPT_CREDENTIALS pCredentials, void *pvReserved); 4396 4397 BOOL WINAPI CryptFlushTimeValidObject(LPCSTR pszFlushTimeValidOid, void *pvPara, 4398 PCCERT_CONTEXT pIssuer, DWORD dwFlags, void *pvReserved); 4399 4400 BOOL WINAPI CryptInstallCancelRetrieval(PFN_CRYPT_CANCEL_RETRIEVAL pfnCancel, 4401 const void *pvArg, DWORD dwFlags, void *pvReserved); 4402 4403 BOOL WINAPI CryptUninstallCancelRetrieval(DWORD dwFlags, void *pvReserved); 4404 4405 BOOL WINAPI CryptRetrieveObjectByUrlA(LPCSTR pszURL, LPCSTR pszObjectOid, 4406 DWORD dwRetrievalFlags, DWORD dwTimeout, LPVOID *ppvObject, 4407 HCRYPTASYNC hAsyncRetrieve, PCRYPT_CREDENTIALS pCredentials, LPVOID pvVerify, 4408 PCRYPT_RETRIEVE_AUX_INFO pAuxInfo); 4409 BOOL WINAPI CryptRetrieveObjectByUrlW(LPCWSTR pszURL, LPCSTR pszObjectOid, 4410 DWORD dwRetrievalFlags, DWORD dwTimeout, LPVOID *ppvObject, 4411 HCRYPTASYNC hAsyncRetrieve, PCRYPT_CREDENTIALS pCredentials, LPVOID pvVerify, 4412 PCRYPT_RETRIEVE_AUX_INFO pAuxInfo); 4413 #define CryptRetrieveObjectByUrl WINELIB_NAME_AW(CryptRetrieveObjectByUrl) 4414 4415 #ifdef __cplusplus 4416 } 255 4417 #endif 4418 4419 #endif -
trunk/include/win/wine/exception.h
r9673 r21314 57 57 #if 1 58 58 #define __TRY if(1) 59 #define __EXCEPT_PAGE_FAULT else 59 60 #define __EXCEPT(func) else 60 61 //#define __FINALLY(func) __finally { (func)(!AbnormalTermination()); } -
trunk/include/win/wine/obj_oleaut.h
r7914 r21314 155 155 float fltVal; 156 156 double dblVal; 157 ULONGLONG ullVal; 157 158 VARIANT_BOOL boolVal; 158 159 SCODE scode; … … 175 176 float* pfltVal; 176 177 double* pdblVal; 178 ULONGLONG* pullVal; 177 179 VARIANT_BOOL* pboolVal; 178 180 SCODE* pscode; -
trunk/include/win/wine/port.h
r8544 r21314 1 #ifndef __WINE_PORT_H 2 #define __WINE_PORT_H 1 /* 2 * Wine porting definitions 3 * 4 * Copyright 1996 Alexandre Julliard 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 */ 20 21 #ifndef __WINE_WINE_PORT_H 22 #define __WINE_WINE_PORT_H 3 23 4 24 5 25 6 #endif /* __WINE_PORT_H */ 26 struct option; 27 28 #ifndef HAVE_STRUCT_OPTION_NAME 29 struct option 30 { 31 const char *name; 32 int has_arg; 33 int *flag; 34 int val; 35 }; 36 #endif 37 38 #endif /* !defined(__WINE_WINE_PORT_H) */ -
trunk/include/win/winerror.h
r9683 r21314 1 /* 2 * Copyright (C) the Wine project 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 1 19 #ifndef __WINE_WINERROR_H 2 20 #define __WINE_WINERROR_H 3 21 4 5 #define FACILITY_NULL 0 6 #define FACILITY_RPC 1 7 #define FACILITY_DISPATCH 2 8 #define FACILITY_STORAGE 3 9 #define FACILITY_ITF 4 10 #define FACILITY_WIN32 7 11 #define FACILITY_WINDOWS 8 12 #define FACILITY_SSPI 9 13 #define FACILITY_CONTROL 10 14 #define FACILITY_CERT 11 15 #define FACILITY_INTERNET 12 22 #define FACILITY_NULL 0 23 #define FACILITY_RPC 1 24 #define FACILITY_DISPATCH 2 25 #define FACILITY_STORAGE 3 26 #define FACILITY_ITF 4 27 #define FACILITY_WIN32 7 28 #define FACILITY_WINDOWS 8 29 #define FACILITY_SSPI 9 30 #define FACILITY_SECURITY FACILITY_SSPI 31 #define FACILITY_CONTROL 10 32 #define FACILITY_CERT 11 33 #define FACILITY_INTERNET 12 34 #define FACILITY_MEDIASERVER 13 35 #define FACILITY_MSMQ 14 36 #define FACILITY_SETUPAPI 15 37 #define FACILITY_SCARD 16 38 #define FACILITY_COMPLUS 17 39 #define FACILITY_AAF 18 40 #define FACILITY_URT 19 41 #define FACILITY_ACS 20 42 #define FACILITY_DPLAY 21 43 #define FACILITY_UMI 22 44 #define FACILITY_SXS 23 45 #define FACILITY_WINDOWS_CE 24 46 #define FACILITY_HTTP 25 47 #define FACILITY_COMMONLOG 26 48 #define FACILITY_USERMODE_FILTER_MANAGER 31 49 #define FACILITY_BACKGROUNDCOPY 32 50 #define FACILITY_CONFIGURATION 33 51 #define FACILITY_STATE_MANAGEMENT 34 52 #define FACILITY_METADIRECTORY 35 53 #define FACILITY_WINDOWSUPDATE 36 54 #define FACILITY_DIRECTORYSERVICE 37 55 #define FACILITY_GRAPHICS 38 56 #define FACILITY_SHELL 39 57 #define FACILITY_TPM_SERVICES 40 58 #define FACILITY_TPM_SOFTWARE 41 59 #define FACILITY_PLA 48 60 #define FACILITY_FVE 49 61 #define FACILITY_WINDOWS_DEFENDER 80 16 62 17 63 #define SEVERITY_SUCCESS 0 18 64 #define SEVERITY_ERROR 1 65 19 66 20 67 #define MAKE_HRESULT(sev,fac,code) \ … … 24 71 #define SUCCEEDED(stat) ((HRESULT)(stat)>=0) 25 72 #define FAILED(stat) ((HRESULT)(stat)<0) 73 #define IS_ERROR(stat) (((unsigned long)(stat)>>31) == SEVERITY_ERROR) 26 74 27 75 #define HRESULT_CODE(hr) ((hr) & 0xFFFF) … … 31 79 #define SCODE_FACILITY(sc) (((sc) >> 16) & 0x1FFF) 32 80 33 /* ERROR_UNKNOWN is a placeholder for error conditions which haven't 34 * been tested yet so we're not exactly sure what will be returned. 35 * All instances of ERROR_UNKNOWN should be tested under Win95/NT 36 * and replaced. 37 */ 38 39 #define ERROR_UNKNOWN 99999 81 #define HRESULT_SEVERITY(hr) (((hr) >> 31) & 0x1) 82 #define SCODE_SEVERITY(sc) (((sc) >> 31) & 0x1) 83 84 #define HRESULT_FROM_WIN32(x) ((HRESULT)(x) > 0 ? ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000)) : (HRESULT)(x) ) 85 86 #define FACILITY_NT_BIT 0x10000000 87 #define HRESULT_FROM_NT(x) ((HRESULT) ((x) | FACILITY_NT_BIT)) 88 89 /* SCODE <-> HRESULT functions */ 90 /* This macros is obsolete and should not be used in new apps. */ 91 #define GetScode(hr) ((SCODE)(hr)) 92 /* This macros is obsolete and should not be used in new apps. */ 93 #define ResultFromScode(sc) ((HRESULT)(sc)) 40 94 41 95 #define NO_ERROR 0 … … 232 286 #define ERROR_DISK_TOO_FRAGMENTED 302 233 287 #define ERROR_MR_MID_NOT_FOUND 317 288 #define ERROR_SCOPE_NOT_FOUND 318 289 #define ERROR_FAIL_NOACTION_REBOOT 350 290 #define ERROR_FAIL_SHUTDOWN 351 291 #define ERROR_FAIL_RESTART 352 292 #define ERROR_MAX_SESSIONS_REACHED 353 234 293 #define ERROR_INVALID_ADDRESS 487 294 #define ERROR_USER_PROFILE_LOAD 500 235 295 #define ERROR_ARITHMETIC_OVERFLOW 534 236 296 #define ERROR_PIPE_CONNECTED 535 … … 426 486 #define ERROR_SMARTCARD_SUBSYSTEM_FAILURE 1264 427 487 #define ERROR_DOWNGRADE_DETECTED 1265 428 #define SEC_E_SMARTCARD_CERT_REVOKED 1266 429 #define SEC_E_ISSUING_CA_UNTRUSTED 1267 430 #define SEC_E_REVOCATION_OFFLINE_C 1268 431 #define SEC_E_PKINIT_CLIENT_FAILURE 1269 432 #define SEC_E_SMARTCARD_CERT_EXPIRED 1270 488 #define ERROR_MACHINE_LOCKED 1271 489 #define ERROR_CALLBACK_SUPPLIED_INVALID_DATA 1273 490 #define ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED 1274 433 491 #define ERROR_DRIVER_BLOCKED 1275 434 492 #define ERROR_INVALID_IMPORT_OF_NON_DLL 1276 … … 639 697 #define ERROR_INSTALL_REMOTE_DISALLOWED 1640 640 698 #define ERROR_SUCCESS_REBOOT_INITIATED 1641 699 #define ERROR_UNKNOWN_PATCH 1647 641 700 #define RPC_S_INVALID_STRING_BINDING 1700 642 701 #define RPC_S_WRONG_KIND_OF_BINDING 1701 … … 800 859 #define RPC_S_GRP_ELT_NOT_ADDED 1928 801 860 #define RPC_S_GRP_ELT_NOT_REMOVED 1929 861 #define ERROR_KM_DRIVER_BLOCKED 1930 802 862 #define ERROR_CONTEXT_EXPIRED 1931 863 #define ERROR_PER_USER_TRUST_QUOTA_EXCEEDED 1932 864 #define ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED 1933 865 #define ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED 1934 866 #define ERROR_AUTHENTICATION_FIREWALL_FAILED 1935 867 #define ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED 1936 803 868 #define ERROR_INVALID_PIXEL_FORMAT 2000 804 869 #define ERROR_BAD_DRIVER 2001 … … 839 904 #define ERROR_SUCCESS_RESTART_REQUIRED 3011 840 905 #define ERROR_PRINTER_NOT_FOUND 3012 906 #define ERROR_PRINTER_DRIVER_WARNED 3013 907 #define ERROR_PRINTER_DRIVER_BLOCKED 3014 841 908 #define ERROR_WINS_INTERNAL 4000 842 909 #define ERROR_CAN_NOT_DEL_LOCAL_WINS 4001 … … 1482 1549 #define ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET 14011 1483 1550 1484 #define ERROR_AUDITING_DISABLED 0xC0090001L1485 #define ERROR_ALL_SIDS_FILTERED 0xC0090002L1486 1487 1551 /* HRESULT values for OLE, SHELL and other Interface stuff */ 1488 1552 /* the codes 4000-40ff are reserved for OLE */ 1489 1553 #undef NOERROR /* arpa/nameser_compat.h defines this */ 1490 #define NOERROR 0L 1491 #define S_OK ((HRESULT)0L) 1492 #define S_FALSE ((HRESULT)1L) 1493 1494 #define E_PENDING 0x8000000AL 1495 1496 1497 #define E_NOTIMPL 0x80004001L 1498 #define E_NOINTERFACE 0x80004002L 1499 #define E_POINTER 0x80004003L 1500 #define E_ABORT 0x80004004L 1501 #define E_FAIL 0x80004005L 1502 /* FIXME: E_UNSPEC is not a standard value but it is used by 1503 * FileMoniker, IOleLink and DoDragDrop as a return value. 1504 */ 1554 1555 #ifdef RC_INVOKED 1556 #define _HRESULT_TYPEDEF_(x) (x) 1557 #else 1558 #define _HRESULT_TYPEDEF_(x) ((HRESULT)x) 1559 #endif 1560 1561 #define NOERROR _HRESULT_TYPEDEF_(0L) 1562 #define S_OK _HRESULT_TYPEDEF_(0L) 1563 #define SEC_E_OK _HRESULT_TYPEDEF_(0L) 1564 #define S_FALSE _HRESULT_TYPEDEF_(1L) 1565 1566 #define E_PENDING _HRESULT_TYPEDEF_(0x8000000AL) 1567 1568 1569 #define E_NOTIMPL _HRESULT_TYPEDEF_(0x80004001L) 1570 #define E_NOINTERFACE _HRESULT_TYPEDEF_(0x80004002L) 1571 #define E_POINTER _HRESULT_TYPEDEF_(0x80004003L) 1572 #define E_ABORT _HRESULT_TYPEDEF_(0x80004004L) 1573 #define E_FAIL _HRESULT_TYPEDEF_(0x80004005L) 1574 1575 1576 #define CO_E_INIT_TLS _HRESULT_TYPEDEF_(0x80004006L) 1577 #define CO_E_INIT_SHARED_ALLOCATOR _HRESULT_TYPEDEF_(0x80004007L) 1578 #define CO_E_INIT_MEMORY_ALLOCATOR _HRESULT_TYPEDEF_(0x80004008L) 1579 #define CO_E_INIT_CLASS_CACHE _HRESULT_TYPEDEF_(0x80004009L) 1580 #define CO_E_INIT_RPC_CHANNEL _HRESULT_TYPEDEF_(0x8000400AL) 1581 #define CO_E_INIT_TLS_SET_CHANNEL_CONTROL _HRESULT_TYPEDEF_(0x8000400BL) 1582 #define CO_E_INIT_TLS_CHANNEL_CONTROL _HRESULT_TYPEDEF_(0x8000400CL) 1583 #define CO_E_INIT_UNACCEPTED_USER_ALLOCATOR _HRESULT_TYPEDEF_(0x8000400DL) 1584 #define CO_E_INIT_SCM_MUTEX_EXISTS _HRESULT_TYPEDEF_(0x8000400EL) 1585 #define CO_E_INIT_SCM_FILE_MAPPING_EXISTS _HRESULT_TYPEDEF_(0x8000400FL) 1586 #define CO_E_INIT_SCM_MAP_VIEW_OF_FILE _HRESULT_TYPEDEF_(0x80004010L) 1587 #define CO_E_INIT_SCM_EXEC_FAILURE _HRESULT_TYPEDEF_(0x80004011L) 1588 #define CO_E_INIT_ONLY_SINGLE_THREADED _HRESULT_TYPEDEF_(0x80004012L) 1589 #define CO_E_CANT_REMOTE _HRESULT_TYPEDEF_(0x80004013L) 1590 #define CO_E_BAD_SERVER_NAME _HRESULT_TYPEDEF_(0x80004014L) 1591 #define CO_E_WRONG_SERVER_IDENTITY _HRESULT_TYPEDEF_(0x80004015L) 1592 #define CO_E_OLE1DDE_DISABLED _HRESULT_TYPEDEF_(0x80004016L) 1593 #define CO_E_RUNAS_SYNTAX _HRESULT_TYPEDEF_(0x80004017L) 1594 #define CO_E_CREATEPROCESS_FAILURE _HRESULT_TYPEDEF_(0x80004018L) 1595 #define CO_E_RUNAS_CREATEPROCESS_FAILURE _HRESULT_TYPEDEF_(0x80004019L) 1596 #define CO_E_RUNAS_LOGON_FAILURE _HRESULT_TYPEDEF_(0x8000401AL) 1597 #define CO_E_LAUNCH_PERMISSION_DENIED _HRESULT_TYPEDEF_(0x8000401BL) 1598 #define CO_E_START_SERVICE_FAILURE _HRESULT_TYPEDEF_(0x8000401CL) 1599 #define CO_E_REMOTE_COMMUNICATION_FAILURE _HRESULT_TYPEDEF_(0x8000401DL) 1600 #define CO_E_SERVER_START_TIMEOUT _HRESULT_TYPEDEF_(0x8000401EL) 1601 #define CO_E_CLSREG_INCONSISTENT _HRESULT_TYPEDEF_(0x8000401FL) 1602 #define CO_E_IIDREG_INCONSISTENT _HRESULT_TYPEDEF_(0x80004020L) 1603 #define CO_E_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x80004021L) 1604 #define CO_E_RELOAD_DLL _HRESULT_TYPEDEF_(0x80004022L) 1605 #define CO_E_MSI_ERROR _HRESULT_TYPEDEF_(0x80004023L) 1606 #define CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT _HRESULT_TYPEDEF_(0x80004024L) 1607 #define CO_E_SERVER_PAUSED _HRESULT_TYPEDEF_(0x80004025L) 1608 #define CO_E_SERVER_NOT_PAUSED _HRESULT_TYPEDEF_(0x80004026L) 1609 #define CO_E_CLASS_DISABLED _HRESULT_TYPEDEF_(0x80004027L) 1610 #define CO_E_CLRNOTAVAILABLE _HRESULT_TYPEDEF_(0x80004028L) 1611 #define CO_E_ASYNC_WORK_REJECTED _HRESULT_TYPEDEF_(0x80004029L) 1612 #define CO_E_SERVER_INIT_TIMEOUT _HRESULT_TYPEDEF_(0x8000402AL) 1613 #define CO_E_NO_SECCTX_IN_ACTIVATE _HRESULT_TYPEDEF_(0x8000402BL) 1614 #define CO_E_TRACKER_CONFIG _HRESULT_TYPEDEF_(0x80004030L) 1615 #define CO_E_THREADPOOL_CONFIG _HRESULT_TYPEDEF_(0x80004031L) 1616 #define CO_E_SXS_CONFIG _HRESULT_TYPEDEF_(0x80004032L) 1617 #define CO_E_MALFORMED_SPN _HRESULT_TYPEDEF_(0x80004033L) 1618 1619 #define E_UNEXPECTED _HRESULT_TYPEDEF_(0x8000FFFFL) 1620 1621 #define RPC_E_CALL_REJECTED _HRESULT_TYPEDEF_(0x80010001L) 1622 #define RPC_E_CALL_CANCELED _HRESULT_TYPEDEF_(0x80010002L) 1623 #define RPC_E_CANTPOST_INSENDCALL _HRESULT_TYPEDEF_(0x80010003L) 1624 #define RPC_E_CANTCALLOUT_INASYNCCALL _HRESULT_TYPEDEF_(0x80010004L) 1625 #define RPC_E_CANTCALLOUT_INEXTERNALCALL _HRESULT_TYPEDEF_(0x80010005L) 1626 #define RPC_E_CONNECTION_TERMINATED _HRESULT_TYPEDEF_(0x80010006L) 1627 #define RPC_E_SERVER_DIED _HRESULT_TYPEDEF_(0x80010007L) 1628 #define RPC_E_CLIENT_DIED _HRESULT_TYPEDEF_(0x80010008L) 1629 #define RPC_E_INVALID_DATAPACKET _HRESULT_TYPEDEF_(0x80010009L) 1630 #define RPC_E_CANTTRANSMIT_CALL _HRESULT_TYPEDEF_(0x8001000AL) 1631 #define RPC_E_CLIENT_CANTMARSHAL_DATA _HRESULT_TYPEDEF_(0x8001000BL) 1632 #define RPC_E_CLIENT_CANTUNMARSHAL_DATA _HRESULT_TYPEDEF_(0x8001000CL) 1633 #define RPC_E_SERVER_CANTMARSHAL_DATA _HRESULT_TYPEDEF_(0x8001000DL) 1634 #define RPC_E_SERVER_CANTUNMARSHAL_DATA _HRESULT_TYPEDEF_(0x8001000EL) 1635 #define RPC_E_INVALID_DATA _HRESULT_TYPEDEF_(0x8001000FL) 1636 #define RPC_E_INVALID_PARAMETER _HRESULT_TYPEDEF_(0x80010010L) 1637 #define RPC_E_CANTCALLOUT_AGAIN _HRESULT_TYPEDEF_(0x80010011L) 1638 #define RPC_E_SERVER_DIED_DNE _HRESULT_TYPEDEF_(0x80010012L) 1639 #define RPC_E_SYS_CALL_FAILED _HRESULT_TYPEDEF_(0x80010100L) 1640 #define RPC_E_OUT_OF_RESOURCES _HRESULT_TYPEDEF_(0x80010101L) 1641 #define RPC_E_ATTEMPTED_MULTITHREAD _HRESULT_TYPEDEF_(0x80010102L) 1642 #define RPC_E_NOT_REGISTERED _HRESULT_TYPEDEF_(0x80010103L) 1643 #define RPC_E_FAULT _HRESULT_TYPEDEF_(0x80010104L) 1644 #define RPC_E_SERVERFAULT _HRESULT_TYPEDEF_(0x80010105L) 1645 #define RPC_E_CHANGED_MODE _HRESULT_TYPEDEF_(0x80010106L) 1646 #define RPC_E_INVALIDMETHOD _HRESULT_TYPEDEF_(0x80010107L) 1647 #define RPC_E_DISCONNECTED _HRESULT_TYPEDEF_(0x80010108L) 1648 #define RPC_E_RETRY _HRESULT_TYPEDEF_(0x80010109L) 1649 #define RPC_E_SERVERCALL_RETRYLATER _HRESULT_TYPEDEF_(0x8001010AL) 1650 #define RPC_E_SERVERCALL_REJECTED _HRESULT_TYPEDEF_(0x8001010BL) 1651 #define RPC_E_INVALID_CALLDATA _HRESULT_TYPEDEF_(0x8001010CL) 1652 #define RPC_E_CANTCALLOUT_ININPUTSYNCCALL _HRESULT_TYPEDEF_(0x8001010DL) 1653 #define RPC_E_WRONG_THREAD _HRESULT_TYPEDEF_(0x8001010EL) 1654 #define RPC_E_THREAD_NOT_INIT _HRESULT_TYPEDEF_(0x8001010FL) 1655 #define RPC_E_VERSION_MISMATCH _HRESULT_TYPEDEF_(0x80010110L) 1656 #define RPC_E_INVALID_HEADER _HRESULT_TYPEDEF_(0x80010111L) 1657 #define RPC_E_INVALID_EXTENSION _HRESULT_TYPEDEF_(0x80010112L) 1658 #define RPC_E_INVALID_IPID _HRESULT_TYPEDEF_(0x80010113L) 1659 #define RPC_E_INVALID_OBJECT _HRESULT_TYPEDEF_(0x80010114L) 1660 #define RPC_S_CALLPENDING _HRESULT_TYPEDEF_(0x80010115L) 1661 #define RPC_S_WAITONTIMER _HRESULT_TYPEDEF_(0x80010116L) 1662 #define RPC_E_CALL_COMPLETE _HRESULT_TYPEDEF_(0x80010117L) 1663 #define RPC_E_UNSECURE_CALL _HRESULT_TYPEDEF_(0x80010118L) 1664 #define RPC_E_TOO_LATE _HRESULT_TYPEDEF_(0x80010119L) 1665 #define RPC_E_NO_GOOD_SECURITY_PACKAGES _HRESULT_TYPEDEF_(0x8001011AL) 1666 #define RPC_E_ACCESS_DENIED _HRESULT_TYPEDEF_(0x8001011BL) 1667 #define RPC_E_REMOTE_DISABLED _HRESULT_TYPEDEF_(0x8001011CL) 1668 #define RPC_E_INVALID_OBJREF _HRESULT_TYPEDEF_(0x8001011DL) 1669 #define RPC_E_NO_CONTEXT _HRESULT_TYPEDEF_(0x8001011EL) 1670 #define RPC_E_TIMEOUT _HRESULT_TYPEDEF_(0x8001011FL) 1671 #define RPC_E_NO_SYNC _HRESULT_TYPEDEF_(0x80010120L) 1672 #define RPC_E_UNEXPECTED _HRESULT_TYPEDEF_(0x8001FFFFL) 1673 1674 #define DISP_E_UNKNOWNINTERFACE _HRESULT_TYPEDEF_(0x80020001L) 1675 #define DISP_E_MEMBERNOTFOUND _HRESULT_TYPEDEF_(0x80020003L) 1676 #define DISP_E_PARAMNOTFOUND _HRESULT_TYPEDEF_(0x80020004L) 1677 #define DISP_E_TYPEMISMATCH _HRESULT_TYPEDEF_(0x80020005L) 1678 #define DISP_E_UNKNOWNNAME _HRESULT_TYPEDEF_(0x80020006L) 1679 #define DISP_E_NONAMEDARGS _HRESULT_TYPEDEF_(0x80020007L) 1680 #define DISP_E_BADVARTYPE _HRESULT_TYPEDEF_(0x80020008L) 1681 #define DISP_E_EXCEPTION _HRESULT_TYPEDEF_(0x80020009L) 1682 #define DISP_E_OVERFLOW _HRESULT_TYPEDEF_(0x8002000AL) 1683 #define DISP_E_BADINDEX _HRESULT_TYPEDEF_(0x8002000BL) 1684 #define DISP_E_UNKNOWNLCID _HRESULT_TYPEDEF_(0x8002000CL) 1685 #define DISP_E_ARRAYISLOCKED _HRESULT_TYPEDEF_(0x8002000DL) 1686 #define DISP_E_BADPARAMCOUNT _HRESULT_TYPEDEF_(0x8002000EL) 1687 #define DISP_E_PARAMNOTOPTIONAL _HRESULT_TYPEDEF_(0x8002000FL) 1688 #define DISP_E_BADCALLEE _HRESULT_TYPEDEF_(0x80020010L) 1689 #define DISP_E_NOTACOLLECTION _HRESULT_TYPEDEF_(0x80020011L) 1690 #define DISP_E_DIVBYZERO _HRESULT_TYPEDEF_(0x80020012L) 1691 1692 #define TYPE_E_BUFFERTOOSMALL _HRESULT_TYPEDEF_(0x80028016L) 1693 #define TYPE_E_FIELDNOTFOUND _HRESULT_TYPEDEF_(0x80028017L) 1694 #define TYPE_E_INVDATAREAD _HRESULT_TYPEDEF_(0x80028018L) 1695 #define TYPE_E_UNSUPFORMAT _HRESULT_TYPEDEF_(0x80028019L) 1696 #define TYPE_E_REGISTRYACCESS _HRESULT_TYPEDEF_(0x8002801CL) 1697 #define TYPE_E_LIBNOTREGISTERED _HRESULT_TYPEDEF_(0x8002801DL) 1698 #define TYPE_E_UNDEFINEDTYPE _HRESULT_TYPEDEF_(0x80028027L) 1699 #define TYPE_E_QUALIFIEDNAMEDISALLOWED _HRESULT_TYPEDEF_(0x80028028L) 1700 #define TYPE_E_INVALIDSTATE _HRESULT_TYPEDEF_(0x80028029L) 1701 #define TYPE_E_WRONGTYPEKIND _HRESULT_TYPEDEF_(0x8002802AL) 1702 #define TYPE_E_ELEMENTNOTFOUND _HRESULT_TYPEDEF_(0x8002802BL) 1703 #define TYPE_E_AMBIGUOUSNAME _HRESULT_TYPEDEF_(0x8002802CL) 1704 #define TYPE_E_NAMECONFLICT _HRESULT_TYPEDEF_(0x8002802DL) 1705 #define TYPE_E_UNKNOWNLCID _HRESULT_TYPEDEF_(0x8002802EL) 1706 #define TYPE_E_DLLFUNCTIONNOTFOUND _HRESULT_TYPEDEF_(0x8002802FL) 1707 #define TYPE_E_BADMODULEKIND _HRESULT_TYPEDEF_(0x800288BDL) 1708 #define TYPE_E_SIZETOOBIG _HRESULT_TYPEDEF_(0x800288C5L) 1709 #define TYPE_E_DUPLICATEID _HRESULT_TYPEDEF_(0x800288C6L) 1710 #define TYPE_E_INVALIDID _HRESULT_TYPEDEF_(0x800288CFL) 1711 #define TYPE_E_TYPEMISMATCH _HRESULT_TYPEDEF_(0x80028CA0L) 1712 #define TYPE_E_OUTOFBOUNDS _HRESULT_TYPEDEF_(0x80028CA1L) 1713 #define TYPE_E_IOERROR _HRESULT_TYPEDEF_(0x80028CA2L) 1714 #define TYPE_E_CANTCREATETMPFILE _HRESULT_TYPEDEF_(0x80028CA3L) 1715 #define TYPE_E_CANTLOADLIBRARY _HRESULT_TYPEDEF_(0x80029C4AL) 1716 #define TYPE_E_INCONSISTENTPROPFUNCS _HRESULT_TYPEDEF_(0x80029C83L) 1717 #define TYPE_E_CIRCULARTYPE _HRESULT_TYPEDEF_(0x80029C84L) 1718 1719 #define STG_S_CONVERTED _HRESULT_TYPEDEF_(0x00030200L) 1720 #define STG_S_BLOCK _HRESULT_TYPEDEF_(0x00030201L) 1721 #define STG_S_RETRYNOW _HRESULT_TYPEDEF_(0x00030202L) 1722 #define STG_S_MONITORING _HRESULT_TYPEDEF_(0x00030203L) 1723 #define STG_S_MULTIPLEOPENS _HRESULT_TYPEDEF_(0x00030204L) 1724 #define STG_S_CONSOLIDATIONFAILED _HRESULT_TYPEDEF_(0x00030205L) 1725 #define STG_S_CANNOTCONSOLIDATE _HRESULT_TYPEDEF_(0x00030206L) 1726 1727 #define STG_E_INVALIDFUNCTION _HRESULT_TYPEDEF_(0x80030001L) 1728 #define STG_E_FILENOTFOUND _HRESULT_TYPEDEF_(0x80030002L) 1729 #define STG_E_PATHNOTFOUND _HRESULT_TYPEDEF_(0x80030003L) 1730 #define STG_E_TOOMANYOPENFILES _HRESULT_TYPEDEF_(0x80030004L) 1731 #define STG_E_ACCESSDENIED _HRESULT_TYPEDEF_(0x80030005L) 1732 #define STG_E_INVALIDHANDLE _HRESULT_TYPEDEF_(0x80030006L) 1733 #define STG_E_INSUFFICIENTMEMORY _HRESULT_TYPEDEF_(0x80030008L) 1734 #define STG_E_INVALIDPOINTER _HRESULT_TYPEDEF_(0x80030009L) 1735 #define STG_E_NOMOREFILES _HRESULT_TYPEDEF_(0x80030012L) 1736 #define STG_E_DISKISWRITEPROTECTED _HRESULT_TYPEDEF_(0x80030013L) 1737 #define STG_E_SEEKERROR _HRESULT_TYPEDEF_(0x80030019L) 1738 #define STG_E_WRITEFAULT _HRESULT_TYPEDEF_(0x8003001DL) 1739 #define STG_E_READFAULT _HRESULT_TYPEDEF_(0x8003001EL) 1740 #define STG_E_SHAREVIOLATION _HRESULT_TYPEDEF_(0x80030020L) 1741 #define STG_E_LOCKVIOLATION _HRESULT_TYPEDEF_(0x80030021L) 1742 #define STG_E_FILEALREADYEXISTS _HRESULT_TYPEDEF_(0x80030050L) 1743 #define STG_E_INVALIDPARAMETER _HRESULT_TYPEDEF_(0x80030057L) 1744 #define STG_E_MEDIUMFULL _HRESULT_TYPEDEF_(0x80030070L) 1745 #define STG_E_ABNORMALAPIEXIT _HRESULT_TYPEDEF_(0x800300FAL) 1746 #define STG_E_INVALIDHEADER _HRESULT_TYPEDEF_(0x800300FBL) 1747 #define STG_E_INVALIDNAME _HRESULT_TYPEDEF_(0x800300FCL) 1748 #define STG_E_UNKNOWN _HRESULT_TYPEDEF_(0x800300FDL) 1749 #define STG_E_UNIMPLEMENTEDFUNCTION _HRESULT_TYPEDEF_(0x800300FEL) 1750 #define STG_E_INVALIDFLAG _HRESULT_TYPEDEF_(0x800300FFL) 1751 #define STG_E_INUSE _HRESULT_TYPEDEF_(0x80030100L) 1752 #define STG_E_NOTCURRENT _HRESULT_TYPEDEF_(0x80030101L) 1753 #define STG_E_REVERTED _HRESULT_TYPEDEF_(0x80030102L) 1754 #define STG_E_CANTSAVE _HRESULT_TYPEDEF_(0x80030103L) 1755 #define STG_E_OLDFORMAT _HRESULT_TYPEDEF_(0x80030104L) 1756 #define STG_E_OLDDLL _HRESULT_TYPEDEF_(0x80030105L) 1757 #define STG_E_SHAREREQUIRED _HRESULT_TYPEDEF_(0x80030106L) 1758 #define STG_E_NOTFILEBASEDSTORAGE _HRESULT_TYPEDEF_(0x80030107L) 1759 #define STG_E_EXTANTMARSHALLINGS _HRESULT_TYPEDEF_(0x80030108L) 1760 #define STG_E_DOCFILECORRUPT _HRESULT_TYPEDEF_(0x80030109L) 1761 1762 #define STG_E_STATUS_COPY_PROTECTION_FAILURE _HRESULT_TYPEDEF_(0x80030305L) 1763 #define STG_E_CSS_AUTHENTICATION_FAILURE _HRESULT_TYPEDEF_(0x80030306L) 1764 #define STG_E_CSS_KEY_NOT_PRESENT _HRESULT_TYPEDEF_(0x80030307L) 1765 #define STG_E_CSS_KEY_NOT_ESTABLISHED _HRESULT_TYPEDEF_(0x80030308L) 1766 #define STG_E_CSS_SCRAMBLED_SECTOR _HRESULT_TYPEDEF_(0x80030309L) 1767 #define STG_E_CSS_REGION_MISMATCH _HRESULT_TYPEDEF_(0x8003030AL) 1768 #define STG_E_RESETS_EXHAUSTED _HRESULT_TYPEDEF_(0x8003030BL) 1769 1770 #define OLE_S_FIRST _HRESULT_TYPEDEF_(0x00040000L) 1771 #define OLE_S_USEREG _HRESULT_TYPEDEF_(0x00040000L) 1772 #define OLE_S_STATIC _HRESULT_TYPEDEF_(0x00040001L) 1773 #define OLE_S_MAC_CLIPFORMAT _HRESULT_TYPEDEF_(0x00040002L) 1774 #define OLE_S_LAST _HRESULT_TYPEDEF_(0x000400FFL) 1775 1776 #define OLE_E_FIRST _HRESULT_TYPEDEF_(0x80040000L) 1777 #define OLE_E_OLEVERB _HRESULT_TYPEDEF_(0x80040000L) 1778 #define OLE_E_ADVF _HRESULT_TYPEDEF_(0x80040001L) 1779 #define OLE_E_ENUM_NOMORE _HRESULT_TYPEDEF_(0x80040002L) 1780 #define OLE_E_ADVISENOTSUPPORTED _HRESULT_TYPEDEF_(0x80040003L) 1781 #define OLE_E_NOCONNECTION _HRESULT_TYPEDEF_(0x80040004L) 1782 #define OLE_E_NOTRUNNING _HRESULT_TYPEDEF_(0x80040005L) 1783 #define OLE_E_NOCACHE _HRESULT_TYPEDEF_(0x80040006L) 1784 #define OLE_E_BLANK _HRESULT_TYPEDEF_(0x80040007L) 1785 #define OLE_E_CLASSDIFF _HRESULT_TYPEDEF_(0x80040008L) 1786 #define OLE_E_CANT_GETMONIKER _HRESULT_TYPEDEF_(0x80040009L) 1787 #define OLE_E_CANT_BINDTOSOURCE _HRESULT_TYPEDEF_(0x8004000AL) 1788 #define OLE_E_STATIC _HRESULT_TYPEDEF_(0x8004000BL) 1789 #define OLE_E_PROMPTSAVECANCELLED _HRESULT_TYPEDEF_(0x8004000CL) 1790 #define OLE_E_INVALIDRECT _HRESULT_TYPEDEF_(0x8004000DL) 1791 #define OLE_E_WRONGCOMPOBJ _HRESULT_TYPEDEF_(0x8004000EL) 1792 #define OLE_E_INVALIDHWND _HRESULT_TYPEDEF_(0x8004000FL) 1793 #define OLE_E_NOT_INPLACEACTIVE _HRESULT_TYPEDEF_(0x80040010L) 1794 #define OLE_E_CANTCONVERT _HRESULT_TYPEDEF_(0x80040011L) 1795 #define OLE_E_NOSTORAGE _HRESULT_TYPEDEF_(0x80040012L) 1796 #define DV_E_FORMATETC _HRESULT_TYPEDEF_(0x80040064L) 1797 #define DV_E_DVTARGETDEVICE _HRESULT_TYPEDEF_(0x80040065L) 1798 #define DV_E_STGMEDIUM _HRESULT_TYPEDEF_(0x80040066L) 1799 #define DV_E_STATDATA _HRESULT_TYPEDEF_(0x80040067L) 1800 #define DV_E_LINDEX _HRESULT_TYPEDEF_(0x80040068L) 1801 #define DV_E_TYMED _HRESULT_TYPEDEF_(0x80040069L) 1802 #define DV_E_CLIPFORMAT _HRESULT_TYPEDEF_(0x8004006AL) 1803 #define DV_E_DVASPECT _HRESULT_TYPEDEF_(0x8004006BL) 1804 #define DV_E_DVTARGETDEVICE_SIZE _HRESULT_TYPEDEF_(0x8004006CL) 1805 #define DV_E_NOIVIEWOBJECT _HRESULT_TYPEDEF_(0x8004006DL) 1806 #define OLE_E_LAST _HRESULT_TYPEDEF_(0x800400FFL) 1807 1808 #define DRAGDROP_S_FIRST _HRESULT_TYPEDEF_(0x00040100L) 1809 #define DRAGDROP_S_DROP _HRESULT_TYPEDEF_(0x00040100L) 1810 #define DRAGDROP_S_CANCEL _HRESULT_TYPEDEF_(0x00040101L) 1811 #define DRAGDROP_S_USEDEFAULTCURSORS _HRESULT_TYPEDEF_(0x00040102L) 1812 #define DRAGDROP_S_LAST _HRESULT_TYPEDEF_(0x0004010FL) 1813 1814 #define DRAGDROP_E_FIRST _HRESULT_TYPEDEF_(0x80040100L) 1815 #define DRAGDROP_E_NOTREGISTERED _HRESULT_TYPEDEF_(0x80040100L) 1816 #define DRAGDROP_E_ALREADYREGISTERED _HRESULT_TYPEDEF_(0x80040101L) 1817 #define DRAGDROP_E_INVALIDHWND _HRESULT_TYPEDEF_(0x80040102L) 1818 #define DRAGDROP_E_LAST _HRESULT_TYPEDEF_(0x8004010FL) 1819 1820 1821 #define CLASSFACTORY_S_FIRST _HRESULT_TYPEDEF_(0x00040110L) 1822 #define CLASSFACTORY_S_LAST _HRESULT_TYPEDEF_(0x0004011FL) 1823 1824 #define CLASSFACTORY_E_FIRST _HRESULT_TYPEDEF_(0x80040110L) 1825 #define CLASS_E_NOAGGREGATION _HRESULT_TYPEDEF_(0x80040110L) 1826 #define CLASS_E_CLASSNOTAVAILABLE _HRESULT_TYPEDEF_(0x80040111L) 1827 #define CLASS_E_NOTLICENSED _HRESULT_TYPEDEF_(0x80040112L) 1828 #define CLASSFACTORY_E_LAST _HRESULT_TYPEDEF_(0x8004011FL) 1829 1830 #define MARSHAL_S_FIRST _HRESULT_TYPEDEF_(0x00040120L) 1831 #define MARSHAL_S_LAST _HRESULT_TYPEDEF_(0x0004012FL) 1832 1833 #define MARSHAL_E_FIRST _HRESULT_TYPEDEF_(0x80040120L) 1834 #define MARSHAL_E_LAST _HRESULT_TYPEDEF_(0x8004012FL) 1835 1836 #define DATA_S_FIRST _HRESULT_TYPEDEF_(0x00040130L) 1837 #define DATA_S_SAMEFORMATETC _HRESULT_TYPEDEF_(0x00040130L) 1838 #define DATA_S_LAST _HRESULT_TYPEDEF_(0x0004013FL) 1839 1840 #define DATA_E_FIRST _HRESULT_TYPEDEF_(0x80040130L) 1841 #define DATA_E_LAST _HRESULT_TYPEDEF_(0x8004013FL) 1842 1843 #define VIEW_S_FIRST _HRESULT_TYPEDEF_(0x00040140L) 1844 #define VIEW_S_ALREADY_FROZEN _HRESULT_TYPEDEF_(0x00040140L) 1845 #define VIEW_S_LAST _HRESULT_TYPEDEF_(0x0004014FL) 1846 1847 #define VIEW_E_FIRST _HRESULT_TYPEDEF_(0x80040140L) 1848 #define VIEW_E_DRAW _HRESULT_TYPEDEF_(0x80040140L) 1849 #define VIEW_E_LAST _HRESULT_TYPEDEF_(0x8004014FL) 1850 1851 #define REGDB_S_FIRST _HRESULT_TYPEDEF_(0x00040150L) 1852 #define REGDB_S_LAST _HRESULT_TYPEDEF_(0x0004015FL) 1853 1854 #define REGDB_E_FIRST _HRESULT_TYPEDEF_(0x80040150L) 1855 #define REGDB_E_READREGDB _HRESULT_TYPEDEF_(0x80040150L) 1856 #define REGDB_E_WRITEREGDB _HRESULT_TYPEDEF_(0x80040151L) 1857 #define REGDB_E_KEYMISSING _HRESULT_TYPEDEF_(0x80040152L) 1858 #define REGDB_E_INVALIDVALUE _HRESULT_TYPEDEF_(0x80040153L) 1859 #define REGDB_E_CLASSNOTREG _HRESULT_TYPEDEF_(0x80040154L) 1860 #define REGDB_E_IIDNOTREG _HRESULT_TYPEDEF_(0x80040155L) 1861 #define REGDB_E_LAST _HRESULT_TYPEDEF_(0x8004015FL) 1862 1863 #define CAT_E_FIRST _HRESULT_TYPEDEF_(0x80040160L) 1864 #define CAT_E_CATIDNOEXIST _HRESULT_TYPEDEF_(0x80040160L) 1865 #define CAT_E_NODESCRIPTION _HRESULT_TYPEDEF_(0x80040161L) 1866 #define CAT_E_LAST _HRESULT_TYPEDEF_(0x80040161L) 1867 1868 #define CACHE_S_FIRST _HRESULT_TYPEDEF_(0x00040170L) 1869 #define CACHE_S_FORMATETC_NOTSUPPORTED _HRESULT_TYPEDEF_(0x00040170L) 1870 #define CACHE_S_SAMECACHE _HRESULT_TYPEDEF_(0x00040171L) 1871 #define CACHE_S_SOMECACHES_NOTUPDATED _HRESULT_TYPEDEF_(0x00040172L) 1872 #define CACHE_S_LAST _HRESULT_TYPEDEF_(0x0004017FL) 1873 1874 #define CACHE_E_FIRST _HRESULT_TYPEDEF_(0x80040170L) 1875 #define CACHE_E_NOCACHE_UPDATED _HRESULT_TYPEDEF_(0x80040170L) 1876 #define CACHE_E_LAST _HRESULT_TYPEDEF_(0x8004017FL) 1877 1878 #define OLEOBJ_S_FIRST _HRESULT_TYPEDEF_(0x00040180L) 1879 #define OLEOBJ_S_INVALIDVERB _HRESULT_TYPEDEF_(0x00040180L) 1880 #define OLEOBJ_S_CANNOT_DOVERB_NOW _HRESULT_TYPEDEF_(0x00040181L) 1881 #define OLEOBJ_S_INVALIDHWND _HRESULT_TYPEDEF_(0x00040182L) 1882 #define OLEOBJ_S_LAST _HRESULT_TYPEDEF_(0x0004018FL) 1883 1884 #define OLEOBJ_E_FIRST _HRESULT_TYPEDEF_(0x80040180L) 1885 #define OLEOBJ_E_NOVERBS _HRESULT_TYPEDEF_(0x80040180L) 1886 #define OLEOBJ_E_INVALIDVERB _HRESULT_TYPEDEF_(0x80040181L) 1887 #define OLEOBJ_E_LAST _HRESULT_TYPEDEF_(0x8004018FL) 1888 1889 #define CLIENTSITE_S_FIRST _HRESULT_TYPEDEF_(0x00040190L) 1890 #define CLIENTSITE_S_LAST _HRESULT_TYPEDEF_(0x0004019FL) 1891 1892 #define CLIENTSITE_E_FIRST _HRESULT_TYPEDEF_(0x80040190L) 1893 #define CLIENTSITE_E_LAST _HRESULT_TYPEDEF_(0x8004019FL) 1894 1895 #define INPLACE_S_FIRST _HRESULT_TYPEDEF_(0x000401A0L) 1896 #define INPLACE_S_TRUNCATED _HRESULT_TYPEDEF_(0x000401A0L) 1897 #define INPLACE_S_LAST _HRESULT_TYPEDEF_(0x000401AFL) 1898 1899 #define INPLACE_E_FIRST _HRESULT_TYPEDEF_(0x800401A0L) 1900 #define INPLACE_E_NOTUNDOABLE _HRESULT_TYPEDEF_(0x800401A0L) 1901 #define INPLACE_E_NOTOOLSPACE _HRESULT_TYPEDEF_(0x800401A1L) 1902 #define INPLACE_E_LAST _HRESULT_TYPEDEF_(0x800401AFL) 1903 1904 #define ENUM_S_FIRST _HRESULT_TYPEDEF_(0x000401B0L) 1905 #define ENUM_S_LAST _HRESULT_TYPEDEF_(0x000401BFL) 1906 1907 #define ENUM_E_FIRST _HRESULT_TYPEDEF_(0x800401B0L) 1908 #define ENUM_E_LAST _HRESULT_TYPEDEF_(0x800401BFL) 1909 1910 #define CONVERT10_S_FIRST _HRESULT_TYPEDEF_(0x000401C0L) 1911 #define CONVERT10_S_NO_PRESENTATION _HRESULT_TYPEDEF_(0x000401C0L) 1912 #define CONVERT10_S_LAST _HRESULT_TYPEDEF_(0x000401CFL) 1913 1914 #define CONVERT10_E_FIRST _HRESULT_TYPEDEF_(0x800401C0L) 1915 #define CONVERT10_E_OLESTREAM_GET _HRESULT_TYPEDEF_(0x800401C0L) 1916 #define CONVERT10_E_OLESTREAM_PUT _HRESULT_TYPEDEF_(0x800401C1L) 1917 #define CONVERT10_E_OLESTREAM_FMT _HRESULT_TYPEDEF_(0x800401C2L) 1918 #define CONVERT10_E_OLESTREAM_BITMAP_TO_DIB _HRESULT_TYPEDEF_(0x800401C3L) 1919 #define CONVERT10_E_STG_FMT _HRESULT_TYPEDEF_(0x800401C4L) 1920 #define CONVERT10_E_STG_NO_STD_STREAM _HRESULT_TYPEDEF_(0x800401C5L) 1921 #define CONVERT10_E_STG_DIB_TO_BITMAP _HRESULT_TYPEDEF_(0x800401C6L) 1922 #define CONVERT10_E_LAST _HRESULT_TYPEDEF_(0x800401CFL) 1923 1924 #define CLIPBRD_S_FIRST _HRESULT_TYPEDEF_(0x000401D0L) 1925 #define CLIPBRD_S_LAST _HRESULT_TYPEDEF_(0x000401DFL) 1926 1927 #define CLIPBRD_E_FIRST _HRESULT_TYPEDEF_(0x800401D0L) 1928 #define CLIPBRD_E_LAST _HRESULT_TYPEDEF_(0x800401DFL) 1929 #define CLIPBRD_E_CANT_OPEN _HRESULT_TYPEDEF_(0x800401D0L) 1930 #define CLIPBRD_E_CANT_EMPTY _HRESULT_TYPEDEF_(0x800401D1L) 1931 #define CLIPBRD_E_CANT_SET _HRESULT_TYPEDEF_(0x800401D2L) 1932 #define CLIPBRD_E_BAD_DATA _HRESULT_TYPEDEF_(0x800401D3L) 1933 #define CLIPBRD_E_CANT_CLOSE _HRESULT_TYPEDEF_(0x800401D4L) 1934 1935 #define MK_S_FIRST _HRESULT_TYPEDEF_(0x000401E0L) 1936 #define MK_S_REDUCED_TO_SELF _HRESULT_TYPEDEF_(0x000401E2L) 1937 #define MK_S_ME _HRESULT_TYPEDEF_(0x000401E4L) 1938 #define MK_S_HIM _HRESULT_TYPEDEF_(0x000401E5L) 1939 #define MK_S_US _HRESULT_TYPEDEF_(0x000401E6L) 1940 #define MK_S_MONIKERALREADYREGISTERED _HRESULT_TYPEDEF_(0x000401E7L) 1941 #define MK_S_LAST _HRESULT_TYPEDEF_(0x000401EFL) 1942 1943 #define MK_E_FIRST _HRESULT_TYPEDEF_(0x800401E0L) 1944 #define MK_E_CONNECTMANUALLY _HRESULT_TYPEDEF_(0x800401E0L) 1945 #define MK_E_EXCEEDEDDEADLINE _HRESULT_TYPEDEF_(0x800401E1L) 1946 #define MK_E_NEEDGENERIC _HRESULT_TYPEDEF_(0x800401E2L) 1947 #define MK_E_UNAVAILABLE _HRESULT_TYPEDEF_(0x800401E3L) 1948 #define MK_E_SYNTAX _HRESULT_TYPEDEF_(0x800401E4L) 1949 #define MK_E_NOOBJECT _HRESULT_TYPEDEF_(0x800401E5L) 1950 #define MK_E_INVALIDEXTENSION _HRESULT_TYPEDEF_(0x800401E6L) 1951 #define MK_E_INTERMEDIATEINTERFACENOTSUPPORTED _HRESULT_TYPEDEF_(0x800401E7L) 1952 #define MK_E_NOTBINDABLE _HRESULT_TYPEDEF_(0x800401E8L) 1953 #define MK_E_NOTBOUND _HRESULT_TYPEDEF_(0x800401E9L) 1954 #define MK_E_CANTOPENFILE _HRESULT_TYPEDEF_(0x800401EAL) 1955 #define MK_E_MUSTBOTHERUSER _HRESULT_TYPEDEF_(0x800401EBL) 1956 #define MK_E_NOINVERSE _HRESULT_TYPEDEF_(0x800401ECL) 1957 #define MK_E_NOSTORAGE _HRESULT_TYPEDEF_(0x800401EDL) 1958 #define MK_E_NOPREFIX _HRESULT_TYPEDEF_(0x800401EEL) 1959 #define MK_E_ENUMERATION_FAILED _HRESULT_TYPEDEF_(0x800401EFL) 1960 #define MK_E_LAST _HRESULT_TYPEDEF_(0x800401EFL) 1961 1962 #define CO_S_FIRST _HRESULT_TYPEDEF_(0x000401F0L) 1963 #define CO_S_LAST _HRESULT_TYPEDEF_(0x000401FFL) 1964 1965 #define CO_E_FIRST _HRESULT_TYPEDEF_(0x800401F0L) 1966 #define CO_E_NOTINITIALIZED _HRESULT_TYPEDEF_(0x800401F0L) 1967 #define CO_E_ALREADYINITIALIZED _HRESULT_TYPEDEF_(0x800401F1L) 1968 #define CO_E_CANTDETERMINECLASS _HRESULT_TYPEDEF_(0x800401F2L) 1969 #define CO_E_CLASSSTRING _HRESULT_TYPEDEF_(0x800401F3L) 1970 #define CO_E_IIDSTRING _HRESULT_TYPEDEF_(0x800401F4L) 1971 #define CO_E_APPNOTFOUND _HRESULT_TYPEDEF_(0x800401F5L) 1972 #define CO_E_APPSINGLEUSE _HRESULT_TYPEDEF_(0x800401F6L) 1973 #define CO_E_ERRORINAPP _HRESULT_TYPEDEF_(0x800401F7L) 1974 #define CO_E_DLLNOTFOUND _HRESULT_TYPEDEF_(0x800401F8L) 1975 #define CO_E_ERRORINDLL _HRESULT_TYPEDEF_(0x800401F9L) 1976 #define CO_E_WRONGOSFORAPP _HRESULT_TYPEDEF_(0x800401FAL) 1977 #define CO_E_OBJNOTREG _HRESULT_TYPEDEF_(0x800401FBL) 1978 #define CO_E_OBJISREG _HRESULT_TYPEDEF_(0x800401FCL) 1979 #define CO_E_OBJNOTCONNECTED _HRESULT_TYPEDEF_(0x800401FDL) 1980 #define CO_E_APPDIDNTREG _HRESULT_TYPEDEF_(0x800401FEL) 1981 #define CO_E_RELEASED _HRESULT_TYPEDEF_(0x800401FFL) 1982 #define CO_E_LAST _HRESULT_TYPEDEF_(0x800401FFL) 1983 #define CO_E_FAILEDTOIMPERSONATE _HRESULT_TYPEDEF_(0x80040200L) 1984 #define CO_E_FAILEDTOGETSECCTX _HRESULT_TYPEDEF_(0x80040201L) 1985 #define CO_E_FAILEDTOOPENTHREADTOKEN _HRESULT_TYPEDEF_(0x80040202L) 1986 #define CO_E_FAILEDTOGETTOKENINFO _HRESULT_TYPEDEF_(0x80040203L) 1987 #define CO_E_TRUSTEEDOESNTMATCHCLIENT _HRESULT_TYPEDEF_(0x80040204L) 1988 #define CO_E_FAILEDTOQUERYCLIENTBLANKET _HRESULT_TYPEDEF_(0x80040205L) 1989 #define CO_E_FAILEDTOSETDACL _HRESULT_TYPEDEF_(0x80040206L) 1990 #define CO_E_ACCESSCHECKFAILED _HRESULT_TYPEDEF_(0x80040207L) 1991 #define CO_E_NETACCESSAPIFAILED _HRESULT_TYPEDEF_(0x80040208L) 1992 #define CO_E_WRONGTRUSTEENAMESYNTAX _HRESULT_TYPEDEF_(0x80040209L) 1993 #define CO_E_INVALIDSID _HRESULT_TYPEDEF_(0x8004020AL) 1994 #define CO_E_CONVERSIONFAILED _HRESULT_TYPEDEF_(0x8004020BL) 1995 #define CO_E_NOMATCHINGSIDFOUND _HRESULT_TYPEDEF_(0x8004020CL) 1996 #define CO_E_LOOKUPACCSIDFAILED _HRESULT_TYPEDEF_(0x8004020DL) 1997 #define CO_E_NOMATCHINGNAMEFOUND _HRESULT_TYPEDEF_(0x8004020EL) 1998 #define CO_E_LOOKUPACCNAMEFAILED _HRESULT_TYPEDEF_(0x8004020FL) 1999 #define CO_E_SETSERLHNDLFAILED _HRESULT_TYPEDEF_(0x80040210L) 2000 #define CO_E_FAILEDTOGETWINDIR _HRESULT_TYPEDEF_(0x80040211L) 2001 #define CO_E_PATHTOOLONG _HRESULT_TYPEDEF_(0x80040212L) 2002 #define CO_E_FAILEDTOGENUUID _HRESULT_TYPEDEF_(0x80040213L) 2003 #define CO_E_FAILEDTOCREATEFILE _HRESULT_TYPEDEF_(0x80040214L) 2004 #define CO_E_FAILEDTOCLOSEHANDLE _HRESULT_TYPEDEF_(0x80040215L) 2005 #define CO_E_EXCEEDSYSACLLIMIT _HRESULT_TYPEDEF_(0x80040216L) 2006 #define CO_E_ACESINWRONGORDER _HRESULT_TYPEDEF_(0x80040217L) 2007 #define CO_E_INCOMPATIBLESTREAMVERSION _HRESULT_TYPEDEF_(0x80040218L) 2008 #define CO_E_FAILEDTOOPENPROCESSTOKEN _HRESULT_TYPEDEF_(0x80040219L) 2009 #define CO_E_DECODEFAILED _HRESULT_TYPEDEF_(0x8004021AL) 2010 #define CO_E_ACNOTINITIALIZED _HRESULT_TYPEDEF_(0x8004021BL) 2011 2012 /* Task Scheduler Service Error Codes */ 2013 #define SCHED_S_TASK_READY _HRESULT_TYPEDEF_(0x00041300L) 2014 #define SCHED_S_TASK_RUNNING _HRESULT_TYPEDEF_(0x00041301L) 2015 #define SCHED_S_TASK_DISABLED _HRESULT_TYPEDEF_(0x00041302L) 2016 #define SCHED_S_TASK_HAS_NOT_RUN _HRESULT_TYPEDEF_(0x00041303L) 2017 #define SCHED_S_TASK_NO_MORE_RUNS _HRESULT_TYPEDEF_(0x00041304L) 2018 #define SCHED_S_TASK_NOT_SCHEDULED _HRESULT_TYPEDEF_(0x00041305L) 2019 #define SCHED_S_TASK_TERMINATED _HRESULT_TYPEDEF_(0x00041306L) 2020 #define SCHED_S_TASK_NO_VALID_TRIGGERS _HRESULT_TYPEDEF_(0x00041307L) 2021 #define SCHED_S_EVENT_TRIGGER _HRESULT_TYPEDEF_(0x00041308L) 2022 #define SCHED_E_TRIGGER_NOT_FOUND _HRESULT_TYPEDEF_(0x80041309L) 2023 #define SCHED_E_TASK_NOT_READY _HRESULT_TYPEDEF_(0x8004130AL) 2024 #define SCHED_E_TASK_NOT_RUNNING _HRESULT_TYPEDEF_(0x8004130BL) 2025 #define SCHED_E_SERVICE_NOT_INSTALLED _HRESULT_TYPEDEF_(0x8004130CL) 2026 #define SCHED_E_CANNOT_OPEN_TASK _HRESULT_TYPEDEF_(0x8004130DL) 2027 #define SCHED_E_INVALID_TASK _HRESULT_TYPEDEF_(0x8004130EL) 2028 #define SCHED_E_ACCOUNT_INFORMATION_NOT_SET _HRESULT_TYPEDEF_(0x8004130FL) 2029 #define SCHED_E_ACCOUNT_NAME_NOT_FOUND _HRESULT_TYPEDEF_(0x80041310L) 2030 #define SCHED_E_ACCOUNT_DBASE_CORRUPT _HRESULT_TYPEDEF_(0x80041311L) 2031 #define SCHED_E_NO_SECURITY_SERVICES _HRESULT_TYPEDEF_(0x80041312L) 2032 #define SCHED_E_UNKNOWN_OBJECT_VERSION _HRESULT_TYPEDEF_(0x80041313L) 2033 #define SCHED_E_UNSUPPORTED_ACCOUNT_OPTION _HRESULT_TYPEDEF_(0x80041314L) 2034 #define SCHED_E_SERVICE_NOT_RUNNING _HRESULT_TYPEDEF_(0x80041315L) 2035 #define SCHED_E_UNEXPECTEDNODE _HRESULT_TYPEDEF_(0x80041316L) 2036 #define SCHED_E_NAMESPACE _HRESULT_TYPEDEF_(0x80041317L) 2037 #define SCHED_E_INVALIDVALUE _HRESULT_TYPEDEF_(0x80041318L) 2038 #define SCHED_E_MISSINGNODE _HRESULT_TYPEDEF_(0x80041319L) 2039 #define SCHED_E_MALFORMEDXML _HRESULT_TYPEDEF_(0x8004131AL) 2040 #define SCHED_S_SOME_TRIGGERS_FAILED _HRESULT_TYPEDEF_(0x0004131BL) 2041 #define SCHED_S_BATCH_LOGON_PROBLEM _HRESULT_TYPEDEF_(0x0004131CL) 2042 #define SCHED_E_TOO_MANY_NODES _HRESULT_TYPEDEF_(0x8004131DL) 2043 #define SCHED_E_PAST_END_BOUNDARY _HRESULT_TYPEDEF_(0x8004131EL) 2044 #define SCHED_E_ALREADY_RUNNING _HRESULT_TYPEDEF_(0x8004131FL) 2045 #define SCHED_E_USER_NOT_LOGGED_ON _HRESULT_TYPEDEF_(0x80041320L) 2046 #define SCHED_E_INVALID_TASK_HASH _HRESULT_TYPEDEF_(0x80041321L) 2047 #define SCHED_E_SERVICE_NOT_AVAILABLE _HRESULT_TYPEDEF_(0x80041322L) 2048 #define SCHED_E_SERVICE_TOO_BUSY _HRESULT_TYPEDEF_(0x80041323L) 2049 #define SCHED_E_TASK_ATTEMPTED _HRESULT_TYPEDEF_(0x80041324L) 2050 #define SCHED_S_TASK_QUEUED _HRESULT_TYPEDEF_(0x00041325L) 2051 #define SCHED_E_TASK_DISABLED _HRESULT_TYPEDEF_(0x80041326L) 2052 #define SCHED_E_TASK_NOT_V1_COMPAT _HRESULT_TYPEDEF_(0x80041327L) 2053 #define SCHED_E_START_ON_DEMAND _HRESULT_TYPEDEF_(0x80041328L) 2054 2055 #define E_ACCESSDENIED _HRESULT_TYPEDEF_(0x80070005L) 2056 #define E_HANDLE _HRESULT_TYPEDEF_(0x80070006L) 2057 #define E_OUTOFMEMORY _HRESULT_TYPEDEF_(0x8007000EL) 2058 #define E_INVALIDARG _HRESULT_TYPEDEF_(0x80070057L) 2059 2060 #define CO_S_NOTALLINTERFACES _HRESULT_TYPEDEF_(0x00080012L) 2061 2062 #define CO_E_CLASS_CREATE_FAILED _HRESULT_TYPEDEF_(0x80080001L) 2063 #define CO_E_SCM_ERROR _HRESULT_TYPEDEF_(0x80080002L) 2064 #define CO_E_SCM_RPC_FAILURE _HRESULT_TYPEDEF_(0x80080003L) 2065 #define CO_E_BAD_PATH _HRESULT_TYPEDEF_(0x80080004L) 2066 #define CO_E_SERVER_EXEC_FAILURE _HRESULT_TYPEDEF_(0x80080005L) 2067 #define CO_E_OBJSRV_RPC_FAILURE _HRESULT_TYPEDEF_(0x80080006L) 2068 #define MK_E_NO_NORMALIZED _HRESULT_TYPEDEF_(0x80080007L) 2069 #define CO_E_SERVER_STOPPING _HRESULT_TYPEDEF_(0x80080008L) 2070 #define MEM_E_INVALID_ROOT _HRESULT_TYPEDEF_(0x80080009L) 2071 #define MEM_E_INVALID_LINK _HRESULT_TYPEDEF_(0x80080010L) 2072 #define MEM_E_INVALID_SIZE _HRESULT_TYPEDEF_(0x80080011L) 2073 2074 /*Cryptographic Error Codes */ 2075 #define NTE_BAD_UID _HRESULT_TYPEDEF_(0x80090001L) 2076 #define NTE_BAD_HASH _HRESULT_TYPEDEF_(0x80090002L) 2077 #define NTE_BAD_KEY _HRESULT_TYPEDEF_(0x80090003L) 2078 #define NTE_BAD_LEN _HRESULT_TYPEDEF_(0x80090004L) 2079 #define NTE_BAD_DATA _HRESULT_TYPEDEF_(0x80090005L) 2080 #define NTE_BAD_SIGNATURE _HRESULT_TYPEDEF_(0x80090006L) 2081 #define NTE_BAD_VER _HRESULT_TYPEDEF_(0x80090007L) 2082 #define NTE_BAD_ALGID _HRESULT_TYPEDEF_(0x80090008L) 2083 #define NTE_BAD_FLAGS _HRESULT_TYPEDEF_(0x80090009L) 2084 #define NTE_BAD_TYPE _HRESULT_TYPEDEF_(0x8009000AL) 2085 #define NTE_BAD_KEY_STATE _HRESULT_TYPEDEF_(0x8009000BL) 2086 #define NTE_BAD_HASH_STATE _HRESULT_TYPEDEF_(0x8009000CL) 2087 #define NTE_NO_KEY _HRESULT_TYPEDEF_(0x8009000DL) 2088 #define NTE_NO_MEMORY _HRESULT_TYPEDEF_(0x8009000EL) 2089 #define NTE_EXISTS _HRESULT_TYPEDEF_(0x8009000FL) 2090 #define NTE_PERM _HRESULT_TYPEDEF_(0x80090010L) 2091 #define NTE_NOT_FOUND _HRESULT_TYPEDEF_(0x80090011L) 2092 #define NTE_DOUBLE_ENCRYPT _HRESULT_TYPEDEF_(0x80090012L) 2093 #define NTE_BAD_PROVIDER _HRESULT_TYPEDEF_(0x80090013L) 2094 #define NTE_BAD_PROV_TYPE _HRESULT_TYPEDEF_(0x80090014L) 2095 #define NTE_BAD_PUBLIC_KEY _HRESULT_TYPEDEF_(0x80090015L) 2096 #define NTE_BAD_KEYSET _HRESULT_TYPEDEF_(0x80090016L) 2097 #define NTE_PROV_TYPE_NOT_DEF _HRESULT_TYPEDEF_(0x80090017L) 2098 #define NTE_PROV_TYPE_ENTRY_BAD _HRESULT_TYPEDEF_(0x80090018L) 2099 #define NTE_KEYSET_NOT_DEF _HRESULT_TYPEDEF_(0x80090019L) 2100 #define NTE_KEYSET_ENTRY_BAD _HRESULT_TYPEDEF_(0x8009001AL) 2101 #define NTE_PROV_TYPE_NO_MATCH _HRESULT_TYPEDEF_(0x8009001BL) 2102 #define NTE_SIGNATURE_FILE_BAD _HRESULT_TYPEDEF_(0x8009001CL) 2103 #define NTE_PROVIDER_DLL_FAIL _HRESULT_TYPEDEF_(0x8009001DL) 2104 #define NTE_PROV_DLL_NOT_FOUND _HRESULT_TYPEDEF_(0x8009001EL) 2105 #define NTE_BAD_KEYSET_PARAM _HRESULT_TYPEDEF_(0x8009001FL) 2106 #define NTE_FAIL _HRESULT_TYPEDEF_(0x80090020L) 2107 #define NTE_SYS_ERR _HRESULT_TYPEDEF_(0x80090021L) 2108 #define NTE_OP_OK _HRESULT_TYPEDEF_(0) 2109 2110 #define SEC_E_INSUFFICIENT_MEMORY _HRESULT_TYPEDEF_(0x80090300L) 2111 #define SEC_E_INVALID_HANDLE _HRESULT_TYPEDEF_(0x80090301L) 2112 #define SEC_E_UNSUPPORTED_FUNCTION _HRESULT_TYPEDEF_(0x80090302L) 2113 #define SEC_E_TARGET_UNKNOWN _HRESULT_TYPEDEF_(0x80090303L) 2114 #define SEC_E_INTERNAL_ERROR _HRESULT_TYPEDEF_(0x80090304L) 2115 #define SEC_E_SECPKG_NOT_FOUND _HRESULT_TYPEDEF_(0x80090305L) 2116 #define SEC_E_NOT_OWNER _HRESULT_TYPEDEF_(0x80090306L) 2117 #define SEC_E_CANNOT_INSTALL _HRESULT_TYPEDEF_(0x80090307L) 2118 #define SEC_E_INVALID_TOKEN _HRESULT_TYPEDEF_(0x80090308L) 2119 #define SEC_E_CANNOT_PACK _HRESULT_TYPEDEF_(0x80090309L) 2120 #define SEC_E_QOP_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x8009030AL) 2121 #define SEC_E_NO_IMPERSONATION _HRESULT_TYPEDEF_(0x8009030BL) 2122 #define SEC_E_LOGON_DENIED _HRESULT_TYPEDEF_(0x8009030CL) 2123 #define SEC_E_UNKNOWN_CREDENTIALS _HRESULT_TYPEDEF_(0x8009030DL) 2124 #define SEC_E_NO_CREDENTIALS _HRESULT_TYPEDEF_(0x8009030EL) 2125 #define SEC_E_MESSAGE_ALTERED _HRESULT_TYPEDEF_(0x8009030FL) 2126 #define SEC_E_OUT_OF_SEQUENCE _HRESULT_TYPEDEF_(0x80090310L) 2127 #define SEC_E_NO_AUTHENTICATING_AUTHORITY _HRESULT_TYPEDEF_(0x80090311L) 2128 #define SEC_I_CONTINUE_NEEDED _HRESULT_TYPEDEF_(0x00090312L) 2129 #define SEC_I_COMPLETE_NEEDED _HRESULT_TYPEDEF_(0x00090313L) 2130 #define SEC_I_COMPLETE_AND_CONTINUE _HRESULT_TYPEDEF_(0x00090314L) 2131 #define SEC_E_BAD_PKGID _HRESULT_TYPEDEF_(0x80090316L) 2132 #define SEC_E_CONTEXT_EXPIRED _HRESULT_TYPEDEF_(0x80090317L) 2133 #define SEC_E_INCOMPLETE_MESSAGE _HRESULT_TYPEDEF_(0x80090318L) 2134 #define SEC_E_INCOMPLETE_CREDENTIALS _HRESULT_TYPEDEF_(0x80090320L) 2135 #define SEC_E_BUFFER_TOO_SMALL _HRESULT_TYPEDEF_(0x80090321L) 2136 #define SEC_E_WRONG_PRINCIPAL _HRESULT_TYPEDEF_(0x80090322L) 2137 #define SEC_E_TIME_SKEW _HRESULT_TYPEDEF_(0x80090324L) 2138 #define SEC_E_UNTRUSTED_ROOT _HRESULT_TYPEDEF_(0x80090325L) 2139 #define SEC_E_ILLEGAL_MESSAGE _HRESULT_TYPEDEF_(0x80090326L) 2140 #define SEC_E_CERT_UNKNOWN _HRESULT_TYPEDEF_(0x80090327L) 2141 #define SEC_E_CERT_EXPIRED _HRESULT_TYPEDEF_(0x80090328L) 2142 #define SEC_E_ENCRYPT_FAILURE _HRESULT_TYPEDEF_(0x80090329L) 2143 #define SEC_E_DECRYPT_FAILURE _HRESULT_TYPEDEF_(0x80090330L) 2144 #define SEC_E_ALGORITHM_MISMATCH _HRESULT_TYPEDEF_(0x80090331L) 2145 #define SEC_E_SECURITY_QOS_FAILED _HRESULT_TYPEDEF_(0x80090332L) 2146 #define SEC_E_UNFINISHED_CONTEXT_DELETED _HRESULT_TYPEDEF_(0x80090333L) 2147 #define SEC_E_NO_TGT_REPLY _HRESULT_TYPEDEF_(0x80090334L) 2148 #define SEC_E_NO_IP_ADDRESSES _HRESULT_TYPEDEF_(0x80090335L) 2149 #define SEC_E_WRONG_CREDENTIAL_HANDLE _HRESULT_TYPEDEF_(0x80090336L) 2150 #define SEC_E_CRYPTO_SYSTEM_INVALID _HRESULT_TYPEDEF_(0x80090337L) 2151 #define SEC_E_MAX_REFERRALS_EXCEEDED _HRESULT_TYPEDEF_(0x80090338L) 2152 #define SEC_E_MUST_BE_KDC _HRESULT_TYPEDEF_(0x80090339L) 2153 #define SEC_E_STRONG_CRYPTO_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x8009033AL) 2154 #define SEC_E_TOO_MANY_PRINCIPALS _HRESULT_TYPEDEF_(0x8009033BL) 2155 #define SEC_E_NO_PA_DATA _HRESULT_TYPEDEF_(0x8009033CL) 2156 #define SEC_E_PKINIT_NAME_MISMATCH _HRESULT_TYPEDEF_(0x8009033DL) 2157 #define SEC_E_SMARTCARD_LOGON_REQUIRED _HRESULT_TYPEDEF_(0x8009033EL) 2158 #define SEC_E_SHUTDOWN_IN_PROGRESS _HRESULT_TYPEDEF_(0x8009033FL) 2159 #define SEC_E_KDC_INVALID_REQUEST _HRESULT_TYPEDEF_(0x80090340L) 2160 #define SEC_E_KDC_UNABLE_TO_REFER _HRESULT_TYPEDEF_(0x80090341L) 2161 #define SEC_E_KDC_UNKNOWN_ETYPE _HRESULT_TYPEDEF_(0x80090342L) 2162 #define SEC_E_UNSUPPORTED_PREAUTH _HRESULT_TYPEDEF_(0x80090343L) 2163 #define SEC_E_DELEGATION_REQUIRED _HRESULT_TYPEDEF_(0x80090345L) 2164 #define SEC_E_BAD_BINDINGS _HRESULT_TYPEDEF_(0x80090346L) 2165 #define SEC_E_MULTIPLE_ACCOUNTS _HRESULT_TYPEDEF_(0x80090347L) 2166 #define SEC_E_NO_KERB_KEY _HRESULT_TYPEDEF_(0x80090348L) 2167 #define SEC_E_CERT_WRONG_USAGE _HRESULT_TYPEDEF_(0x80090349L) 2168 #define SEC_E_DOWNGRADE_DETECTED _HRESULT_TYPEDEF_(0x80090350L) 2169 #define SEC_E_SMARTCARD_CERT_REVOKED _HRESULT_TYPEDEF_(0x80090351L) 2170 #define SEC_E_ISSUING_CA_UNTRUSTED _HRESULT_TYPEDEF_(0x80090352L) 2171 #define SEC_E_REVOCATION_OFFLINE_C _HRESULT_TYPEDEF_(0x80090353L) 2172 #define SEC_E_PKINIT_CLIENT_FAILURE _HRESULT_TYPEDEF_(0x80090354L) 2173 #define SEC_E_SMARTCARD_CERT_EXPIRED _HRESULT_TYPEDEF_(0x80090355L) 2174 #define SEC_E_NO_S4U_PROT_SUPPORT _HRESULT_TYPEDEF_(0x80090356L) 2175 #define SEC_E_CROSSREALM_DELEGATION_FAILURE _HRESULT_TYPEDEF_(0x80090357L) 2176 #define SEC_E_REVOCATION_OFFLINE_KDC _HRESULT_TYPEDEF_(0x80090358L) 2177 #define SEC_E_ISSUING_CA_UNTRUSTED_KDC _HRESULT_TYPEDEF_(0x80090359L) 2178 #define SEC_E_KDC_CERT_EXPIRED _HRESULT_TYPEDEF_(0x8009035AL) 2179 #define SEC_E_KDC_CERT_REVOKED _HRESULT_TYPEDEF_(0x8009035BL) 2180 2181 #define CRYPT_E_MSG_ERROR _HRESULT_TYPEDEF_(0x80091001L) 2182 #define CRYPT_E_UNKNOWN_ALGO _HRESULT_TYPEDEF_(0x80091002L) 2183 #define CRYPT_E_OID_FORMAT _HRESULT_TYPEDEF_(0x80091003L) 2184 #define CRYPT_E_INVALID_MSG_TYPE _HRESULT_TYPEDEF_(0x80091004L) 2185 #define CRYPT_E_UNEXPECTED_ENCODING _HRESULT_TYPEDEF_(0x80091005L) 2186 #define CRYPT_E_AUTH_ATTR_MISSING _HRESULT_TYPEDEF_(0x80091006L) 2187 #define CRYPT_E_HASH_VALUE _HRESULT_TYPEDEF_(0x80091007L) 2188 #define CRYPT_E_INVALID_INDEX _HRESULT_TYPEDEF_(0x80091008L) 2189 #define CRYPT_E_ALREADY_DECRYPTED _HRESULT_TYPEDEF_(0x80091009L) 2190 #define CRYPT_E_NOT_DECRYPTED _HRESULT_TYPEDEF_(0x8009100AL) 2191 #define CRYPT_E_RECIPIENT_NOT_FOUND _HRESULT_TYPEDEF_(0x8009100BL) 2192 #define CRYPT_E_CONTROL_TYPE _HRESULT_TYPEDEF_(0x8009100CL) 2193 #define CRYPT_E_ISSUER_SERIALNUMBER _HRESULT_TYPEDEF_(0x8009100DL) 2194 #define CRYPT_E_SIGNER_NOT_FOUND _HRESULT_TYPEDEF_(0x8009100EL) 2195 #define CRYPT_E_ATTRIBUTES_MISSING _HRESULT_TYPEDEF_(0x8009100FL) 2196 #define CRYPT_E_STREAM_MSG_NOT_READY _HRESULT_TYPEDEF_(0x80091010L) 2197 #define CRYPT_E_STREAM_INSUFFICIENT_DATA _HRESULT_TYPEDEF_(0x80091011L) 2198 #define CRYPT_I_NEW_PROTECTION_REQUIRED _HRESULT_TYPEDEF_(0x80091012L) 2199 2200 #define CRYPT_E_BAD_LEN _HRESULT_TYPEDEF_(0x80092001L) 2201 #define CRYPT_E_BAD_ENCODE _HRESULT_TYPEDEF_(0x80092002L) 2202 #define CRYPT_E_FILE_ERROR _HRESULT_TYPEDEF_(0x80092003L) 2203 #define CRYPT_E_NOT_FOUND _HRESULT_TYPEDEF_(0x80092004L) 2204 #define CRYPT_E_EXISTS _HRESULT_TYPEDEF_(0x80092005L) 2205 #define CRYPT_E_NO_PROVIDER _HRESULT_TYPEDEF_(0x80092006L) 2206 #define CRYPT_E_SELF_SIGNED _HRESULT_TYPEDEF_(0x80092007L) 2207 #define CRYPT_E_DELETED_PREV _HRESULT_TYPEDEF_(0x80092008L) 2208 #define CRYPT_E_NO_MATCH _HRESULT_TYPEDEF_(0x80092009L) 2209 #define CRYPT_E_UNEXPECTED_MSG_TYPE _HRESULT_TYPEDEF_(0x8009200AL) 2210 #define CRYPT_E_NO_KEY_PROPERTY _HRESULT_TYPEDEF_(0x8009200BL) 2211 #define CRYPT_E_NO_DECRYPT_CERT _HRESULT_TYPEDEF_(0x8009200CL) 2212 #define CRYPT_E_BAD_MSG _HRESULT_TYPEDEF_(0x8009200DL) 2213 #define CRYPT_E_NO_SIGNER _HRESULT_TYPEDEF_(0x8009200EL) 2214 #define CRYPT_E_PENDING_CLOSE _HRESULT_TYPEDEF_(0x8009200FL) 2215 #define CRYPT_E_REVOKED _HRESULT_TYPEDEF_(0x80092010L) 2216 #define CRYPT_E_NO_REVOCATION_DLL _HRESULT_TYPEDEF_(0x80092011L) 2217 #define CRYPT_E_NO_REVOCATION_CHECK _HRESULT_TYPEDEF_(0x80092012L) 2218 #define CRYPT_E_REVOCATION_OFFLINE _HRESULT_TYPEDEF_(0x80092013L) 2219 #define CRYPT_E_NOT_IN_REVOCATION_DATABASE _HRESULT_TYPEDEF_(0x80092014L) 2220 #define CRYPT_E_INVALID_NUMERIC_STRING _HRESULT_TYPEDEF_(0x80092020L) 2221 #define CRYPT_E_INVALID_PRINTABLE_STRING _HRESULT_TYPEDEF_(0x80092021L) 2222 #define CRYPT_E_INVALID_IA5_STRING _HRESULT_TYPEDEF_(0x80092022L) 2223 #define CRYPT_E_INVALID_X500_STRING _HRESULT_TYPEDEF_(0x80092023L) 2224 #define CRYPT_E_NOT_CHAR_STRING _HRESULT_TYPEDEF_(0x80092024L) 2225 #define CRYPT_E_FILERESIZED _HRESULT_TYPEDEF_(0x80092025L) 2226 #define CRYPT_E_SECURITY_SETTINGS _HRESULT_TYPEDEF_(0x80092026L) 2227 #define CRYPT_E_NO_VERIFY_USAGE_DLL _HRESULT_TYPEDEF_(0x80092027L) 2228 #define CRYPT_E_NO_VERIFY_USAGE_CHECK _HRESULT_TYPEDEF_(0x80092028L) 2229 #define CRYPT_E_VERIFY_USAGE_OFFLINE _HRESULT_TYPEDEF_(0x80092029L) 2230 #define CRYPT_E_NOT_IN_CTL _HRESULT_TYPEDEF_(0x8009202AL) 2231 #define CRYPT_E_NO_TRUSTED_SIGNER _HRESULT_TYPEDEF_(0x8009202BL) 2232 #define CRYPT_E_MISSING_PUBKEY_PARA _HRESULT_TYPEDEF_(0x8009202CL) 2233 #define CRYPT_E_OSS_ERROR _HRESULT_TYPEDEF_(0x80093000L) 2234 #define OSS_MORE_BUF _HRESULT_TYPEDEF_(0x80093001L) 2235 #define OSS_NEGATIVE_UINTEGER _HRESULT_TYPEDEF_(0x80093002L) 2236 #define OSS_PDU_RANGE _HRESULT_TYPEDEF_(0x80093003L) 2237 #define OSS_MORE_INPUT _HRESULT_TYPEDEF_(0x80093004L) 2238 #define OSS_DATA_ERROR _HRESULT_TYPEDEF_(0x80093005L) 2239 #define OSS_BAD_ARG _HRESULT_TYPEDEF_(0x80093006L) 2240 #define OSS_BAD_VERSION _HRESULT_TYPEDEF_(0x80093007L) 2241 #define OSS_OUT_MEMORY _HRESULT_TYPEDEF_(0x80093008L) 2242 #define OSS_PDU_MISMATCH _HRESULT_TYPEDEF_(0x80093009L) 2243 #define OSS_LIMITED _HRESULT_TYPEDEF_(0x8009300AL) 2244 #define OSS_BAD_PTR _HRESULT_TYPEDEF_(0x8009300BL) 2245 #define OSS_BAD_TIME _HRESULT_TYPEDEF_(0x8009300CL) 2246 #define OSS_INDEFINITE_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x8009300DL) 2247 #define OSS_MEM_ERROR _HRESULT_TYPEDEF_(0x8009300EL) 2248 #define OSS_BAD_TABLE _HRESULT_TYPEDEF_(0x8009300FL) 2249 #define OSS_TOO_LONG _HRESULT_TYPEDEF_(0x80093010L) 2250 #define OSS_CONSTRAINT_VIOLATED _HRESULT_TYPEDEF_(0x80093011L) 2251 #define OSS_FATAL_ERROR _HRESULT_TYPEDEF_(0x80093012L) 2252 #define OSS_ACCESS_SERIALIZATION_ERROR _HRESULT_TYPEDEF_(0x80093013L) 2253 #define OSS_NULL_TBL _HRESULT_TYPEDEF_(0x80093014L) 2254 #define OSS_NULL_FCN _HRESULT_TYPEDEF_(0x80093015L) 2255 #define OSS_BAD_ENCRULES _HRESULT_TYPEDEF_(0x80093016L) 2256 #define OSS_UNAVAIL_ENCRULES _HRESULT_TYPEDEF_(0x80093017L) 2257 #define OSS_CANT_OPEN_TRACE_WINDOW _HRESULT_TYPEDEF_(0x80093018L) 2258 #define OSS_UNIMPLEMENTED _HRESULT_TYPEDEF_(0x80093019L) 2259 #define OSS_OID_DLL_NOT_LINKED _HRESULT_TYPEDEF_(0x8009301AL) 2260 #define OSS_CANT_OPEN_TRACE_FILE _HRESULT_TYPEDEF_(0x8009301BL) 2261 #define OSS_TRACE_FILE_ALREADY_OPEN _HRESULT_TYPEDEF_(0x8009301CL) 2262 #define OSS_TABLE_MISMATCH _HRESULT_TYPEDEF_(0x8009301DL) 2263 #define OSS_TYPE_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x8009301EL) 2264 #define OSS_REAL_DLL_NOT_LINKED _HRESULT_TYPEDEF_(0x8009301FL) 2265 #define OSS_REAL_CODE_NOT_LINKED _HRESULT_TYPEDEF_(0x80093020L) 2266 #define OSS_OUT_OF_RANGE _HRESULT_TYPEDEF_(0x80093021L) 2267 #define OSS_COPIER_DLL_NOT_LINKED _HRESULT_TYPEDEF_(0x80093022L) 2268 #define OSS_CONSTRAINT_DLL_NOT_LINKED _HRESULT_TYPEDEF_(0x80093023L) 2269 #define OSS_COMPARATOR_DLL_NOT_LINKED _HRESULT_TYPEDEF_(0x80093024L) 2270 #define OSS_COMPARATOR_CODE_NOT_LINKED _HRESULT_TYPEDEF_(0x80093025L) 2271 #define OSS_MEM_MGR_DLL_NOT_LINKED _HRESULT_TYPEDEF_(0x80093026L) 2272 #define OSS_PDV_DLL_NOT_LINKED _HRESULT_TYPEDEF_(0x80093027L) 2273 #define OSS_PDV_CODE_NOT_LINKED _HRESULT_TYPEDEF_(0x80093028L) 2274 #define OSS_API_DLL_NOT_LINKED _HRESULT_TYPEDEF_(0x80093029L) 2275 #define OSS_BERDER_DLL_NOT_LINKED _HRESULT_TYPEDEF_(0x8009302AL) 2276 #define OSS_PER_DLL_NOT_LINKED _HRESULT_TYPEDEF_(0x8009302BL) 2277 #define OSS_OPEN_TYPE_ERROR _HRESULT_TYPEDEF_(0x8009302CL) 2278 #define OSS_MUTEX_NOT_CREATED _HRESULT_TYPEDEF_(0x8009302DL) 2279 #define OSS_CANT_CLOSE_TRACE_FILE _HRESULT_TYPEDEF_(0x8009302EL) 2280 #define CRYPT_E_ASN1_ERROR _HRESULT_TYPEDEF_(0x80093100L) 2281 #define CRYPT_E_ASN1_INTERNAL _HRESULT_TYPEDEF_(0x80093101L) 2282 #define CRYPT_E_ASN1_EOD _HRESULT_TYPEDEF_(0x80093102L) 2283 #define CRYPT_E_ASN1_CORRUPT _HRESULT_TYPEDEF_(0x80093103L) 2284 #define CRYPT_E_ASN1_LARGE _HRESULT_TYPEDEF_(0x80093104L) 2285 #define CRYPT_E_ASN1_CONSTRAINT _HRESULT_TYPEDEF_(0x80093105L) 2286 #define CRYPT_E_ASN1_MEMORY _HRESULT_TYPEDEF_(0x80093106L) 2287 #define CRYPT_E_ASN1_OVERFLOW _HRESULT_TYPEDEF_(0x80093107L) 2288 #define CRYPT_E_ASN1_BADPDU _HRESULT_TYPEDEF_(0x80093108L) 2289 #define CRYPT_E_ASN1_BADARGS _HRESULT_TYPEDEF_(0x80093109L) 2290 #define CRYPT_E_ASN1_BADREAL _HRESULT_TYPEDEF_(0x8009310AL) 2291 #define CRYPT_E_ASN1_BADTAG _HRESULT_TYPEDEF_(0x8009310BL) 2292 #define CRYPT_E_ASN1_CHOICE _HRESULT_TYPEDEF_(0x8009310CL) 2293 #define CRYPT_E_ASN1_RULE _HRESULT_TYPEDEF_(0x8009310DL) 2294 #define CRYPT_E_ASN1_UTF8 _HRESULT_TYPEDEF_(0x8009310EL) 2295 #define CRYPT_E_ASN1_PDU_TYPE _HRESULT_TYPEDEF_(0x80093133L) 2296 #define CRYPT_E_ASN1_NYI _HRESULT_TYPEDEF_(0x80093134L) 2297 #define CRYPT_E_ASN1_EXTENDED _HRESULT_TYPEDEF_(0x80093201L) 2298 #define CRYPT_E_ASN1_NOEOD _HRESULT_TYPEDEF_(0x80093202L) 2299 2300 #define TRUST_E_SYSTEM_ERROR _HRESULT_TYPEDEF_(0x80096001L) 2301 #define TRUST_E_NO_SIGNER_CERT _HRESULT_TYPEDEF_(0x80096002L) 2302 #define TRUST_E_COUNTER_SIGNER _HRESULT_TYPEDEF_(0x80096003L) 2303 #define TRUST_E_CERT_SIGNATURE _HRESULT_TYPEDEF_(0x80096004L) 2304 #define TRUST_E_TIME_STAMP _HRESULT_TYPEDEF_(0x80096005L) 2305 #define TRUST_E_BAD_DIGEST _HRESULT_TYPEDEF_(0x80096010L) 2306 #define TRUST_E_BASIC_CONSTRAINTS _HRESULT_TYPEDEF_(0x80096019L) 2307 #define TRUST_E_FINANCIAL_CRITERIA _HRESULT_TYPEDEF_(0x8009601EL) 2308 #define TRUST_E_PROVIDER_UNKNOWN _HRESULT_TYPEDEF_(0x800B0001L) 2309 #define TRUST_E_ACTION_UNKNOWN _HRESULT_TYPEDEF_(0x800B0002L) 2310 #define TRUST_E_SUBJECT_FORM_UNKNOWN _HRESULT_TYPEDEF_(0x800B0003L) 2311 #define TRUST_E_SUBJECT_NOT_TRUSTED _HRESULT_TYPEDEF_(0x800B0004L) 2312 #define TRUST_E_NOSIGNATURE _HRESULT_TYPEDEF_(0x800B0100L) 2313 #define CERT_E_EXPIRED _HRESULT_TYPEDEF_(0x800B0101) 2314 #define CERT_E_VALIDITYPERIODNESTING _HRESULT_TYPEDEF_(0x800B0102) 2315 #define CERT_E_ROLE _HRESULT_TYPEDEF_(0x800B0103) 2316 #define CERT_E_PATHLENCONST _HRESULT_TYPEDEF_(0x800B0104) 2317 #define CERT_E_CRITICAL _HRESULT_TYPEDEF_(0x800B0105) 2318 #define CERT_E_PURPOSE _HRESULT_TYPEDEF_(0x800B0106) 2319 #define CERT_E_ISSUERCHAINING _HRESULT_TYPEDEF_(0x800B0107) 2320 #define CERT_E_MALFORMED _HRESULT_TYPEDEF_(0x800B0108) 2321 #define CERT_E_UNTRUSTEDROOT _HRESULT_TYPEDEF_(0x800B0109) 2322 #define CERT_E_CHAINING _HRESULT_TYPEDEF_(0x800B010A) 2323 #define TRUST_E_FAIL _HRESULT_TYPEDEF_(0x800B010B) 2324 #define CERT_E_REVOKED _HRESULT_TYPEDEF_(0x800B010C) 2325 #define CERT_E_UNTRUSTEDTESTROOT _HRESULT_TYPEDEF_(0x800B010D) 2326 #define CERT_E_REVOCATION_FAILURE _HRESULT_TYPEDEF_(0x800B010E) 2327 #define CERT_E_CN_NO_MATCH _HRESULT_TYPEDEF_(0x800B010F) 2328 #define CERT_E_WRONG_USAGE _HRESULT_TYPEDEF_(0x800B0110) 2329 #define TRUST_E_EXPLICIT_DISTRUST _HRESULT_TYPEDEF_(0x800B0111) 2330 #define CERT_E_UNTRUSTEDCA _HRESULT_TYPEDEF_(0x800B0112) 2331 #define CERT_E_INVALID_POLICY _HRESULT_TYPEDEF_(0x800B0113) 2332 #define CERT_E_INVALID_NAME _HRESULT_TYPEDEF_(0x800B0114) 2333 2334 #define SPAPI_E_EXPECTED_SECTION_NAME _HRESULT_TYPEDEF_(0x800F0000L) 2335 #define SPAPI_E_BAD_SECTION_NAME_LINE _HRESULT_TYPEDEF_(0x800F0001L) 2336 #define SPAPI_E_SECTION_NAME_TOO_LONG _HRESULT_TYPEDEF_(0x800F0002L) 2337 #define SPAPI_E_GENERAL_SYNTAX _HRESULT_TYPEDEF_(0x800F0003L) 2338 #define SPAPI_E_WRONG_INF_STYLE _HRESULT_TYPEDEF_(0x800F0100L) 2339 #define SPAPI_E_SECTION_NOT_FOUND _HRESULT_TYPEDEF_(0x800F0101L) 2340 #define SPAPI_E_LINE_NOT_FOUND _HRESULT_TYPEDEF_(0x800F0102L) 2341 #define SPAPI_E_NO_BACKUP _HRESULT_TYPEDEF_(0x800F0103L) 2342 #define SPAPI_E_NO_ASSOCIATED_CLASS _HRESULT_TYPEDEF_(0x800F0200L) 2343 #define SPAPI_E_CLASS_MISMATCH _HRESULT_TYPEDEF_(0x800F0201L) 2344 #define SPAPI_E_DUPLICATE_FOUND _HRESULT_TYPEDEF_(0x800F0202L) 2345 #define SPAPI_E_NO_DRIVER_SELECTED _HRESULT_TYPEDEF_(0x800F0203L) 2346 #define SPAPI_E_KEY_DOES_NOT_EXIST _HRESULT_TYPEDEF_(0x800F0204L) 2347 #define SPAPI_E_INVALID_DEVINST_NAME _HRESULT_TYPEDEF_(0x800F0205L) 2348 #define SPAPI_E_INVALID_CLASS _HRESULT_TYPEDEF_(0x800F0206L) 2349 #define SPAPI_E_DEVINST_ALREADY_EXISTS _HRESULT_TYPEDEF_(0x800F0207L) 2350 #define SPAPI_E_DEVINFO_NOT_REGISTERED _HRESULT_TYPEDEF_(0x800F0208L) 2351 #define SPAPI_E_INVALID_REG_PROPERTY _HRESULT_TYPEDEF_(0x800F0209L) 2352 #define SPAPI_E_NO_INF _HRESULT_TYPEDEF_(0x800F020AL) 2353 #define SPAPI_E_NO_SUCH_DEVINST _HRESULT_TYPEDEF_(0x800F020BL) 2354 #define SPAPI_E_CANT_LOAD_CLASS_ICON _HRESULT_TYPEDEF_(0x800F020CL) 2355 #define SPAPI_E_INVALID_CLASS_INSTALLER _HRESULT_TYPEDEF_(0x800F020DL) 2356 #define SPAPI_E_DI_DO_DEFAULT _HRESULT_TYPEDEF_(0x800F020EL) 2357 #define SPAPI_E_DI_NOFILECOPY _HRESULT_TYPEDEF_(0x800F020FL) 2358 #define SPAPI_E_INVALID_HWPROFILE _HRESULT_TYPEDEF_(0x800F0210L) 2359 #define SPAPI_E_NO_DEVICE_SELECTED _HRESULT_TYPEDEF_(0x800F0211L) 2360 #define SPAPI_E_DEVINFO_LIST_LOCKED _HRESULT_TYPEDEF_(0x800F0212L) 2361 #define SPAPI_E_DEVINFO_DATA_LOCKED _HRESULT_TYPEDEF_(0x800F0213L) 2362 #define SPAPI_E_DI_BAD_PATH _HRESULT_TYPEDEF_(0x800F0214L) 2363 #define SPAPI_E_NO_CLASSINSTALL_PARAMS _HRESULT_TYPEDEF_(0x800F0215L) 2364 #define SPAPI_E_FILEQUEUE_LOCKED _HRESULT_TYPEDEF_(0x800F0216L) 2365 #define SPAPI_E_BAD_SERVICE_INSTALLSECT _HRESULT_TYPEDEF_(0x800F0217L) 2366 #define SPAPI_E_NO_CLASS_DRIVER_LIST _HRESULT_TYPEDEF_(0x800F0218L) 2367 #define SPAPI_E_NO_ASSOCIATED_SERVICE _HRESULT_TYPEDEF_(0x800F0219L) 2368 #define SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE _HRESULT_TYPEDEF_(0x800F021AL) 2369 #define SPAPI_E_DEVICE_INTERFACE_ACTIVE _HRESULT_TYPEDEF_(0x800F021BL) 2370 #define SPAPI_E_DEVICE_INTERFACE_REMOVED _HRESULT_TYPEDEF_(0x800F021CL) 2371 #define SPAPI_E_BAD_INTERFACE_INSTALLSECT _HRESULT_TYPEDEF_(0x800F021DL) 2372 #define SPAPI_E_NO_SUCH_INTERFACE_CLASS _HRESULT_TYPEDEF_(0x800F021EL) 2373 #define SPAPI_E_INVALID_REFERENCE_STRING _HRESULT_TYPEDEF_(0x800F021FL) 2374 #define SPAPI_E_INVALID_MACHINENAME _HRESULT_TYPEDEF_(0x800F0220L) 2375 #define SPAPI_E_REMOTE_COMM_FAILURE _HRESULT_TYPEDEF_(0x800F0221L) 2376 #define SPAPI_E_MACHINE_UNAVAILABLE _HRESULT_TYPEDEF_(0x800F0222L) 2377 #define SPAPI_E_NO_CONFIGMGR_SERVICES _HRESULT_TYPEDEF_(0x800F0223L) 2378 #define SPAPI_E_INVALID_PROPPAGE_PROVIDER _HRESULT_TYPEDEF_(0x800F0224L) 2379 #define SPAPI_E_NO_SUCH_DEVICE_INTERFACE _HRESULT_TYPEDEF_(0x800F0225L) 2380 #define SPAPI_E_DI_POSTPROCESSING_REQUIRED _HRESULT_TYPEDEF_(0x800F0226L) 2381 #define SPAPI_E_INVALID_COINSTALLER _HRESULT_TYPEDEF_(0x800F0227L) 2382 #define SPAPI_E_NO_COMPAT_DRIVERS _HRESULT_TYPEDEF_(0x800F0228L) 2383 #define SPAPI_E_NO_DEVICE_ICON _HRESULT_TYPEDEF_(0x800F0229L) 2384 #define SPAPI_E_INVALID_INF_LOGCONFIG _HRESULT_TYPEDEF_(0x800F022AL) 2385 #define SPAPI_E_DI_DONT_INSTALL _HRESULT_TYPEDEF_(0x800F022BL) 2386 #define SPAPI_E_INVALID_FILTER_DRIVER _HRESULT_TYPEDEF_(0x800F022CL) 2387 #define SPAPI_E_NON_WINDOWS_NT_DRIVER _HRESULT_TYPEDEF_(0x800F022DL) 2388 #define SPAPI_E_NON_WINDOWS_DRIVER _HRESULT_TYPEDEF_(0x800F022EL) 2389 #define SPAPI_E_NO_CATALOG_FOR_OEM_INF _HRESULT_TYPEDEF_(0x800F022FL) 2390 #define SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE _HRESULT_TYPEDEF_(0x800F0230L) 2391 #define SPAPI_E_NOT_DISABLEABLE _HRESULT_TYPEDEF_(0x800F0231L) 2392 #define SPAPI_E_CANT_REMOVE_DEVINST _HRESULT_TYPEDEF_(0x800F0232L) 2393 #define SPAPI_E_INVALID_TARGET _HRESULT_TYPEDEF_(0x800F0233L) 2394 #define SPAPI_E_DRIVER_NONNATIVE _HRESULT_TYPEDEF_(0x800F0234L) 2395 #define SPAPI_E_IN_WOW64 _HRESULT_TYPEDEF_(0x800F0235L) 2396 #define SPAPI_E_SET_SYSTEM_RESTORE_POINT _HRESULT_TYPEDEF_(0x800F0236L) 2397 #define SPAPI_E_INCORRECTLY_COPIED_INF _HRESULT_TYPEDEF_(0x800F0237L) 2398 #define SPAPI_E_SCE_DISABLED _HRESULT_TYPEDEF_(0x800F0238L) 2399 #define SPAPI_E_ERROR_NOT_INSTALLED _HRESULT_TYPEDEF_(0x800F1000L) 2400 2401 /* Smart card management error codes */ 2402 #define SCARD_S_SUCCESS NO_ERROR 2403 #define SCARD_F_INTERNAL_ERROR _HRESULT_TYPEDEF_(0x80100001L) 2404 #define SCARD_E_CANCELLED _HRESULT_TYPEDEF_(0x80100002L) 2405 #define SCARD_E_INVALID_HANDLE _HRESULT_TYPEDEF_(0x80100003L) 2406 #define SCARD_E_INVALID_PARAMETER _HRESULT_TYPEDEF_(0x80100004L) 2407 #define SCARD_E_INVALID_TARGET _HRESULT_TYPEDEF_(0x80100005L) 2408 #define SCARD_E_NO_MEMORY _HRESULT_TYPEDEF_(0x80100006L) 2409 #define SCARD_F_WAITED_TOO_LONG _HRESULT_TYPEDEF_(0x80100007L) 2410 #define SCARD_E_INSUFFICIENT_BUFFER _HRESULT_TYPEDEF_(0x80100008L) 2411 #define SCARD_E_UNKNOWN_READER _HRESULT_TYPEDEF_(0x80100009L) 2412 #define SCARD_E_TIMEOUT _HRESULT_TYPEDEF_(0x8010000AL) 2413 #define SCARD_E_SHARING_VIOLATION _HRESULT_TYPEDEF_(0x8010000BL) 2414 #define SCARD_E_NO_SMARTCARD _HRESULT_TYPEDEF_(0x8010000CL) 2415 #define SCARD_E_UNKNOWN_CARD _HRESULT_TYPEDEF_(0x8010000DL) 2416 #define SCARD_E_CANT_DISPOSE _HRESULT_TYPEDEF_(0x8010000EL) 2417 #define SCARD_E_PROTO_MISMATCH _HRESULT_TYPEDEF_(0x8010000FL) 2418 #define SCARD_E_NOT_READY _HRESULT_TYPEDEF_(0x80100010L) 2419 #define SCARD_E_INVALID_VALUE _HRESULT_TYPEDEF_(0x80100011L) 2420 #define SCARD_E_SYSTEM_CANCELLED _HRESULT_TYPEDEF_(0x80100012L) 2421 #define SCARD_F_COMM_ERROR _HRESULT_TYPEDEF_(0x80100013L) 2422 #define SCARD_F_UNKNOWN_ERROR _HRESULT_TYPEDEF_(0x80100014L) 2423 #define SCARD_E_INVALID_ATR _HRESULT_TYPEDEF_(0x80100015L) 2424 #define SCARD_E_NOT_TRANSACTED _HRESULT_TYPEDEF_(0x80100016L) 2425 #define SCARD_E_READER_UNAVAILABLE _HRESULT_TYPEDEF_(0x80100017L) 2426 #define SCARD_P_SHUTDOWN _HRESULT_TYPEDEF_(0x80100018L) 2427 #define SCARD_E_PCI_TOO_SMALL _HRESULT_TYPEDEF_(0x80100019L) 2428 #define SCARD_E_READER_UNSUPPORTED _HRESULT_TYPEDEF_(0x8010001AL) 2429 #define SCARD_E_DUPLICATE_READER _HRESULT_TYPEDEF_(0x8010001BL) 2430 #define SCARD_E_CARD_UNSUPPORTED _HRESULT_TYPEDEF_(0x8010001CL) 2431 #define SCARD_E_NO_SERVICE _HRESULT_TYPEDEF_(0x8010001DL) 2432 #define SCARD_E_SERVICE_STOPPED _HRESULT_TYPEDEF_(0x8010001EL) 2433 #define SCARD_E_UNEXPECTED _HRESULT_TYPEDEF_(0x8010001FL) 2434 #define SCARD_E_ICC_INSTALLATION _HRESULT_TYPEDEF_(0x80100020L) 2435 #define SCARD_E_ICC_CREATEORDER _HRESULT_TYPEDEF_(0x80100021L) 2436 #define SCARD_E_UNSUPPORTED_FEATURE _HRESULT_TYPEDEF_(0x80100022L) 2437 #define SCARD_E_DIR_NOT_FOUND _HRESULT_TYPEDEF_(0x80100023L) 2438 #define SCARD_E_FILE_NOT_FOUND _HRESULT_TYPEDEF_(0x80100024L) 2439 #define SCARD_E_NO_DIR _HRESULT_TYPEDEF_(0x80100025L) 2440 #define SCARD_E_NO_FILE _HRESULT_TYPEDEF_(0x80100026L) 2441 #define SCARD_E_NO_ACCESS _HRESULT_TYPEDEF_(0x80100027L) 2442 #define SCARD_E_WRITE_TOO_MANY _HRESULT_TYPEDEF_(0x80100028L) 2443 #define SCARD_E_BAD_SEEK _HRESULT_TYPEDEF_(0x80100029L) 2444 #define SCARD_E_INVALID_CHV _HRESULT_TYPEDEF_(0x8010002AL) 2445 #define SCARD_E_UNKNOWN_RES_MNG _HRESULT_TYPEDEF_(0x8010002BL) 2446 #define SCARD_E_NO_SUCH_CERTIFICATE _HRESULT_TYPEDEF_(0x8010002CL) 2447 #define SCARD_E_CERTIFICATE_UNAVAILABLE _HRESULT_TYPEDEF_(0x8010002DL) 2448 #define SCARD_E_NO_READERS_AVAILABLE _HRESULT_TYPEDEF_(0x8010002EL) 2449 #define SCARD_E_COMM_DATA_LOST _HRESULT_TYPEDEF_(0x8010002FL) 2450 #define SCARD_E_NO_KEY_CONTAINER _HRESULT_TYPEDEF_(0x80100030L) 2451 #define SCARD_E_SERVER_TOO_BUSY _HRESULT_TYPEDEF_(0x80100031L) 2452 #define SCARD_W_UNSUPPORTED_CARD _HRESULT_TYPEDEF_(0x80100065L) 2453 #define SCARD_W_UNRESPONSIVE_CARD _HRESULT_TYPEDEF_(0x80100066L) 2454 #define SCARD_W_UNPOWERED_CARD _HRESULT_TYPEDEF_(0x80100067L) 2455 #define SCARD_W_RESET_CARD _HRESULT_TYPEDEF_(0x80100068L) 2456 #define SCARD_W_REMOVED_CARD _HRESULT_TYPEDEF_(0x80100069L) 2457 #define SCARD_W_SECURITY_VIOLATION _HRESULT_TYPEDEF_(0x8010006AL) 2458 #define SCARD_W_WRONG_CHV _HRESULT_TYPEDEF_(0x8010006BL) 2459 #define SCARD_W_CHV_BLOCKED _HRESULT_TYPEDEF_(0x8010006CL) 2460 #define SCARD_W_EOF _HRESULT_TYPEDEF_(0x8010006DL) 2461 #define SCARD_W_CANCELLED_BY_USER _HRESULT_TYPEDEF_(0x8010006EL) 2462 #define SCARD_W_CARD_NOT_AUTHENTICATED _HRESULT_TYPEDEF_(0x8010006FL) 2463 #define SCARD_W_CACHE_ITEM_NOT_FOUND _HRESULT_TYPEDEF_(0x80100070L) 2464 #define SCARD_W_CACHE_ITEM_STALE _HRESULT_TYPEDEF_(0x80100071L) 2465 #define SCARD_W_CACHE_ITEM_TOO_BIG _HRESULT_TYPEDEF_(0x80100072L) 2466 2467 #define ERROR_AUDITING_DISABLED _HRESULT_TYPEDEF_(0xC0090001L) 2468 #define ERROR_ALL_SIDS_FILTERED _HRESULT_TYPEDEF_(0xC0090002L) 2469 2470 /* Obtained from lcc-win32 include files */ 2471 #define GDI_ERROR 0xffffffff 2472 #define ERROR_UNKNOWN 99999 1505 2473 #define E_UNSPEC E_FAIL 1506 1507 1508 #define CO_E_INIT_TLS 0x80004006L1509 #define CO_E_INIT_SHARED_ALLOCATOR 0x80004007L1510 #define CO_E_INIT_MEMORY_ALLOCATOR 0x80004008L1511 #define CO_E_INIT_CLASS_CACHE 0x80004009L1512 #define CO_E_INIT_RPC_CHANNEL 0x8000400AL1513 #define CO_E_INIT_TLS_SET_CHANNEL_CONTROL 0x8000400BL1514 #define CO_E_INIT_TLS_CHANNEL_CONTROL 0x8000400CL1515 #define CO_E_INIT_UNACCEPTED_USER_ALLOCATOR 0x8000400DL1516 #define CO_E_INIT_SCM_MUTEX_EXISTS 0x8000400EL1517 #define CO_E_INIT_SCM_FILE_MAPPING_EXISTS 0x8000400FL1518 #define CO_E_INIT_SCM_MAP_VIEW_OF_FILE 0x80004010L1519 #define CO_E_INIT_SCM_EXEC_FAILURE 0x80004011L1520 #define CO_E_INIT_ONLY_SINGLE_THREADED 0x80004012L1521 1522 #define E_UNEXPECTED 0x8000FFFFL1523 1524 #define RPC_E_CALL_REJECTED 0x80010001L1525 #define RPC_E_CALL_CANCELED 0x80010002L1526 #define RPC_E_CANTPOST_INSENDCALL 0x80010003L1527 #define RPC_E_CANTCALLOUT_INASYNCCALL 0x80010004L1528 #define RPC_E_CANTCALLOUT_INEXTERNALCALL 0x80010005L1529 #define RPC_E_CONNECTION_TERMINATED 0x80010006L1530 #define RPC_E_SERVER_DIED 0x80010007L1531 #define RPC_E_CLIENT_DIED 0x80010008L1532 #define RPC_E_INVALID_DATAPACKET 0x80010009L1533 #define RPC_E_CANTTRANSMIT_CALL 0x8001000AL1534 #define RPC_E_CLIENT_CANTMARSHAL_DATA 0x8001000BL1535 #define RPC_E_CLIENT_CANTUNMARSHAL_DATA 0x8001000CL1536 #define RPC_E_SERVER_CANTMARSHAL_DATA 0x8001000DL1537 #define RPC_E_SERVER_CANTUNMARSHAL_DATA 0x8001000EL1538 #define RPC_E_INVALID_DATA 0x8001000FL1539 #define RPC_E_INVALID_PARAMETER 0x80010010L1540 #define RPC_E_CANTCALLOUT_AGAIN 0x80010011L1541 #define RPC_E_SERVER_DIED_DNE 0x80010012L1542 #define RPC_E_SYS_CALL_FAILED 0x80010100L1543 #define RPC_E_OUT_OF_RESOURCES 0x80010101L1544 #define RPC_E_ATTEMPTED_MULTITHREAD 0x80010102L1545 #define RPC_E_NOT_REGISTERED 0x80010103L1546 #define RPC_E_FAULT 0x80010104L1547 #define RPC_E_SERVERFAULT 0x80010105L1548 #define RPC_E_CHANGED_MODE 0x80010106L1549 #define RPC_E_INVALIDMETHOD 0x80010107L1550 #define RPC_E_DISCONNECTED 0x80010108L1551 #define RPC_E_RETRY 0x80010109L1552 #define RPC_E_SERVERCALL_RETRYLATER 0x8001010AL1553 #define RPC_E_SERVERCALL_REJECTED 0x8001010BL1554 #define RPC_E_INVALID_CALLDATA 0x8001010CL1555 #define RPC_E_CANTCALLOUT_ININPUTSYNCCALL 0x8001010DL1556 #define RPC_E_WRONG_THREAD 0x8001010EL1557 #define RPC_E_THREAD_NOT_INIT 0x8001010FL1558 #define RPC_E_VERSION_MISMATCH 0x80010110L1559 #define RPC_E_INVALID_HEADER 0x80010111L1560 #define RPC_E_INVALID_EXTENSION 0x80010112L1561 #define RPC_E_INVALID_IPID 0x80010113L1562 #define RPC_E_INVALID_OBJECT 0x80010114L1563 #define RPC_S_CALLPENDING 0x80010115L1564 #define RPC_S_WAITONTIMER 0x80010116L1565 #define RPC_E_CALL_COMPLETE 0x80010117L1566 #define RPC_E_UNSECURE_CALL 0x80010118L1567 #define RPC_E_TOO_LATE 0x80010119L1568 #define RPC_E_NO_GOOD_SECURITY_PACKAGES 0x8001011AL1569 #define RPC_E_ACCESS_DENIED 0x8001011BL1570 #define RPC_E_REMOTE_DISABLED 0x8001011CL1571 #define RPC_E_INVALID_OBJREF 0x8001011DL1572 #define RPC_E_NO_CONTEXT 0x8001011EL1573 #define RPC_E_TIMEOUT 0x8001011FL1574 #define RPC_E_NO_SYNC 0x80010120L1575 #define RPC_E_UNEXPECTED 0x8001FFFFL1576 1577 #define DISP_E_UNKNOWNINTERFACE 0x80020001L1578 #define DISP_E_MEMBERNOTFOUND 0x80020003L1579 #define DISP_E_PARAMNOTFOUND 0x80020004L1580 #define DISP_E_TYPEMISMATCH 0x80020005L1581 #define DISP_E_UNKNOWNNAME 0x80020006L1582 #define DISP_E_NONAMEDARGS 0x80020007L1583 #define DISP_E_BADVARTYPE 0x80020008L1584 #define DISP_E_EXCEPTION 0x80020009L1585 #define DISP_E_OVERFLOW 0x8002000AL1586 #define DISP_E_BADINDEX 0x8002000BL1587 #define DISP_E_UNKNOWNLCID 0x8002000CL1588 #define DISP_E_ARRAYISLOCKED 0x8002000DL1589 #define DISP_E_BADPARAMCOUNT 0x8002000EL1590 #define DISP_E_PARAMNOTOPTIONAL 0x8002000FL1591 #define DISP_E_BADCALLEE 0x80020010L1592 #define DISP_E_NOTACOLLECTION 0x80020011L1593 #define DISP_E_DIVBYZERO 0x80020012L1594 1595 #define TYPE_E_BUFFERTOOSMALL 0x80028016L1596 #define TYPE_E_FIELDNOTFOUND 0x80028017L1597 #define TYPE_E_INVDATAREAD 0x80028018L1598 #define TYPE_E_UNSUPFORMAT 0x80028019L1599 #define TYPE_E_REGISTRYACCESS 0x8002801CL1600 #define TYPE_E_LIBNOTREGISTERED 0x8002801DL1601 #define TYPE_E_UNDEFINEDTYPE 0x80028027L1602 #define TYPE_E_QUALIFIEDNAMEDISALLOWED 0x80028028L1603 #define TYPE_E_INVALIDSTATE 0x80028029L1604 #define TYPE_E_WRONGTYPEKIND 0x8002802AL1605 #define TYPE_E_ELEMENTNOTFOUND 0x8002802BL1606 #define TYPE_E_AMBIGUOUSNAME 0x8002802CL1607 #define TYPE_E_NAMECONFLICT 0x8002802DL1608 #define TYPE_E_UNKNOWNLCID 0x8002802EL1609 #define TYPE_E_DLLFUNCTIONNOTFOUND 0x8002802FL1610 #define TYPE_E_BADMODULEKIND 0x800288BDL1611 #define TYPE_E_SIZETOOBIG 0x800288C5L1612 #define TYPE_E_DUPLICATEID 0x800288C6L1613 #define TYPE_E_INVALIDID 0x800288CFL1614 #define TYPE_E_TYPEMISMATCH 0x80028CA0L1615 #define TYPE_E_OUTOFBOUNDS 0x80028CA1L1616 #define TYPE_E_IOERROR 0x80028CA2L1617 #define TYPE_E_CANTCREATETMPFILE 0x80028CA3L1618 #define TYPE_E_CANTLOADLIBRARY 0x80029C4AL1619 #define TYPE_E_INCONSISTENTPROPFUNCS 0x80029C83L1620 #define TYPE_E_CIRCULARTYPE 0x80029C84L1621 1622 #define STG_S_CONVERTED 0x00030200L1623 #define STG_S_BLOCK 0x00030201L1624 #define STG_S_RETRYNOW 0x00030202L1625 #define STG_S_MONITORING 0x00030203L1626 #define STG_S_MULTIPLEOPENS 0x00030204L1627 #define STG_S_CONSOLIDATIONFAILED 0x00030205L1628 #define STG_S_CANNOTCONSOLIDATE 0x00030206L1629 1630 #define STG_E_INVALIDFUNCTION 0x80030001L1631 #define STG_E_FILENOTFOUND 0x80030002L1632 #define STG_E_PATHNOTFOUND 0x80030003L1633 #define STG_E_TOOMANYOPENFILES 0x80030004L1634 #define STG_E_ACCESSDENIED 0x80030005L1635 #define STG_E_INVALIDHANDLE 0x80030006L1636 #define STG_E_INSUFFICIENTMEMORY 0x80030008L1637 #define STG_E_INVALIDPOINTER 0x80030009L1638 #define STG_E_NOMOREFILES 0x80030012L1639 #define STG_E_DISKISWRITEPROTECTED 0x80030013L1640 #define STG_E_SEEKERROR 0x80030019L1641 #define STG_E_WRITEFAULT 0x8003001DL1642 #define STG_E_READFAULT 0x8003001EL1643 #define STG_E_SHAREVIOLATION 0x80030020L1644 #define STG_E_LOCKVIOLATION 0x80030021L1645 #define STG_E_FILEALREADYEXISTS 0x80030050L1646 #define STG_E_INVALIDPARAMETER 0x80030057L1647 #define STG_E_MEDIUMFULL 0x80030070L1648 #define STG_E_ABNORMALAPIEXIT 0x800300FAL1649 #define STG_E_INVALIDHEADER 0x800300FBL1650 #define STG_E_INVALIDNAME 0x800300FCL1651 #define STG_E_UNKNOWN 0x800300FDL1652 #define STG_E_UNIMPLEMENTEDFUNCTION 0x800300FEL1653 #define STG_E_INVALIDFLAG 0x800300FFL1654 #define STG_E_INUSE 0x80030100L1655 #define STG_E_NOTCURRENT 0x80030101L1656 #define STG_E_REVERTED 0x80030102L1657 #define STG_E_CANTSAVE 0x80030103L1658 #define STG_E_OLDFORMAT 0x80030104L1659 #define STG_E_OLDDLL 0x80030105L1660 #define STG_E_SHAREREQUIRED 0x80030106L1661 #define STG_E_NOTFILEBASEDSTORAGE 0x80030107L1662 #define STG_E_EXTANTMARSHALLINGS 0x80030108L1663 1664 #define STG_E_STATUS_COPY_PROTECTION_FAILURE 0x80030305L1665 #define STG_E_CSS_AUTHENTICATION_FAILURE 0x80030306L1666 #define STG_E_CSS_KEY_NOT_PRESENT 0x80030307L1667 #define STG_E_CSS_KEY_NOT_ESTABLISHED 0x80030308L1668 #define STG_E_CSS_SCRAMBLED_SECTOR 0x80030309L1669 #define STG_E_CSS_REGION_MISMATCH 0x8003030AL1670 #define STG_E_RESETS_EXHAUSTED 0x8003030BL1671 1672 #define OLE_S_FIRST 0x00040000L1673 #define OLE_S_USEREG 0x00040000L1674 #define OLE_S_STATIC 0x00040001L1675 #define OLE_S_MAC_CLIPFORMAT 0x00040002L1676 #define OLE_S_LAST 0x000400FFL1677 1678 #define OLE_E_FIRST 0x80040000L1679 #define OLE_E_OLEVERB 0x80040000L1680 #define OLE_E_ADVF 0x80040001L1681 #define OLE_E_ENUM_NOMORE 0x80040002L1682 #define OLE_E_ADVISENOTSUPPORTED 0x80040003L1683 #define OLE_E_NOCONNECTION 0x80040004L1684 #define OLE_E_NOTRUNNING 0x80040005L1685 #define OLE_E_NOCACHE 0x80040006L1686 #define OLE_E_BLANK 0x80040007L1687 #define OLE_E_CLASSDIFF 0x80040008L1688 #define OLE_E_CANT_GETMONIKER 0x80040009L1689 #define OLE_E_CANT_BINDTOSOURCE 0x8004000AL1690 #define OLE_E_STATIC 0x8004000BL1691 #define OLE_E_PROMPTSAVECANCELLED 0x8004000CL1692 #define OLE_E_INVALIDRECT 0x8004000DL1693 #define OLE_E_WRONGCOMPOBJ 0x8004000EL1694 #define OLE_E_INVALIDHWND 0x8004000FL1695 #define OLE_E_NOT_INPLACEACTIVE 0x80040010L1696 #define OLE_E_CANTCONVERT 0x80040011L1697 #define OLE_E_NOSTORAGE 0x80040012L1698 #define DV_E_FORMATETC 0x80040064L1699 #define DV_E_DVTARGETDEVICE 0x80040065L1700 #define DV_E_STGMEDIUM 0x80040066L1701 #define DV_E_STATDATA 0x80040067L1702 #define DV_E_LINDEX 0x80040068L1703 #define DV_E_TYMED 0x80040069L1704 #define DV_E_CLIPFORMAT 0x8004006AL1705 #define DV_E_DVASPECT 0x8004006BL1706 #define DV_E_DVTARGETDEVICE_SIZE 0x8004006CL1707 #define DV_E_NOIVIEWOBJECT 0x8004006DL1708 #define OLE_E_LAST 0x800400FFL1709 1710 #define DRAGDROP_S_FIRST 0x00040100L1711 #define DRAGDROP_S_DROP 0x00040100L1712 #define DRAGDROP_S_CANCEL 0x00040101L1713 #define DRAGDROP_S_USEDEFAULTCURSORS 0x00040102L1714 #define DRAGDROP_S_LAST 0x0004010FL1715 1716 #define DRAGDROP_E_FIRST 0x80040100L1717 #define DRAGDROP_E_NOTREGISTERED 0x80040100L1718 #define DRAGDROP_E_ALREADYREGISTERED 0x80040101L1719 #define DRAGDROP_E_INVALIDHWND 0x80040102L1720 #define DRAGDROP_E_LAST 0x8004010FL1721 1722 1723 #define CLASSFACTORY_S_FIRST 0x00040110L1724 #define CLASSFACTORY_S_LAST 0x0004011FL1725 1726 #define CLASSFACTORY_E_FIRST 0x80040110L1727 #define CLASS_E_NOAGGREGATION 0x80040110L1728 #define CLASS_E_CLASSNOTAVAILABLE 0x80040111L1729 #define CLASS_E_NOTLICENSED 0x80040112L1730 #define CLASSFACTORY_E_LAST 0x8004011FL1731 1732 #define MARSHAL_S_FIRST 0x00040120L1733 #define MARSHAL_S_LAST 0x0004012FL1734 1735 #define MARSHAL_E_FIRST 0x80040120L1736 #define MARSHAL_E_LAST 0x8004012FL1737 1738 #define DATA_S_FIRST 0x00040130L1739 #define DATA_S_SAMEFORMATETC 0x00040130L1740 #define DATA_S_LAST 0x0004013FL1741 1742 #define DATA_E_FIRST 0x80040130L1743 #define DATA_E_LAST 0x8004013FL1744 1745 #define VIEW_S_FIRST 0x00040140L1746 #define VIEW_S_ALREADY_FROZEN 0x00040140L1747 #define VIEW_S_LAST 0x0004014FL1748 1749 #define VIEW_E_FIRST 0x80040140L1750 #define VIEW_E_DRAW 0x80040140L1751 #define VIEW_E_LAST 0x8004014FL1752 1753 #define REGDB_S_FIRST 0x00040150L1754 #define REGDB_S_LAST 0x0004015FL1755 1756 #define REGDB_E_FIRST 0x80040150L1757 #define REGDB_E_READREGDB 0x80040150L1758 #define REGDB_E_WRITEREGDB 0x80040151L1759 #define REGDB_E_KEYMISSING 0x80040152L1760 #define REGDB_E_INVALIDVALUE 0x80040153L1761 #define REGDB_E_CLASSNOTREG 0x80040154L1762 #define REGDB_E_IIDNOTREG 0x80040155L1763 #define REGDB_E_LAST 0x8004015FL1764 1765 #define CAT_E_FIRST 0x80040160L1766 #define CAT_E_CATIDNOEXIST 0x80040160L1767 #define CAT_E_NODESCRIPTION 0x80040161L1768 #define CAT_E_LAST 0x80040161L1769 1770 #define CACHE_S_FIRST 0x00040170L1771 #define CACHE_S_FORMATETC_NOTSUPPORTED 0x00040170L1772 #define CACHE_S_SAMECACHE 0x00040171L1773 #define CACHE_S_SOMECACHES_NOTUPDATED 0x00040172L1774 #define CACHE_S_LAST 0x0004017FL1775 1776 #define CACHE_E_FIRST 0x80040170L1777 #define CACHE_E_NOCACHE_UPDATED 0x80040170L1778 #define CACHE_E_LAST 0x8004017FL1779 1780 #define OLEOBJ_S_FIRST 0x00040180L1781 #define OLEOBJ_S_INVALIDVERB 0x00040180L1782 #define OLEOBJ_S_CANNOT_DOVERB_NOW 0x00040181L1783 #define OLEOBJ_S_INVALIDHWND 0x00040182L1784 #define OLEOBJ_S_LAST 0x0004018FL1785 1786 #define OLEOBJ_E_FIRST 0x80040180L1787 #define OLEOBJ_E_NOVERBS 0x80040180L1788 #define OLEOBJ_E_INVALIDVERB 0x80040181L1789 #define OLEOBJ_E_LAST 0x8004018FL1790 1791 #define CLIENTSITE_S_FIRST 0x00040190L1792 #define CLIENTSITE_S_LAST 0x0004019FL1793 1794 #define CLIENTSITE_E_FIRST 0x80040190L1795 #define CLIENTSITE_E_LAST 0x8004019FL1796 1797 #define INPLACE_S_FIRST 0x000401A0L1798 #define INPLACE_S_TRUNCATED 0x000401A0L1799 #define INPLACE_S_LAST 0x000401AFL1800 1801 #define INPLACE_E_FIRST 0x800401A0L1802 #define INPLACE_E_NOTUNDOABLE 0x800401A0L1803 #define INPLACE_E_NOTOOLSPACE 0x800401A1L1804 #define INPLACE_E_LAST 0x800401AFL1805 1806 #define ENUM_S_FIRST 0x000401B0L1807 #define ENUM_S_LAST 0x000401BFL1808 1809 #define ENUM_E_FIRST 0x800401B0L1810 #define ENUM_E_LAST 0x800401BFL1811 1812 #define CONVERT10_S_FIRST 0x000401C0L1813 #define CONVERT10_S_NO_PRESENTATION 0x000401C0L1814 #define CONVERT10_S_LAST 0x000401CFL1815 1816 #define CONVERT10_E_FIRST 0x800401C0L1817 #define CONVERT10_E_OLESTREAM_GET 0x800401C0L1818 #define CONVERT10_E_OLESTREAM_PUT 0x800401C1L1819 #define CONVERT10_E_OLESTREAM_FMT 0x800401C2L1820 #define CONVERT10_E_OLESTREAM_BITMAP_TO_DIB 0x800401C3L1821 #define CONVERT10_E_STG_FMT 0x800401C4L1822 #define CONVERT10_E_STG_NO_STD_STREAM 0x800401C5L1823 #define CONVERT10_E_STG_DIB_TO_BITMAP 0x800401C6L1824 #define CONVERT10_E_LAST 0x800401CFL1825 1826 #define CLIPBRD_S_FIRST 0x000401D0L1827 #define CLIPBRD_S_LAST 0x000401DFL1828 1829 #define CLIPBRD_E_FIRST 0x800401D0L1830 #define CLIPBRD_E_LAST 0x800401DFL1831 #define CLIPBRD_E_CANT_OPEN 0x800401D0L1832 #define CLIPBRD_E_CANT_EMPTY 0x800401D1L1833 #define CLIPBRD_E_CANT_SET 0x800401D2L1834 #define CLIPBRD_E_BAD_DATA 0x800401D3L1835 #define CLIPBRD_E_CANT_CLOSE 0x800401D4L1836 1837 #define MK_S_FIRST 0x000401E0L1838 #define MK_S_REDUCED_TO_SELF 0x000401E2L1839 #define MK_S_ME 0x000401E4L1840 #define MK_S_HIM 0x000401E5L1841 #define MK_S_US 0x000401E6L1842 #define MK_S_MONIKERALREADYREGISTERED 0x000401E7L1843 #define MK_S_LAST 0x000401EFL1844 1845 #define MK_E_FIRST 0x800401E0L1846 #define MK_E_CONNECTMANUALLY 0x800401E0L1847 #define MK_E_EXCEEDEDDEADLINE 0x800401E1L1848 #define MK_E_NEEDGENERIC 0x800401E2L1849 #define MK_E_UNAVAILABLE 0x800401E3L1850 #define MK_E_SYNTAX 0x800401E4L1851 #define MK_E_NOOBJECT 0x800401E5L1852 #define MK_E_INVALIDEXTENSION 0x800401E6L1853 #define MK_E_INTERMEDIATEINTERFACENOTSUPPORTED 0x800401E7L1854 #define MK_E_NOTBINDABLE 0x800401E8L1855 #define MK_E_NOTBOUND 0x800401E9L1856 #define MK_E_CANTOPENFILE 0x800401EAL1857 #define MK_E_MUSTBOTHERUSER 0x800401EBL1858 #define MK_E_NOINVERSE 0x800401ECL1859 #define MK_E_NOSTORAGE 0x800401EDL1860 #define MK_E_NOPREFIX 0x800401EEL1861 #define MK_E_ENUMERATION_FAILED 0x800401EFL1862 #define MK_E_LAST 0x800401EFL1863 1864 #define CO_S_FIRST 0x000401F0L1865 #define CO_S_LAST 0x000401FFL1866 1867 #define CO_E_FIRST 0x800401F0L1868 #define CO_E_NOTINITIALIZED 0x800401F0L1869 #define CO_E_ALREADYINITIALIZED 0x800401F1L1870 #define CO_E_CANTDETERMINECLASS 0x800401F2L1871 #define CO_E_CLASSSTRING 0x800401F3L1872 #define CO_E_IIDSTRING 0x800401F4L1873 #define CO_E_APPNOTFOUND 0x800401F5L1874 #define CO_E_APPSINGLEUSE 0x800401F6L1875 #define CO_E_ERRORINAPP 0x800401F7L1876 #define CO_E_DLLNOTFOUND 0x800401F8L1877 #define CO_E_ERRORINDLL 0x800401F9L1878 #define CO_E_WRONGOSFORAPP 0x800401FAL1879 #define CO_E_OBJNOTREG 0x800401FBL1880 #define CO_E_OBJISREG 0x800401FCL1881 #define CO_E_OBJNOTCONNECTED 0x800401FDL1882 #define CO_E_APPDIDNTREG 0x800401FEL1883 #define CO_E_RELEASED 0x800401FFL1884 #define CO_E_LAST 0x800401FFL1885 #define CO_E_FAILEDTOIMPERSONATE 0x80040200L1886 #define CO_E_FAILEDTOGETSECCTX 0x80040201L1887 #define CO_E_FAILEDTOOPENTHREADTOKEN 0x80040202L1888 #define CO_E_FAILEDTOGETTOKENINFO 0x80040203L1889 #define CO_E_TRUSTEEDOESNTMATCHCLIENT 0x80040204L1890 #define CO_E_FAILEDTOQUERYCLIENTBLANKET 0x80040205L1891 #define CO_E_FAILEDTOSETDACL 0x80040206L1892 #define CO_E_ACCESSCHECKFAILED 0x80040207L1893 #define CO_E_NETACCESSAPIFAILED 0x80040208L1894 #define CO_E_WRONGTRUSTEENAMESYNTAX 0x80040209L1895 #define CO_E_INVALIDSID 0x8004020AL1896 #define CO_E_CONVERSIONFAILED 0x8004020BL1897 #define CO_E_NOMATCHINGSIDFOUND 0x8004020CL1898 #define CO_E_LOOKUPACCSIDFAILED 0x8004020DL1899 #define CO_E_NOMATCHINGNAMEFOUND 0x8004020EL1900 #define CO_E_LOOKUPACCNAMEFAILED 0x8004020FL1901 #define CO_E_SETSERLHNDLFAILED 0x80040210L1902 #define CO_E_FAILEDTOGETWINDIR 0x80040211L1903 #define CO_E_PATHTOOLONG 0x80040212L1904 #define CO_E_FAILEDTOGENUUID 0x80040213L1905 #define CO_E_FAILEDTOCREATEFILE 0x80040214L1906 #define CO_E_FAILEDTOCLOSEHANDLE 0x80040215L1907 #define CO_E_EXCEEDSYSACLLIMIT 0x80040216L1908 #define CO_E_ACESINWRONGORDER 0x80040217L1909 #define CO_E_INCOMPATIBLESTREAMVERSION 0x80040218L1910 #define CO_E_FAILEDTOOPENPROCESSTOKEN 0x80040219L1911 #define CO_E_DECODEFAILED 0x8004021AL1912 #define CO_E_ACNOTINITIALIZED 0x8004021BL1913 1914 #define E_ACCESSDENIED 0x80070005L1915 #define E_HANDLE 0x80070006L1916 #define E_OUTOFMEMORY 0x8007000EL1917 #define E_INVALIDARG 0x80070057L1918 1919 /* For IKsPropertySets */1920 #define E_PROP_ID_UNSUPPORTED 0x80070490L1921 #define E_PROP_SET_UNSUPPORTED 0x80070492L1922 1923 #define CO_S_NOTALLINTERFACES 0x00080012L1924 1925 #define CO_E_CLASS_CREATE_FAILED 0x80080001L1926 #define CO_E_SCM_ERROR 0x80080002L1927 #define CO_E_SCM_RPC_FAILURE 0x80080003L1928 #define CO_E_BAD_PATH 0x80080004L1929 #define CO_E_SERVER_EXEC_FAILURE 0x80080005L1930 #define CO_E_OBJSRV_RPC_FAILURE 0x80080006L1931 #define MK_E_NO_NORMALIZED 0x80080007L1932 #define CO_E_SERVER_STOPPING 0x80080008L1933 #define MEM_E_INVALID_ROOT 0x80080009L1934 #define MEM_E_INVALID_LINK 0x80080010L1935 #define MEM_E_INVALID_SIZE 0x80080011L1936 1937 /*Cryptographic Error Codes */1938 #define NTE_BAD_UID 0x80090001L1939 #define NTE_BAD_HASH 0x80090002L1940 #define NTE_BAD_KEY 0x80090003L1941 #define NTE_BAD_LEN 0x80090004L1942 #define NTE_BAD_DATA 0x80090005L1943 #define NTE_BAD_SIGNATURE 0x80090006L1944 #define NTE_BAD_VER 0x80090007L1945 #define NTE_BAD_ALGID 0x80090008L1946 #define NTE_BAD_FLAGS 0x80090009L1947 #define NTE_BAD_TYPE 0x8009000AL1948 #define NTE_BAD_KEY_STATE 0x8009000BL1949 #define NTE_BAD_HASH_STATE 0x8009000CL1950 #define NTE_NO_KEY 0x8009000DL1951 #define NTE_NO_MEMORY 0x8009000EL1952 #define NTE_EXISTS 0x8009000FL1953 #define NTE_PERM 0x80090010L1954 #define NTE_NOT_FOUND 0x80090011L1955 #define NTE_DOUBLE_ENCRYPT 0x80090012L1956 #define NTE_BAD_PROVIDER 0x80090013L1957 #define NTE_BAD_PROV_TYPE 0x80090014L1958 #define NTE_BAD_PUBLIC_KEY 0x80090015L1959 #define NTE_BAD_KEYSET 0x80090016L1960 #define NTE_PROV_TYPE_NOT_DEF 0x80090017L1961 #define NTE_PROV_TYPE_ENTRY_BAD 0x80090018L1962 #define NTE_KEYSET_NOT_DEF 0x80090019L1963 #define NTE_KEYSET_ENTRY_BAD 0x8009001AL1964 #define NTE_PROV_TYPE_NO_MATCH 0x8009001BL1965 #define NTE_SIGNATURE_FILE_BAD 0x8009001CL1966 #define NTE_PROVIDER_DLL_FAIL 0x8009001DL1967 #define NTE_PROV_DLL_NOT_FOUND 0x8009001EL1968 #define NTE_BAD_KEYSET_PARAM 0x8009001FL1969 #define NTE_FAIL 0x80090020L1970 #define NTE_SYS_ERR 0x80090021L1971 #define NTE_OP_OK 01972 1973 #define SEC_E_INSUFFICIENT_MEMORY 0x80090300L1974 #define SEC_E_INVALID_HANDLE 0x80090301L1975 #define SEC_E_UNSUPPORTED_FUNCTION 0x80090302L1976 #define SEC_E_TARGET_UNKNOWN 0x80090303L1977 #define SEC_E_INTERNAL_ERROR 0x80090304L1978 #define SEC_E_SECPKG_NOT_FOUND 0x80090305L1979 #define SEC_E_NOT_OWNER 0x80090306L1980 #define SEC_E_CANNOT_INSTALL 0x80090307L1981 #define SEC_E_INVALID_TOKEN 0x80090308L1982 #define SEC_E_CANNOT_PACK 0x80090309L1983 #define SEC_E_QOP_NOT_SUPPORTED 0x8009030AL1984 #define SEC_E_NO_IMPERSONATION 0x8009030BL1985 #define SEC_E_LOGON_DENIED 0x8009030CL1986 #define SEC_E_UNKNOWN_CREDENTIALS 0x8009030DL1987 #define SEC_E_NO_CREDENTIALS 0x8009030EL1988 #define SEC_E_MESSAGE_ALTERED 0x8009030FL1989 #define SEC_E_OUT_OF_SEQUENCE 0x80090310L1990 #define SEC_E_NO_AUTHENTICATING_AUTHORITY 0x80090311L1991 #define SEC_E_BAD_PKGID 0x80090316L1992 #define SEC_E_CONTEXT_EXPIRED 0x80090317L1993 #define SEC_E_INCOMPLETE_MESSAGE 0x80090318L1994 #define SEC_E_INCOMPLETE_CREDENTIALS 0x80090320L1995 #define SEC_E_BUFFER_TOO_SMALL 0x80090321L1996 #define SEC_E_WRONG_PRINCIPAL 0x80090322L1997 #define SEC_E_UNTRUSTED_ROOT 0x80090325L1998 #define SEC_E_ILLEGAL_MESSAGE 0x80090326L1999 #define SEC_E_CERT_UNKNOWN 0x80090327L2000 #define SEC_E_CERT_EXPIRED 0x80090328L2001 #define SEC_E_ENCRYPT_FAILURE 0x80090329L2002 #define SEC_E_DECRYPT_FAILURE 0x80090330L2003 #define SEC_E_ALGORITHM_MISMATCH 0x80090331L2004 #define SEC_E_UNFINISHED_CONTEXT_DELETED 0x80090333L2005 #define SEC_E_NO_TGT_REPLY 0x80090334L2006 #define SEC_E_NO_IP_ADDRESSES 0x80090335L2007 #define SEC_E_WRONG_CREDENTIAL_HANDLE 0x80090336L2008 #define SEC_E_CRYPTO_SYSTEM_INVALID 0x80090337L2009 #define SEC_E_MAX_REFERRALS_EXCEEDED 0x80090338L2010 #define SEC_E_MUST_BE_KDC 0x80090339L2011 #define SEC_E_STRONG_CRYPTO_NOT_SUPPORTED 0x8009033AL2012 #define SEC_E_TOO_MANY_PRINCIPALS 0x8009033BL2013 #define SEC_E_NO_PA_DATA 0x8009033CL2014 #define SEC_E_PKINIT_NAME_MISMATCH 0x8009033DL2015 #define SEC_E_SMARTCARD_LOGON_REQUIRED 0x8009033EL2016 #define SEC_E_KDC_INVALID_REQUEST 0x80090340L2017 #define SEC_E_KDC_UNABLE_TO_REFER 0x80090341L2018 #define SEC_E_KDC_UNKNOWN_ETYPE 0x80090342L2019 #define SEC_E_UNSUPPORTED_PREAUTH 0x80090343L2020 #define SEC_E_BAD_BINDINGS 0x80090346L2021 #define SEC_E_MULTIPLE_ACCOUNTS 0x80090347L2022 #define SEC_E_NO_KERB_KEY 0x80090348L2023 2024 #define CRYPT_E_REVOKED 0x80092010L2025 #define CRYPT_E_NO_REVOCATION_CHECK 0x80092012L2026 #define CRYPT_E_REVOCATION_OFFLINE 0x80092013L2027 #define TRUST_E_CERT_SIGNATURE 0x80096004L2028 2029 /* Smart card management error codes */2030 #define SCARD_E_NO_SMARTCARD 0x8010000CL2031 #define SCARD_E_NO_SUCH_CERTIFICATE 0x8010002CL2032 #define SCARD_E_COMM_DATA_LOST 0x8010002FL2033 2034 #define SCARD_W_WRONG_CHV 0x8010006BL2035 #define SCARD_W_CHV_BLOCKED 0x8010006CL2036 #define SCARD_W_CARD_NOT_AUTHENTICATED 0x8010006FL2037 2038 /* Obtained from lcc-win32 include files */2039 #define GDI_ERROR 0xffffffff2040 2041 2474 #endif /* __WINE_WINERROR_H */ -
trunk/include/win/winreg.h
r9973 r21314 73 73 #define KEY_NOTIFY 0x00000010 74 74 #define KEY_CREATE_LINK 0x00000020 75 76 /* 77 * RegGetValue() restrictions 78 */ 79 80 #define RRF_RT_REG_NONE (1 << 0) 81 #define RRF_RT_REG_SZ (1 << 1) 82 #define RRF_RT_REG_EXPAND_SZ (1 << 2) 83 #define RRF_RT_REG_BINARY (1 << 3) 84 #define RRF_RT_REG_DWORD (1 << 4) 85 #define RRF_RT_REG_MULTI_SZ (1 << 5) 86 #define RRF_RT_REG_QWORD (1 << 6) 87 #define RRF_RT_DWORD (RRF_RT_REG_BINARY | RRF_RT_REG_DWORD) 88 #define RRF_RT_QWORD (RRF_RT_REG_BINARY | RRF_RT_REG_QWORD) 89 #define RRF_RT_ANY 0xffff 90 #define RRF_NOEXPAND (1 << 28) 91 #define RRF_ZEROONFAILURE (1 << 29) 75 92 76 93 #define KEY_READ (STANDARD_RIGHTS_READ| \ … … 205 222 #define RegQueryMultipleValues WINELIB_NAME_AW(RegQueryMultipleValues) 206 223 224 typedef LONG LSTATUS; 225 207 226 #endif /* __WINE_WINREG_H */ -
trunk/include/win/winternl.h
r9399 r21314 4 4 #include <ntddk.h> 5 5 6 #define InitializeObjectAttributes(p,n,a,r,s) \ 7 do { \ 8 (p)->Length = sizeof(OBJECT_ATTRIBUTES); \ 9 (p)->RootDirectory = r; \ 10 (p)->Attributes = a; \ 11 (p)->ObjectName = n; \ 12 (p)->SecurityDescriptor = s; \ 13 (p)->SecurityQualityOfService = NULL; \ 14 } while (0) 15 16 6 17 7 18 #endif /* __WINE_WINTERNL_H__ */ -
trunk/include/win/winuser.h
r21301 r21314 3297 3297 3298 3298 #define DEVICE_NOTIFY_WINDOW_HANDLE 0x00000000 3299 3300 /* used for GetWindowInfo() */ 3301 3302 #define WS_ACTIVECAPTION 0x0001 3303 3304 typedef struct tagWINDOWINFO { 3305 DWORD cbSize; 3306 RECT rcWindow; 3307 RECT rcClient; 3308 DWORD dwStyle; 3309 DWORD dwExStyle; 3310 DWORD dwWindowStatus; 3311 UINT cxWindowBorders; 3312 UINT cyWindowBorders; 3313 ATOM atomWindowType; 3314 WORD wCreatorVersion; 3315 } WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO; 3316 3299 3317 3300 3318 #include "poppack.h"
Note:
See TracChangeset
for help on using the changeset viewer.