1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _INC_CERTENROLL 7 #define _INC_CERTENROLL 8 9 #if (_WIN32_WINNT >= 0x0600) 10 #ifdef __cplusplus 11 extern "C" { 12 #endif 13 14 typedef enum AlgorithmFlags { 15 AlgorithmFlagsNone = 0x00000000, 16 AlgorithmFlagsWrap = 0x00000001 17 } AlgorithmFlags; 18 19 typedef enum AlgorithmOperationFlags { 20 XCN_NCRYPT_NO_OPERATION = 0, 21 XCN_NCRYPT_CIPHER_OPERATION = 0x1, 22 XCN_NCRYPT_HASH_OPERATION = 0x2, 23 XCN_NCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION = 0x4, 24 XCN_NCRYPT_SECRET_AGREEMENT_OPERATION = 0x8, 25 XCN_NCRYPT_SIGNATURE_OPERATION = 0x10, 26 XCN_NCRYPT_RNG_OPERATION = 0x20, 27 XCN_NCRYPT_ANY_ASYMMETRIC_OPERATION = ( ( 0x4 | 0x8 ) | 0x10 ), 28 XCN_NCRYPT_PREFER_SIGNATURE_ONLY_OPERATION = 0x00200000, 29 XCN_NCRYPT_PREFER_NON_SIGNATURE_OPERATION = 0x00400000, 30 XCN_NCRYPT_EXACT_MATCH_OPERATION = 0x00800000, 31 XCN_NCRYPT_PREFERENCE_MASK_OPERATION = 0x00e00000 32 } AlgorithmOperationFlags; 33 34 typedef enum AlgorithmType { 35 XCN_BCRYPT_UNKNOWN_INTERFACE = 0, 36 XCN_BCRYPT_SIGNATURE_INTERFACE = 0x5, 37 XCN_BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE = 0x3, 38 XCN_BCRYPT_CIPHER_INTERFACE = 0x1, 39 XCN_BCRYPT_HASH_INTERFACE = 0x2, 40 XCN_BCRYPT_SECRET_AGREEMENT_INTERFACE = 0x4, 41 XCN_BCRYPT_RNG_INTERFACE = 0x6 42 } AlgorithmType; 43 44 typedef enum AlternativeNameType { 45 XCN_CERT_ALT_NAME_UNKNOWN = 0, 46 XCN_CERT_ALT_NAME_OTHER_NAME = 1, 47 XCN_CERT_ALT_NAME_RFC822_NAME = 2, 48 XCN_CERT_ALT_NAME_DNS_NAME = 3, 49 XCN_CERT_ALT_NAME_DIRECTORY_NAME = 5, 50 XCN_CERT_ALT_NAME_URL = 7, 51 XCN_CERT_ALT_NAME_IP_ADDRESS = 8, 52 XCN_CERT_ALT_NAME_REGISTERED_ID = 9, 53 XCN_CERT_ALT_NAME_GUID = 10, 54 XCN_CERT_ALT_NAME_USER_PRINCIPLE_NAME = 11 55 } AlternativeNameType; 56 57 typedef enum CERTENROLL_PROPERTYID { 58 XCN_PROPERTYID_NONE = 0, 59 XCN_CERT_KEY_PROV_HANDLE_PROP_ID = 1, 60 XCN_CERT_KEY_PROV_INFO_PROP_ID = 2, 61 XCN_CERT_SHA1_HASH_PROP_ID = 3, 62 XCN_CERT_MD5_HASH_PROP_ID = 4, 63 XCN_CERT_HASH_PROP_ID = 3, 64 XCN_CERT_KEY_CONTEXT_PROP_ID = 5, 65 XCN_CERT_KEY_SPEC_PROP_ID = 6, 66 XCN_CERT_IE30_RESERVED_PROP_ID = 7, 67 XCN_CERT_PUBKEY_HASH_RESERVED_PROP_ID = 8, 68 XCN_CERT_ENHKEY_USAGE_PROP_ID = 9, 69 XCN_CERT_CTL_USAGE_PROP_ID = 9, 70 XCN_CERT_NEXT_UPDATE_LOCATION_PROP_ID = 10, 71 XCN_CERT_FRIENDLY_NAME_PROP_ID = 11, 72 XCN_CERT_PVK_FILE_PROP_ID = 12, 73 XCN_CERT_DESCRIPTION_PROP_ID = 13, 74 XCN_CERT_ACCESS_STATE_PROP_ID = 14, 75 XCN_CERT_SIGNATURE_HASH_PROP_ID = 15, 76 XCN_CERT_SMART_CARD_DATA_PROP_ID = 16, 77 XCN_CERT_EFS_PROP_ID = 17, 78 XCN_CERT_FORTEZZA_DATA_PROP_ID = 18, 79 XCN_CERT_ARCHIVED_PROP_ID = 19, 80 XCN_CERT_KEY_IDENTIFIER_PROP_ID = 20, 81 XCN_CERT_AUTO_ENROLL_PROP_ID = 21, 82 XCN_CERT_PUBKEY_ALG_PARA_PROP_ID = 22, 83 XCN_CERT_CROSS_CERT_DIST_POINTS_PROP_ID = 23, 84 XCN_CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID = 24, 85 XCN_CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID = 25, 86 XCN_CERT_ENROLLMENT_PROP_ID = 26, 87 XCN_CERT_DATE_STAMP_PROP_ID = 27, 88 XCN_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = 28, 89 XCN_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = 29, 90 XCN_CERT_EXTENDED_ERROR_INFO_PROP_ID = 30, 91 XCN_CERT_RENEWAL_PROP_ID = 64, 92 XCN_CERT_ARCHIVED_KEY_HASH_PROP_ID = 65, 93 XCN_CERT_AUTO_ENROLL_RETRY_PROP_ID = 66, 94 XCN_CERT_AIA_URL_RETRIEVED_PROP_ID = 67, 95 XCN_CERT_AUTHORITY_INFO_ACCESS_PROP_ID = 68, 96 XCN_CERT_BACKED_UP_PROP_ID = 69, 97 XCN_CERT_OCSP_RESPONSE_PROP_ID = 70, 98 XCN_CERT_REQUEST_ORIGINATOR_PROP_ID = 71, 99 XCN_CERT_SOURCE_LOCATION_PROP_ID = 72, 100 XCN_CERT_SOURCE_URL_PROP_ID = 73, 101 XCN_CERT_NEW_KEY_PROP_ID = 74, 102 XCN_CERT_FIRST_RESERVED_PROP_ID = 87, 103 XCN_CERT_LAST_RESERVED_PROP_ID = 0x7fff, 104 XCN_CERT_FIRST_USER_PROP_ID = 0x8000, 105 XCN_CERT_LAST_USER_PROP_ID = 0xffff, 106 XCN_CERT_STORE_LOCALIZED_NAME_PROP_ID = 0x1000, 107 XCN_CERT_CEP_PROP_ID = 87 108 } CERTENROLL_PROPERTYID; 109 110 typedef enum CERTENROLL_OBJECTID { 111 XCN_OID_NONE = 0, 112 XCN_OID_RSA = 1, 113 XCN_OID_PKCS = 2, 114 XCN_OID_RSA_HASH = 3, 115 XCN_OID_RSA_ENCRYPT = 4, 116 XCN_OID_PKCS_1 = 5, 117 XCN_OID_PKCS_2 = 6, 118 XCN_OID_PKCS_3 = 7, 119 XCN_OID_PKCS_4 = 8, 120 XCN_OID_PKCS_5 = 9, 121 XCN_OID_PKCS_6 = 10, 122 XCN_OID_PKCS_7 = 11, 123 XCN_OID_PKCS_8 = 12, 124 XCN_OID_PKCS_9 = 13, 125 XCN_OID_PKCS_10 = 14, 126 XCN_OID_PKCS_12 = 15, 127 XCN_OID_RSA_RSA = 16, 128 XCN_OID_RSA_MD2RSA = 17, 129 XCN_OID_RSA_MD4RSA = 18, 130 XCN_OID_RSA_MD5RSA = 19, 131 XCN_OID_RSA_SHA1RSA = 20, 132 XCN_OID_RSA_SETOAEP_RSA = 21, 133 XCN_OID_RSA_DH = 22, 134 XCN_OID_RSA_data = 23, 135 XCN_OID_RSA_signedData = 24, 136 XCN_OID_RSA_envelopedData = 25, 137 XCN_OID_RSA_signEnvData = 26, 138 XCN_OID_RSA_digestedData = 27, 139 XCN_OID_RSA_hashedData = 28, 140 XCN_OID_RSA_encryptedData = 29, 141 XCN_OID_RSA_emailAddr = 30, 142 XCN_OID_RSA_unstructName = 31, 143 XCN_OID_RSA_contentType = 32, 144 XCN_OID_RSA_messageDigest = 33, 145 XCN_OID_RSA_signingTime = 34, 146 XCN_OID_RSA_counterSign = 35, 147 XCN_OID_RSA_challengePwd = 36, 148 XCN_OID_RSA_unstructAddr = 37, 149 XCN_OID_RSA_extCertAttrs = 38, 150 XCN_OID_RSA_certExtensions = 39, 151 XCN_OID_RSA_SMIMECapabilities = 40, 152 XCN_OID_RSA_preferSignedData = 41, 153 XCN_OID_RSA_SMIMEalg = 42, 154 XCN_OID_RSA_SMIMEalgESDH = 43, 155 XCN_OID_RSA_SMIMEalgCMS3DESwrap = 44, 156 XCN_OID_RSA_SMIMEalgCMSRC2wrap = 45, 157 XCN_OID_RSA_MD2 = 46, 158 XCN_OID_RSA_MD4 = 47, 159 XCN_OID_RSA_MD5 = 48, 160 XCN_OID_RSA_RC2CBC = 49, 161 XCN_OID_RSA_RC4 = 50, 162 XCN_OID_RSA_DES_EDE3_CBC = 51, 163 XCN_OID_RSA_RC5_CBCPad = 52, 164 XCN_OID_ANSI_X942 = 53, 165 XCN_OID_ANSI_X942_DH = 54, 166 XCN_OID_X957 = 55, 167 XCN_OID_X957_DSA = 56, 168 XCN_OID_X957_SHA1DSA = 57, 169 XCN_OID_DS = 58, 170 XCN_OID_DSALG = 59, 171 XCN_OID_DSALG_CRPT = 60, 172 XCN_OID_DSALG_HASH = 61, 173 XCN_OID_DSALG_SIGN = 62, 174 XCN_OID_DSALG_RSA = 63, 175 XCN_OID_OIW = 64, 176 XCN_OID_OIWSEC = 65, 177 XCN_OID_OIWSEC_md4RSA = 66, 178 XCN_OID_OIWSEC_md5RSA = 67, 179 XCN_OID_OIWSEC_md4RSA2 = 68, 180 XCN_OID_OIWSEC_desECB = 69, 181 XCN_OID_OIWSEC_desCBC = 70, 182 XCN_OID_OIWSEC_desOFB = 71, 183 XCN_OID_OIWSEC_desCFB = 72, 184 XCN_OID_OIWSEC_desMAC = 73, 185 XCN_OID_OIWSEC_rsaSign = 74, 186 XCN_OID_OIWSEC_dsa = 75, 187 XCN_OID_OIWSEC_shaDSA = 76, 188 XCN_OID_OIWSEC_mdc2RSA = 77, 189 XCN_OID_OIWSEC_shaRSA = 78, 190 XCN_OID_OIWSEC_dhCommMod = 79, 191 XCN_OID_OIWSEC_desEDE = 80, 192 XCN_OID_OIWSEC_sha = 81, 193 XCN_OID_OIWSEC_mdc2 = 82, 194 XCN_OID_OIWSEC_dsaComm = 83, 195 XCN_OID_OIWSEC_dsaCommSHA = 84, 196 XCN_OID_OIWSEC_rsaXchg = 85, 197 XCN_OID_OIWSEC_keyHashSeal = 86, 198 XCN_OID_OIWSEC_md2RSASign = 87, 199 XCN_OID_OIWSEC_md5RSASign = 88, 200 XCN_OID_OIWSEC_sha1 = 89, 201 XCN_OID_OIWSEC_dsaSHA1 = 90, 202 XCN_OID_OIWSEC_dsaCommSHA1 = 91, 203 XCN_OID_OIWSEC_sha1RSASign = 92, 204 XCN_OID_OIWDIR = 93, 205 XCN_OID_OIWDIR_CRPT = 94, 206 XCN_OID_OIWDIR_HASH = 95, 207 XCN_OID_OIWDIR_SIGN = 96, 208 XCN_OID_OIWDIR_md2 = 97, 209 XCN_OID_OIWDIR_md2RSA = 98, 210 XCN_OID_INFOSEC = 99, 211 XCN_OID_INFOSEC_sdnsSignature = 100, 212 XCN_OID_INFOSEC_mosaicSignature = 101, 213 XCN_OID_INFOSEC_sdnsConfidentiality = 102, 214 XCN_OID_INFOSEC_mosaicConfidentiality = 103, 215 XCN_OID_INFOSEC_sdnsIntegrity = 104, 216 XCN_OID_INFOSEC_mosaicIntegrity = 105, 217 XCN_OID_INFOSEC_sdnsTokenProtection = 106, 218 XCN_OID_INFOSEC_mosaicTokenProtection = 107, 219 XCN_OID_INFOSEC_sdnsKeyManagement = 108, 220 XCN_OID_INFOSEC_mosaicKeyManagement = 109, 221 XCN_OID_INFOSEC_sdnsKMandSig = 110, 222 XCN_OID_INFOSEC_mosaicKMandSig = 111, 223 XCN_OID_INFOSEC_SuiteASignature = 112, 224 XCN_OID_INFOSEC_SuiteAConfidentiality = 113, 225 XCN_OID_INFOSEC_SuiteAIntegrity = 114, 226 XCN_OID_INFOSEC_SuiteATokenProtection = 115, 227 XCN_OID_INFOSEC_SuiteAKeyManagement = 116, 228 XCN_OID_INFOSEC_SuiteAKMandSig = 117, 229 XCN_OID_INFOSEC_mosaicUpdatedSig = 118, 230 XCN_OID_INFOSEC_mosaicKMandUpdSig = 119, 231 XCN_OID_INFOSEC_mosaicUpdatedInteg = 120, 232 XCN_OID_COMMON_NAME = 121, 233 XCN_OID_SUR_NAME = 122, 234 XCN_OID_DEVICE_SERIAL_NUMBER = 123, 235 XCN_OID_COUNTRY_NAME = 124, 236 XCN_OID_LOCALITY_NAME = 125, 237 XCN_OID_STATE_OR_PROVINCE_NAME = 126, 238 XCN_OID_STREET_ADDRESS = 127, 239 XCN_OID_ORGANIZATION_NAME = 128, 240 XCN_OID_ORGANIZATIONAL_UNIT_NAME = 129, 241 XCN_OID_TITLE = 130, 242 XCN_OID_DESCRIPTION = 131, 243 XCN_OID_SEARCH_GUIDE = 132, 244 XCN_OID_BUSINESS_CATEGORY = 133, 245 XCN_OID_POSTAL_ADDRESS = 134, 246 XCN_OID_POSTAL_CODE = 135, 247 XCN_OID_POST_OFFICE_BOX = 136, 248 XCN_OID_PHYSICAL_DELIVERY_OFFICE_NAME = 137, 249 XCN_OID_TELEPHONE_NUMBER = 138, 250 XCN_OID_TELEX_NUMBER = 139, 251 XCN_OID_TELETEXT_TERMINAL_IDENTIFIER = 140, 252 XCN_OID_FACSIMILE_TELEPHONE_NUMBER = 141, 253 XCN_OID_X21_ADDRESS = 142, 254 XCN_OID_INTERNATIONAL_ISDN_NUMBER = 143, 255 XCN_OID_REGISTERED_ADDRESS = 144, 256 XCN_OID_DESTINATION_INDICATOR = 145, 257 XCN_OID_PREFERRED_DELIVERY_METHOD = 146, 258 XCN_OID_PRESENTATION_ADDRESS = 147, 259 XCN_OID_SUPPORTED_APPLICATION_CONTEXT = 148, 260 XCN_OID_MEMBER = 149, 261 XCN_OID_OWNER = 150, 262 XCN_OID_ROLE_OCCUPANT = 151, 263 XCN_OID_SEE_ALSO = 152, 264 XCN_OID_USER_PASSWORD = 153, 265 XCN_OID_USER_CERTIFICATE = 154, 266 XCN_OID_CA_CERTIFICATE = 155, 267 XCN_OID_AUTHORITY_REVOCATION_LIST = 156, 268 XCN_OID_CERTIFICATE_REVOCATION_LIST = 157, 269 XCN_OID_CROSS_CERTIFICATE_PAIR = 158, 270 XCN_OID_GIVEN_NAME = 159, 271 XCN_OID_INITIALS = 160, 272 XCN_OID_DN_QUALIFIER = 161, 273 XCN_OID_DOMAIN_COMPONENT = 162, 274 XCN_OID_PKCS_12_FRIENDLY_NAME_ATTR = 163, 275 XCN_OID_PKCS_12_LOCAL_KEY_ID = 164, 276 XCN_OID_PKCS_12_KEY_PROVIDER_NAME_ATTR = 165, 277 XCN_OID_LOCAL_MACHINE_KEYSET = 166, 278 XCN_OID_PKCS_12_EXTENDED_ATTRIBUTES = 167, 279 XCN_OID_KEYID_RDN = 168, 280 XCN_OID_AUTHORITY_KEY_IDENTIFIER = 169, 281 XCN_OID_KEY_ATTRIBUTES = 170, 282 XCN_OID_CERT_POLICIES_95 = 171, 283 XCN_OID_KEY_USAGE_RESTRICTION = 172, 284 XCN_OID_SUBJECT_ALT_NAME = 173, 285 XCN_OID_ISSUER_ALT_NAME = 174, 286 XCN_OID_BASIC_CONSTRAINTS = 175, 287 XCN_OID_KEY_USAGE = 176, 288 XCN_OID_PRIVATEKEY_USAGE_PERIOD = 177, 289 XCN_OID_BASIC_CONSTRAINTS2 = 178, 290 XCN_OID_CERT_POLICIES = 179, 291 XCN_OID_ANY_CERT_POLICY = 180, 292 XCN_OID_AUTHORITY_KEY_IDENTIFIER2 = 181, 293 XCN_OID_SUBJECT_KEY_IDENTIFIER = 182, 294 XCN_OID_SUBJECT_ALT_NAME2 = 183, 295 XCN_OID_ISSUER_ALT_NAME2 = 184, 296 XCN_OID_CRL_REASON_CODE = 185, 297 XCN_OID_REASON_CODE_HOLD = 186, 298 XCN_OID_CRL_DIST_POINTS = 187, 299 XCN_OID_ENHANCED_KEY_USAGE = 188, 300 XCN_OID_CRL_NUMBER = 189, 301 XCN_OID_DELTA_CRL_INDICATOR = 190, 302 XCN_OID_ISSUING_DIST_POINT = 191, 303 XCN_OID_FRESHEST_CRL = 192, 304 XCN_OID_NAME_CONSTRAINTS = 193, 305 XCN_OID_POLICY_MAPPINGS = 194, 306 XCN_OID_LEGACY_POLICY_MAPPINGS = 195, 307 XCN_OID_POLICY_CONSTRAINTS = 196, 308 XCN_OID_RENEWAL_CERTIFICATE = 197, 309 XCN_OID_ENROLLMENT_NAME_VALUE_PAIR = 198, 310 XCN_OID_ENROLLMENT_CSP_PROVIDER = 199, 311 XCN_OID_OS_VERSION = 200, 312 XCN_OID_ENROLLMENT_AGENT = 201, 313 XCN_OID_PKIX = 202, 314 XCN_OID_PKIX_PE = 203, 315 XCN_OID_AUTHORITY_INFO_ACCESS = 204, 316 XCN_OID_BIOMETRIC_EXT = 205, 317 XCN_OID_LOGOTYPE_EXT = 206, 318 XCN_OID_CERT_EXTENSIONS = 207, 319 XCN_OID_NEXT_UPDATE_LOCATION = 208, 320 XCN_OID_REMOVE_CERTIFICATE = 209, 321 XCN_OID_CROSS_CERT_DIST_POINTS = 210, 322 XCN_OID_CTL = 211, 323 XCN_OID_SORTED_CTL = 212, 324 XCN_OID_SERIALIZED = 213, 325 XCN_OID_NT_PRINCIPAL_NAME = 214, 326 XCN_OID_PRODUCT_UPDATE = 215, 327 XCN_OID_ANY_APPLICATION_POLICY = 216, 328 XCN_OID_AUTO_ENROLL_CTL_USAGE = 217, 329 XCN_OID_ENROLL_CERTTYPE_EXTENSION = 218, 330 XCN_OID_CERT_MANIFOLD = 219, 331 XCN_OID_CERTSRV_CA_VERSION = 220, 332 XCN_OID_CERTSRV_PREVIOUS_CERT_HASH = 221, 333 XCN_OID_CRL_VIRTUAL_BASE = 222, 334 XCN_OID_CRL_NEXT_PUBLISH = 223, 335 XCN_OID_KP_CA_EXCHANGE = 224, 336 XCN_OID_KP_KEY_RECOVERY_AGENT = 225, 337 XCN_OID_CERTIFICATE_TEMPLATE = 226, 338 XCN_OID_ENTERPRISE_OID_ROOT = 227, 339 XCN_OID_RDN_DUMMY_SIGNER = 228, 340 XCN_OID_APPLICATION_CERT_POLICIES = 229, 341 XCN_OID_APPLICATION_POLICY_MAPPINGS = 230, 342 XCN_OID_APPLICATION_POLICY_CONSTRAINTS = 231, 343 XCN_OID_ARCHIVED_KEY_ATTR = 232, 344 XCN_OID_CRL_SELF_CDP = 233, 345 XCN_OID_REQUIRE_CERT_CHAIN_POLICY = 234, 346 XCN_OID_ARCHIVED_KEY_CERT_HASH = 235, 347 XCN_OID_ISSUED_CERT_HASH = 236, 348 XCN_OID_DS_EMAIL_REPLICATION = 237, 349 XCN_OID_REQUEST_CLIENT_INFO = 238, 350 XCN_OID_ENCRYPTED_KEY_HASH = 239, 351 XCN_OID_CERTSRV_CROSSCA_VERSION = 240, 352 XCN_OID_NTDS_REPLICATION = 241, 353 XCN_OID_SUBJECT_DIR_ATTRS = 242, 354 XCN_OID_PKIX_KP = 243, 355 XCN_OID_PKIX_KP_SERVER_AUTH = 244, 356 XCN_OID_PKIX_KP_CLIENT_AUTH = 245, 357 XCN_OID_PKIX_KP_CODE_SIGNING = 246, 358 XCN_OID_PKIX_KP_EMAIL_PROTECTION = 247, 359 XCN_OID_PKIX_KP_IPSEC_END_SYSTEM = 248, 360 XCN_OID_PKIX_KP_IPSEC_TUNNEL = 249, 361 XCN_OID_PKIX_KP_IPSEC_USER = 250, 362 XCN_OID_PKIX_KP_TIMESTAMP_SIGNING = 251, 363 XCN_OID_PKIX_KP_OCSP_SIGNING = 252, 364 XCN_OID_PKIX_OCSP_NOCHECK = 253, 365 XCN_OID_IPSEC_KP_IKE_INTERMEDIATE = 254, 366 XCN_OID_KP_CTL_USAGE_SIGNING = 255, 367 XCN_OID_KP_TIME_STAMP_SIGNING = 256, 368 XCN_OID_SERVER_GATED_CRYPTO = 257, 369 XCN_OID_SGC_NETSCAPE = 258, 370 XCN_OID_KP_EFS = 259, 371 XCN_OID_EFS_RECOVERY = 260, 372 XCN_OID_WHQL_CRYPTO = 261, 373 XCN_OID_NT5_CRYPTO = 262, 374 XCN_OID_OEM_WHQL_CRYPTO = 263, 375 XCN_OID_EMBEDDED_NT_CRYPTO = 264, 376 XCN_OID_ROOT_LIST_SIGNER = 265, 377 XCN_OID_KP_QUALIFIED_SUBORDINATION = 266, 378 XCN_OID_KP_KEY_RECOVERY = 267, 379 XCN_OID_KP_DOCUMENT_SIGNING = 268, 380 XCN_OID_KP_LIFETIME_SIGNING = 269, 381 XCN_OID_KP_MOBILE_DEVICE_SOFTWARE = 270, 382 XCN_OID_KP_SMART_DISPLAY = 271, 383 XCN_OID_KP_CSP_SIGNATURE = 272, 384 XCN_OID_DRM = 273, 385 XCN_OID_DRM_INDIVIDUALIZATION = 274, 386 XCN_OID_LICENSES = 275, 387 XCN_OID_LICENSE_SERVER = 276, 388 XCN_OID_KP_SMARTCARD_LOGON = 277, 389 XCN_OID_YESNO_TRUST_ATTR = 278, 390 XCN_OID_PKIX_POLICY_QUALIFIER_CPS = 279, 391 XCN_OID_PKIX_POLICY_QUALIFIER_USERNOTICE = 280, 392 XCN_OID_CERT_POLICIES_95_QUALIFIER1 = 281, 393 XCN_OID_PKIX_ACC_DESCR = 282, 394 XCN_OID_PKIX_OCSP = 283, 395 XCN_OID_PKIX_CA_ISSUERS = 284, 396 XCN_OID_VERISIGN_PRIVATE_6_9 = 285, 397 XCN_OID_VERISIGN_ONSITE_JURISDICTION_HASH = 286, 398 XCN_OID_VERISIGN_BITSTRING_6_13 = 287, 399 XCN_OID_VERISIGN_ISS_STRONG_CRYPTO = 288, 400 XCN_OID_NETSCAPE = 289, 401 XCN_OID_NETSCAPE_CERT_EXTENSION = 290, 402 XCN_OID_NETSCAPE_CERT_TYPE = 291, 403 XCN_OID_NETSCAPE_BASE_URL = 292, 404 XCN_OID_NETSCAPE_REVOCATION_URL = 293, 405 XCN_OID_NETSCAPE_CA_REVOCATION_URL = 294, 406 XCN_OID_NETSCAPE_CERT_RENEWAL_URL = 295, 407 XCN_OID_NETSCAPE_CA_POLICY_URL = 296, 408 XCN_OID_NETSCAPE_SSL_SERVER_NAME = 297, 409 XCN_OID_NETSCAPE_COMMENT = 298, 410 XCN_OID_NETSCAPE_DATA_TYPE = 299, 411 XCN_OID_NETSCAPE_CERT_SEQUENCE = 300, 412 XCN_OID_CT_PKI_DATA = 301, 413 XCN_OID_CT_PKI_RESPONSE = 302, 414 XCN_OID_PKIX_NO_SIGNATURE = 303, 415 XCN_OID_CMC = 304, 416 XCN_OID_CMC_STATUS_INFO = 305, 417 XCN_OID_CMC_IDENTIFICATION = 306, 418 XCN_OID_CMC_IDENTITY_PROOF = 307, 419 XCN_OID_CMC_DATA_RETURN = 308, 420 XCN_OID_CMC_TRANSACTION_ID = 309, 421 XCN_OID_CMC_SENDER_NONCE = 310, 422 XCN_OID_CMC_RECIPIENT_NONCE = 311, 423 XCN_OID_CMC_ADD_EXTENSIONS = 312, 424 XCN_OID_CMC_ENCRYPTED_POP = 313, 425 XCN_OID_CMC_DECRYPTED_POP = 314, 426 XCN_OID_CMC_LRA_POP_WITNESS = 315, 427 XCN_OID_CMC_GET_CERT = 316, 428 XCN_OID_CMC_GET_CRL = 317, 429 XCN_OID_CMC_REVOKE_REQUEST = 318, 430 XCN_OID_CMC_REG_INFO = 319, 431 XCN_OID_CMC_RESPONSE_INFO = 320, 432 XCN_OID_CMC_QUERY_PENDING = 321, 433 XCN_OID_CMC_ID_POP_LINK_RANDOM = 322, 434 XCN_OID_CMC_ID_POP_LINK_WITNESS = 323, 435 XCN_OID_CMC_ID_CONFIRM_CERT_ACCEPTANCE = 324, 436 XCN_OID_CMC_ADD_ATTRIBUTES = 325, 437 XCN_OID_LOYALTY_OTHER_LOGOTYPE = 326, 438 XCN_OID_BACKGROUND_OTHER_LOGOTYPE = 327, 439 XCN_OID_PKIX_OCSP_BASIC_SIGNED_RESPONSE = 328, 440 XCN_OID_PKCS_7_DATA = 329, 441 XCN_OID_PKCS_7_SIGNED = 330, 442 XCN_OID_PKCS_7_ENVELOPED = 331, 443 XCN_OID_PKCS_7_SIGNEDANDENVELOPED = 332, 444 XCN_OID_PKCS_7_DIGESTED = 333, 445 XCN_OID_PKCS_7_ENCRYPTED = 334, 446 XCN_OID_PKCS_9_CONTENT_TYPE = 335, 447 XCN_OID_PKCS_9_MESSAGE_DIGEST = 336, 448 XCN_OID_CERT_PROP_ID_PREFIX = 337, 449 XCN_OID_CERT_KEY_IDENTIFIER_PROP_ID = 338, 450 XCN_OID_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = 339, 451 XCN_OID_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = 340, 452 XCN_OID_CERT_MD5_HASH_PROP_ID = 341, 453 XCN_OID_RSA_SHA256RSA = 342, 454 XCN_OID_RSA_SHA384RSA = 343, 455 XCN_OID_RSA_SHA512RSA = 344, 456 XCN_OID_NIST_sha256 = 345, 457 XCN_OID_NIST_sha384 = 346, 458 XCN_OID_NIST_sha512 = 347, 459 XCN_OID_RSA_MGF1 = 348, 460 XCN_OID_ECC_PUBLIC_KEY = 349, 461 XCN_OID_RSA_SSA_PSS = 353, 462 XCN_OID_ECDSA_SHA1 = 354, 463 XCN_OID_ECDSA_SPECIFIED = 354 464 } CERTENROLL_OBJECTID; 465 466 typedef enum EnrollmentCAProperty { 467 CAPropCommonName = 1, 468 CAPropDistinguishedName = 2, 469 CAPropSanitizedName = 3, 470 CAPropSanitizedShortName = 4, 471 CAPropDNSName = 5, 472 CAPropCertificateTypes = 6, 473 CAPropCertificate = 7, 474 CAPropDescription = 8, 475 CAPropWebServers = 9, 476 CAPropSiteName = 10, 477 CAPropSecurity = 11, 478 CAPropRenewalOnly = 12 479 } EnrollmentCAProperty; 480 481 typedef enum EncodingType { 482 XCN_CRYPT_STRING_BASE64HEADER = 0, 483 XCN_CRYPT_STRING_BASE64 = 0x1, 484 XCN_CRYPT_STRING_BINARY = 0x2, 485 XCN_CRYPT_STRING_BASE64REQUESTHEADER = 0x3, 486 XCN_CRYPT_STRING_HEX = 0x4, 487 XCN_CRYPT_STRING_HEXASCII = 0x5, 488 XCN_CRYPT_STRING_BASE64_ANY = 0x6, 489 XCN_CRYPT_STRING_ANY = 0x7, 490 XCN_CRYPT_STRING_HEX_ANY = 0x8, 491 XCN_CRYPT_STRING_BASE64X509CRLHEADER = 0x9, 492 XCN_CRYPT_STRING_HEXADDR = 0xa, 493 XCN_CRYPT_STRING_HEXASCIIADDR = 0xb, 494 XCN_CRYPT_STRING_HEXRAW = 0xc, 495 XCN_CRYPT_STRING_NOCRLF = 0x40000000, 496 XCN_CRYPT_STRING_NOCR = 0x80000000 497 } EncodingType; 498 499 typedef enum CommitTemplateFlags { 500 CommitFlagSaveTemplateGenerateOID = 1, 501 CommitFlagSaveTemplateUseCurrentOID = 2, 502 CommitFlagSaveTemplateOverwrite = 3, 503 CommitFlagDeleteTemplate = 4 504 } CommitTemplateFlags; 505 506 typedef enum EnrollmentDisplayStatus { 507 DisplayNo = 0, 508 DisplayYes = 1 509 } EnrollmentDisplayStatus; 510 511 typedef enum EnrollmentEnrollStatus { 512 Enrolled = 0x00000001, 513 EnrollPended = 0x00000002, 514 EnrollUIDeferredEnrollmentRequired = 0x00000004, 515 EnrollError = 0x00000010, 516 EnrollUnknown = 0x00000020, 517 EnrollSkipped = 0x00000040, 518 EnrollDenied = 0x00000100 519 } EnrollmentEnrollStatus; 520 521 #if (_WIN32_WINNT >= 0x0601) 522 enum EnrollmentPolicyFlags { 523 DisableGroupPolicyList = 0x2, 524 DisableUserServerList = 0x4 525 }; 526 527 typedef enum EnrollmentPolicyServerPropertyFlags { 528 DefaultNone = 0x00000000, 529 DefaultPolicyServer = 0x00000001 530 } EnrollmentPolicyServerPropertyFlags; 531 532 #endif /*(_WIN32_WINNT >= 0x0601)*/ 533 534 typedef enum EnrollmentSelectionStatus { 535 SelectedNo = 0, 536 SelectedYes = 1 537 } EnrollmentSelectionStatus; 538 539 #if (_WIN32_WINNT >= 0x0601) 540 541 typedef enum EnrollmentTemplateProperty { 542 TemplatePropCommonName = 1, 543 TemplatePropFriendlyName = 2, 544 TemplatePropEKUs = 3, 545 TemplatePropCryptoProviders = 4, 546 TemplatePropMajorRevision = 5, 547 TemplatePropDescription = 6, 548 TemplatePropKeySpec = 7, 549 TemplatePropSchemaVersion = 8, 550 TemplatePropMinorRevision = 9, 551 TemplatePropRASignatureCount = 10, 552 TemplatePropMinimumKeySize = 11, 553 TemplatePropOID = 12, 554 TemplatePropSupersede = 13, 555 TemplatePropRACertificatePolicies = 14, 556 TemplatePropRAEKUs = 15, 557 TemplatePropCertificatePolicies = 16, 558 TemplatePropV1ApplicationPolicy = 17, 559 TemplatePropAsymmetricAlgorithm = 18, 560 TemplatePropKeySecurityDescriptor = 19, 561 TemplatePropSymmetricAlgorithm = 20, 562 TemplatePropSymmetricKeyLength = 21, 563 TemplatePropHashAlgorithm = 22, 564 TemplatePropEnrollmentFlags = 23, 565 TemplatePropSubjectNameFlags = 24, 566 TemplatePropPrivateKeyFlags = 25, 567 TemplatePropGeneralFlags = 26, 568 TemplatePropSecurityDescriptor = 27, 569 TemplatePropExtensions = 28, 570 TemplatePropValidityPeriod = 29, 571 TemplatePropRenewalPeriod = 30 572 } EnrollmentTemplateProperty; 573 #endif /*(_WIN32_WINNT >= 0x0601)*/ 574 575 typedef enum InnerRequestLevel { 576 LevelInnermost = 0, 577 LevelNext = 1 578 } InnerRequestLevel; 579 580 typedef enum InstallResponseRestrictionFlags { 581 AllowNone = 0x00000000, 582 AllowNoOutstandingRequest = 0x00000001, 583 AllowUntrustedCertificate = 0x00000002, 584 AllowUntrustedRoot = 0x00000004 585 } InstallResponseRestrictionFlags; 586 587 typedef enum KeyIdentifierHashAlgorithm { 588 SKIHashDefault = 0, 589 SKIHashSha1 = 1, 590 SKIHashCapiSha1 = 2 591 } KeyIdentifierHashAlgorithm; 592 593 typedef enum ObjectIdGroupId { 594 XCN_CRYPT_ANY_GROUP_ID = 0, 595 XCN_CRYPT_HASH_ALG_OID_GROUP_ID = 1, 596 XCN_CRYPT_ENCRYPT_ALG_OID_GROUP_ID = 2, 597 XCN_CRYPT_PUBKEY_ALG_OID_GROUP_ID = 3, 598 XCN_CRYPT_SIGN_ALG_OID_GROUP_ID = 4, 599 XCN_CRYPT_RDN_ATTR_OID_GROUP_ID = 5, 600 XCN_CRYPT_EXT_OR_ATTR_OID_GROUP_ID = 6, 601 XCN_CRYPT_ENHKEY_USAGE_OID_GROUP_ID = 7, 602 XCN_CRYPT_POLICY_OID_GROUP_ID = 8, 603 XCN_CRYPT_TEMPLATE_OID_GROUP_ID = 9, 604 XCN_CRYPT_LAST_OID_GROUP_ID = 9, 605 XCN_CRYPT_FIRST_ALG_OID_GROUP_ID = 1, 606 XCN_CRYPT_LAST_ALG_OID_GROUP_ID = 4, 607 XCN_CRYPT_OID_DISABLE_SEARCH_DS_FLAG = 0x80000000, 608 XCN_CRYPT_KEY_LENGTH_MASK = 0xffff0000 609 } ObjectIdGroupId; 610 611 typedef enum ObjectIdPublicKeyFlags { 612 XCN_CRYPT_OID_INFO_PUBKEY_ANY = 0, 613 XCN_CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG = 0x80000000, 614 XCN_CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG = 0x40000000 615 } ObjectIdPublicKeyFlags; 616 617 typedef enum PFXExportOptions { 618 PFXExportEEOnly = 0, 619 PFXExportChainNoRoot = 1, 620 PFXExportChainWithRoot = 2 621 } PFXExportOptions; 622 623 typedef enum Pkcs10AllowedSignatureTypes { 624 AllowedKeySignature = 0x1, 625 AllowedNullSignature = 0x2 626 } Pkcs10AllowedSignatureTypes; 627 628 typedef enum PolicyQualifierType { 629 PolicyQualifierTypeUnknown = 0, 630 PolicyQualifierTypeUrl = 1, 631 PolicyQualifierTypeUserNotice = 2 632 } PolicyQualifierType; 633 634 typedef enum PolicyServerUrlFlags { 635 PsfNone = 0, 636 PsfLocationGroupPolicy = 1, 637 PsfLocationRegistry = 2, 638 PsfUseClientId = 4, 639 PsfAutoEnrollmentEnabled = 16, 640 PsfAllowUnTrustedCA = 32 641 } PolicyServerUrlFlags; 642 643 #if (_WIN32_WINNT >= 0x0601) 644 645 typedef enum PolicyServerUrlPropertyID { 646 PsPolicyID = 0, 647 PsFriendlyName = 1 648 } PolicyServerUrlPropertyID; 649 650 #endif /*(_WIN32_WINNT >= 0x0601)*/ 651 652 typedef enum RequestClientInfoClientId { 653 ClientIdNone = 0, 654 ClientIdXEnroll2003 = 1, 655 ClientIdAutoEnroll2003 = 2, 656 ClientIdWizard2003 = 3, 657 ClientIdCertReq2003 = 4, 658 ClientIdDefaultRequest = 5, 659 ClientIdAutoEnroll = 6, 660 ClientIdRequestWizard = 7, 661 ClientIdEOBO = 8, 662 ClientIdCertReq = 9, 663 ClientIdTest = 10, 664 ClientIdUserStart = 1000 665 } RequestClientInfoClientId; 666 667 #if (_WIN32_WINNT >= 0x0601) 668 669 typedef enum WebEnrollmentFlags { 670 EnrollPrompt = 0x00000001 671 } WebEnrollmentFlags; 672 673 #endif /*(_WIN32_WINNT >= 0x0601)*/ 674 675 typedef enum WebSecurityLevel { 676 LevelUnsafe = 0, 677 LevelSafe = 1 678 } WebSecurityLevel; 679 680 typedef enum X500NameFlags { 681 XCN_CERT_NAME_STR_NONE = 0, 682 XCN_CERT_SIMPLE_NAME_STR = 1, 683 XCN_CERT_OID_NAME_STR = 2, 684 XCN_CERT_X500_NAME_STR = 3, 685 XCN_CERT_XML_NAME_STR = 4, 686 XCN_CERT_NAME_STR_SEMICOLON_FLAG = 0x40000000, 687 XCN_CERT_NAME_STR_NO_PLUS_FLAG = 0x20000000, 688 XCN_CERT_NAME_STR_NO_QUOTING_FLAG = 0x10000000, 689 XCN_CERT_NAME_STR_CRLF_FLAG = 0x8000000, 690 XCN_CERT_NAME_STR_COMMA_FLAG = 0x4000000, 691 XCN_CERT_NAME_STR_REVERSE_FLAG = 0x2000000, 692 XCN_CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG = 0x10000, 693 XCN_CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG = 0x20000, 694 XCN_CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG = 0x40000, 695 XCN_CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG = 0x80000, 696 XCN_CERT_NAME_STR_DISABLE_UTF8_DIR_STR_FLAG = 0x100000 697 } X500NameFlags; 698 699 typedef enum X509CertificateEnrollmentContext { 700 ContextUser = 0x1, 701 ContextMachine = 0x2, 702 ContextAdministratorForceMachine = 0x3 703 } X509CertificateEnrollmentContext; 704 705 #if (_WIN32_WINNT >= 0x0601) 706 707 typedef enum X509CertificateTemplateEnrollmentFlag { 708 EnrollmentIncludeSymmetricAlgorithms = CT_FLAG_INCLUDE_SYMMETRIC_ALGORITHMS, 709 EnrollmentPendAllRequests = CT_FLAG_PEND_ALL_REQUESTS, 710 EnrollmentPublishToKRAContainer = CT_FLAG_PUBLISH_TO_KRA_CONTAINER, 711 EnrollmentPublishToDS = CT_FLAG_PUBLISH_TO_DS, 712 EnrollmentAutoEnrollmentCheckUserDSCertificate = CT_FLAG_AUTO_ENROLLMENT_CHECK_USER_DS_CERTIFICATE, 713 EnrollmentAutoEnrollment = CT_FLAG_AUTO_ENROLLMENT, 714 EnrollmentDomainAuthenticationNotRequired = CT_FLAG_DOMAIN_AUTHENTICATION_NOT_REQUIRED, 715 EnrollmentPreviousApprovalValidateReenrollment = CT_FLAG_PREVIOUS_APPROVAL_VALIDATE_REENROLLMENT, 716 EnrollmentUserInteractionRequired = CT_FLAG_USER_INTERACTION_REQUIRED, 717 EnrollmentAddTemplateName = CT_FLAG_ADD_TEMPLATE_NAME, 718 EnrollmentRemoveInvalidCertificateFromPersonalStore = CT_FLAG_REMOVE_INVALID_CERTIFICATE_FROM_PERSONAL_STORE, 719 EnrollmentAllowEnrollOnBehalfOf = CT_FLAG_ALLOW_ENROLL_ON_BEHALF_OF, 720 EnrollmentAddOCSPNoCheck = CT_FLAG_ADD_OCSP_NOCHECK, 721 EnrollmentReuseKeyOnFullSmartCard = CT_FLAG_ENABLE_KEY_REUSE_ON_NT_TOKEN_KEYSET_STORAGE_FULL, 722 EnrollmentNoRevocationInfoInCerts = CT_FLAG_NOREVOCATIONINFOINISSUEDCERTS, 723 EnrollmentIncludeBasicConstraintsForEECerts = CT_FLAG_INCLUDE_BASIC_CONSTRAINTS_FOR_EE_CERTS 724 } X509CertificateTemplateEnrollmentFlag; 725 726 typedef enum X509CertificateTemplateGeneralFlag { 727 GeneralMachineType = CT_FLAG_MACHINE_TYPE, 728 GeneralCA = CT_FLAG_IS_CA, 729 GeneralCrossCA = CT_FLAG_IS_CROSS_CA, 730 GeneralDefault = CT_FLAG_IS_DEFAULT, 731 GeneralModified = CT_FLAG_IS_MODIFIED, 732 GeneralDonotPersist = CT_FLAG_DONOTPERSISTINDB 733 } X509CertificateTemplateGeneralFlag; 734 735 typedef enum X509CertificateTemplatePrivateKeyFlag { 736 PrivateKeyRequireArchival = CT_FLAG_REQUIRE_PRIVATE_KEY_ARCHIVAL, 737 PrivateKeyExportable = CT_FLAG_EXPORTABLE_KEY, 738 PrivateKeyRequireStrongKeyProtection = CT_FLAG_STRONG_KEY_PROTECTION_REQUIRED, 739 PrivateKeyRequireAlternateSignatureAlgorithm = CT_FLAG_REQUIRE_ALTERNATE_SIGNATURE_ALGORITHM 740 } X509CertificateTemplatePrivateKeyFlag; 741 742 typedef enum X509CertificateTemplateSubjectNameFlag { 743 SubjectNameEnrolleeSupplies = CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT, 744 SubjectNameRequireDirectoryPath = CT_FLAG_SUBJECT_REQUIRE_DIRECTORY_PATH, 745 SubjectNameRequireCommonName = CT_FLAG_SUBJECT_REQUIRE_COMMON_NAME, 746 SubjectNameRequireEmail = CT_FLAG_SUBJECT_REQUIRE_EMAIL, 747 SubjectNameRequireDNS = CT_FLAG_SUBJECT_REQUIRE_DNS_AS_CN, 748 SubjectNameAndAlternativeNameOldCertSupplies = CT_FLAG_OLD_CERT_SUPPLIES_SUBJECT_AND_ALT_NAME, 749 SubjectAlternativeNameEnrolleeSupplies = CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT_ALT_NAME, 750 SubjectAlternativeNameRequireDirectoryGUID = CT_FLAG_SUBJECT_ALT_REQUIRE_DIRECTORY_GUID, 751 SubjectAlternativeNameRequireUPN = CT_FLAG_SUBJECT_ALT_REQUIRE_UPN, 752 SubjectAlternativeNameRequireEmail = CT_FLAG_SUBJECT_ALT_REQUIRE_EMAIL, 753 SubjectAlternativeNameRequireSPN = CT_FLAG_SUBJECT_ALT_REQUIRE_SPN, 754 SubjectAlternativeNameRequireDNS = CT_FLAG_SUBJECT_ALT_REQUIRE_DNS, 755 SubjectAlternativeNameRequireDomainDNS = CT_FLAG_SUBJECT_ALT_REQUIRE_DOMAIN_DNS 756 } X509CertificateTemplateSubjectNameFlag; 757 758 typedef enum X509EnrollmentPolicyExportFlags { 759 ExportTemplates = 0x1, 760 ExportOIDs = 0x2, 761 ExportCAs = 0x4 762 } X509EnrollmentPolicyExportFlags; 763 764 typedef enum X509EnrollmentPolicyLoadOption { 765 LoadOptionDefault = 0, 766 LoadOptionCacheOnly = 1, 767 LoadOptionReload = 2, 768 LoadOptionRegisterForADChanges = 4 769 } X509EnrollmentPolicyLoadOption; 770 771 772 #endif /*(_WIN32_WINNT >= 0x0601)*/ 773 774 typedef enum X509KeySpec { 775 XCN_AT_NONE = 0, 776 XCN_AT_KEYEXCHANGE = 1, 777 XCN_AT_SIGNATURE = 2 778 } X509KeySpec; 779 780 typedef enum X509KeyUsageFlags { 781 XCN_CERT_NO_KEY_USAGE = 0, 782 XCN_CERT_DIGITAL_SIGNATURE_KEY_USAGE = 0x80, 783 XCN_CERT_NON_REPUDIATION_KEY_USAGE = 0x40, 784 XCN_CERT_KEY_ENCIPHERMENT_KEY_USAGE = 0x20, 785 XCN_CERT_DATA_ENCIPHERMENT_KEY_USAGE = 0x10, 786 XCN_CERT_KEY_AGREEMENT_KEY_USAGE = 0x8, 787 XCN_CERT_KEY_CERT_SIGN_KEY_USAGE = 0x4, 788 XCN_CERT_OFFLINE_CRL_SIGN_KEY_USAGE = 0x2, 789 XCN_CERT_CRL_SIGN_KEY_USAGE = 0x2, 790 XCN_CERT_ENCIPHER_ONLY_KEY_USAGE = 0x1, 791 XCN_CERT_DECIPHER_ONLY_KEY_USAGE = ( 0x80 << 8 ) 792 } X509KeyUsageFlags; 793 794 typedef enum X509PrivateKeyExportFlags { 795 XCN_NCRYPT_ALLOW_EXPORT_NONE = 0, 796 XCN_NCRYPT_ALLOW_EXPORT_FLAG = 0x1, 797 XCN_NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG = 0x2, 798 XCN_NCRYPT_ALLOW_ARCHIVING_FLAG = 0x4, 799 XCN_NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG = 0x8 800 } X509PrivateKeyExportFlags; 801 802 typedef enum X509PrivateKeyProtection { 803 XCN_NCRYPT_UI_NO_PROTECTION_FLAG = 0, 804 XCN_NCRYPT_UI_PROTECT_KEY_FLAG = 0x1, 805 XCN_NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG = 0x2 806 } X509PrivateKeyProtection; 807 808 typedef enum X509RequestType { 809 TypeAny = 0, 810 TypePkcs10 = 1, 811 TypePkcs7 = 2, 812 TypeCmc = 3, 813 TypeCertificate = 4 814 } X509RequestType; 815 816 typedef enum X509RequestInheritOptions { 817 InheritDefault = 0x00000000, 818 InheritNewDefaultKey = 0x00000001, 819 InheritNewSimilarKey = 0x00000002, 820 InheritPrivateKey = 0x00000003, 821 InheritPublicKey = 0x00000004, 822 InheritKeyMask = 0x0000000f, 823 InheritNone = 0x00000010, 824 InheritRenewalCertificateFlag = 0x00000020, 825 InheritTemplateFlag = 0x00000040, 826 InheritSubjectFlag = 0x00000080, 827 InheritExtensionsFlag = 0x00000100, 828 InheritSubjectAltNameFlag = 0x00000200, 829 InheritValidityPeriodFlag = 0x00000400 830 } X509RequestInheritOptions; 831 832 typedef enum X509ProviderType { 833 XCN_PROV_NONE = 0, 834 XCN_PROV_RSA_FULL = 1, 835 XCN_PROV_RSA_SIG = 2, 836 XCN_PROV_DSS = 3, 837 XCN_PROV_FORTEZZA = 4, 838 XCN_PROV_MS_EXCHANGE = 5, 839 XCN_PROV_SSL = 6, 840 XCN_PROV_RSA_SCHANNEL = 12, 841 XCN_PROV_DSS_DH = 13, 842 XCN_PROV_EC_ECDSA_SIG = 14, 843 XCN_PROV_EC_ECNRA_SIG = 15, 844 XCN_PROV_EC_ECDSA_FULL = 16, 845 XCN_PROV_EC_ECNRA_FULL = 17, 846 XCN_PROV_DH_SCHANNEL = 18, 847 XCN_PROV_SPYRUS_LYNKS = 20, 848 XCN_PROV_RNG = 21, 849 XCN_PROV_INTEL_SEC = 22, 850 XCN_PROV_REPLACE_OWF = 23, 851 XCN_PROV_RSA_AES = 24 852 } X509ProviderType; 853 854 typedef enum X509PrivateKeyVerify { 855 VerifyNone = 0, 856 VerifySilent = 1, 857 VerifySmartCardNone = 2, 858 VerifySmartCardSilent = 3, 859 VerifyAllowUI = 4 860 } X509PrivateKeyVerify; 861 862 typedef enum X509PrivateKeyUsageFlags { 863 XCN_NCRYPT_ALLOW_USAGES_NONE = 0, 864 XCN_NCRYPT_ALLOW_DECRYPT_FLAG = 0x1, 865 XCN_NCRYPT_ALLOW_SIGNING_FLAG = 0x2, 866 XCN_NCRYPT_ALLOW_KEY_AGREEMENT_FLAG = 0x4, 867 XCN_NCRYPT_ALLOW_ALL_USAGES = 0xffffff 868 } X509PrivateKeyUsageFlags; 869 870 typedef enum EncodingType { 871 XCN_CRYPT_STRING_BASE64HEADER = 0, 872 XCN_CRYPT_STRING_BASE64 = 0x1, 873 XCN_CRYPT_STRING_BINARY = 0x2, 874 XCN_CRYPT_STRING_BASE64REQUESTHEADER = 0x3, 875 XCN_CRYPT_STRING_HEX = 0x4, 876 XCN_CRYPT_STRING_HEXASCII = 0x5, 877 XCN_CRYPT_STRING_BASE64_ANY = 0x6, 878 XCN_CRYPT_STRING_ANY = 0x7, 879 XCN_CRYPT_STRING_HEX_ANY = 0x8, 880 XCN_CRYPT_STRING_BASE64X509CRLHEADER = 0x9, 881 XCN_CRYPT_STRING_HEXADDR = 0xa, 882 XCN_CRYPT_STRING_HEXASCIIADDR = 0xb, 883 XCN_CRYPT_STRING_HEXRAW = 0xc, 884 XCN_CRYPT_STRING_NOCRLF = 0x40000000, 885 XCN_CRYPT_STRING_NOCR = 0x80000000 886 } EncodingType; 887 888 typedef enum EnrollmentDisplayStatus { 889 DisplayNo = 0, 890 DisplayYes = 1 891 } EnrollmentDisplayStatus; 892 893 typedef enum EnrollmentEnrollStatus { 894 Enrolled = 0x00000001, 895 EnrollPended = 0x00000002, 896 EnrollUIDeferredEnrollmentRequired = 0x00000004, 897 EnrollError = 0x00000010, 898 EnrollUnknown = 0x00000020, 899 EnrollSkipped = 0x00000040, 900 EnrollDenied = 0x00000100 901 } EnrollmentEnrollStatus; 902 903 typedef enum EnrollmentSelectionStatus { 904 SelectedNo = 0, 905 SelectedYes = 1 906 } EnrollmentSelectionStatus; 907 908 #ifdef __cplusplus 909 } 910 #endif 911 #endif /*(_WIN32_WINNT >= 0x0600)*/ 912 #endif /*_INC_CERTENROLL*/ 913