ReactOS 0.4.16-dev-1527-g49e652b
wincrypt.h File Reference
#include <bcrypt.h>
#include <ncrypt.h>
Include dependency graph for wincrypt.h:

Go to the source code of this file.

Classes

struct  _PROV_ENUMALGS
 
struct  _PROV_ENUMALGS_EX
 
struct  _SCHANNEL_ALG
 
struct  _HMAC_INFO
 
struct  _CRYPTOAPI_BLOB
 
struct  _CRYPTPROTECT_PROMPTSTRUCT
 
struct  _CRYPT_ALGORITHM_IDENTIFIER
 
struct  _CRYPT_ATTRIBUTE_TYPE_VALUE
 
struct  _PUBLICKEYSTRUC
 
struct  _RSAPUBKEY
 
struct  _PUBKEY
 
struct  _DSSSEED
 
struct  _PUBKEYVER3
 
struct  _PRIVKEYVER3
 
struct  _KEY_TYPE_SUBTYPE
 
struct  _CERT_FORTEZZA_DATA_PROP
 
struct  _CMS_DH_KEY_INFO
 
struct  _CRYPT_BIT_BLOB
 
struct  _CRYPT_KEY_PROV_PARAM
 
struct  _CRYPT_KEY_PROV_INFO
 
struct  _CERT_KEY_CONTEXT
 
struct  _CERT_PUBLIC_KEY_INFO
 
struct  _CERT_EXTENSION
 
struct  _CERT_EXTENSIONS
 
struct  _CERT_INFO
 
struct  _CERT_RDN_ATTR
 
struct  _CERT_RDN
 
struct  _CERT_NAME_INFO
 
struct  _CERT_NAME_VALUE
 
struct  _CERT_ENCRYPTED_PRIVATE_KEY_INFO
 
struct  _CERT_AUTHORITY_KEY_ID_INFO
 
struct  _CERT_PRIVATE_KEY_VALIDITY
 
struct  _CERT_KEY_ATTRIBUTES_INFO
 
struct  _CERT_ECC_SIGNATURE
 
struct  _CERT_POLICY_ID
 
struct  _CERT_KEY_USAGE_RESTRICTION_INFO
 
struct  _CERT_OTHER_NAME
 
struct  _CERT_ALT_NAME_ENTRY
 
struct  _CERT_ALT_NAME_INFO
 
struct  _CERT_BASIC_CONSTRAINTS_INFO
 
struct  _CERT_BASIC_CONSTRAINTS2_INFO
 
struct  _CERT_POLICY_QUALIFIER_INFO
 
struct  _CERT_POLICY_INFO
 
struct  _CERT_POLICIES_INFO
 
struct  _CERT_POLICY_QUALIFIER_NOTICE_REFERENCE
 
struct  _CERT_POLICY_QUALIFIER_USER_NOTICE
 
struct  _CPS_URLS
 
struct  _CERT_POLICY95_QUALIFIER1
 
struct  _CERT_POLICY_MAPPING
 
struct  _CERT_POLICY_MAPPINGS_INFO
 
struct  _CERT_POLICY_CONSTRAINTS_INFO
 
struct  _CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY
 
struct  _CRYPT_CONTENT_INFO
 
struct  _CRYPT_SEQUENCE_OF_ANY
 
struct  _CERT_AUTHORITY_KEY_ID2_INFO
 
struct  _CERT_ACCESS_DESCRIPTION
 
struct  _CERT_AUTHORITY_INFO_ACCESS
 
struct  _CERT_CONTEXT
 
struct  _CRL_ENTRY
 
struct  _CRL_INFO
 
struct  _CRL_DIST_POINT_NAME
 
struct  _CRL_DIST_POINT
 
struct  _CRL_DIST_POINTS_INFO
 
struct  _CROSS_CERT_DIST_POINTS_INFO
 
struct  _CERT_PAIR
 
struct  _CRL_ISSUING_DIST_POINT
 
struct  _CERT_GENERAL_SUBTREE
 
struct  _CERT_NAME_CONSTRAINTS_INFO
 
struct  _CRYPT_ATTRIBUTE
 
struct  _CRYPT_ATTRIBUTES
 
struct  _CERT_REQUEST_INFO
 
struct  _CERT_KEYGEN_REQUEST_INFO
 
struct  _CERT_SIGNED_CONTENT_INFO
 
struct  _OCSP_SIGNATURE_INFO
 
struct  _OCSP_SIGNED_REQUEST_INFO
 
struct  _OCSP_CERT_ID
 
struct  _OCSP_REQUEST_ENTRY
 
struct  _OCSP_REQUEST_INFO
 
struct  _OCSP_RESPONSE_INFO
 
struct  _OCSP_BASIC_SIGNED_RESPONSE_INFO
 
struct  _OCSP_BASIC_REVOKED_INFO
 
struct  _OCSP_BASIC_RESPONSE_ENTRY
 
struct  _OCSP_BASIC_RESPONSE_INFO
 
struct  _CRL_CONTEXT
 
struct  _CERT_DSS_PARAMETERS
 
struct  _CERT_DH_PARAMETERS
 
struct  _CERT_X942_DH_VALIDATION_PARAMS
 
struct  _CERT_X942_DH_PARAMETERS
 
struct  _CRYPT_X942_OTHER_INFO
 
struct  _CRYPT_RC2_CBC_PARAMETERS
 
struct  _CRYPT_SMIME_CAPABILITY
 
struct  _CRYPT_SMIME_CAPABILITIES
 
struct  _VTableProvStruc
 
struct  _CERT_PRIVATE_KEY_INFO
 
struct  _CTL_USAGE
 
struct  _CTL_ENTRY
 
struct  _CTL_INFO
 
struct  _CTL_CONTEXT
 
struct  _CRYPT_TIME_STAMP_REQUEST_INFO
 
struct  _CRYPT_ENROLLMENT_NAME_VALUE_PAIR
 
struct  _CMSG_SIGNER_INFO
 
struct  _CERT_REVOCATION_CRL_INFO
 
struct  _CERT_REVOCATION_INFO
 
struct  _CERT_REVOCATION_PARA
 
struct  _CTL_VERIFY_USAGE_PARA
 
struct  _CTL_VERIFY_USAGE_STATUS
 
struct  _CERT_CHAIN
 
struct  _CERT_REVOCATION_STATUS
 
struct  _CERT_TRUST_LIST_INFO
 
struct  _CERT_TRUST_STATUS
 
struct  _CERT_CHAIN_ELEMENT
 
struct  _CERT_SIMPLE_CHAIN
 
struct  _CERT_CHAIN_CONTEXT
 
struct  _CERT_CHAIN_POLICY_PARA
 
struct  _CERT_CHAIN_POLICY_STATUS
 
struct  _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA
 
struct  _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS
 
struct  _AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA
 
struct  _HTTPSPolicyCallbackData
 
struct  _CERT_USAGE_MATCH
 
struct  _CTL_USAGE_MATCH
 
struct  _CERT_CHAIN_PARA
 
struct  _CERT_SYSTEM_STORE_INFO
 
struct  _CERT_PHYSICAL_STORE_INFO
 
struct  _CERT_SYSTEM_STORE_RELOCATE_PARA
 
struct  _CRYPT_ENCODE_PARA
 
struct  _CRYPT_DECODE_PARA
 
struct  _CERT_STORE_PROV_INFO
 
struct  _CERT_STORE_PROV_FIND_INFO
 
struct  _CERT_CREATE_CONTEXT_PARA
 
struct  _CRYPT_OID_FUNC_ENTRY
 
struct  _CRYPT_OID_INFO
 
struct  _CRYPT_SIGN_MESSAGE_PARA
 
struct  _CRYPT_VERIFY_MESSAGE_PARA
 
struct  _CRYPT_ENCRYPT_MESSAGE_PARA
 
struct  _CRYPT_DECRYPT_MESSAGE_PARA
 
struct  _CRYPT_HASH_MESSAGE_PARA
 
struct  _CRYPT_KEY_SIGN_MESSAGE_PARA
 
struct  _CRYPT_KEY_VERIFY_MESSAGE_PARA
 
struct  _CRYPT_URL_ARRAY
 
struct  _CRYPT_URL_INFO
 
struct  _CRYPT_ASYNC_RETRIEVAL_COMPLETION
 
struct  _CRYPT_BLOB_ARRAY
 
struct  _CRYPT_CREDENTIALS
 
struct  _CRYPT_PASSWORD_CREDENTIALSA
 
struct  _CRYPT_PASSWORD_CREDENTIALSW
 
struct  _CRYPT_RETRIEVE_AUX_INFO
 
struct  _CERT_CRL_CONTEXT_PAIR
 
struct  _CRL_FIND_ISSUED_FOR_PARA
 
struct  _CTL_FIND_USAGE_PARA
 
struct  _CTL_FIND_SUBJECT_PARA
 
struct  _CERT_CHAIN_ENGINE_CONFIG
 
struct  _CMSG_STREAM_INFO
 
struct  _CERT_ISSUER_SERIAL_NUMBER
 
struct  _CERT_ID
 
struct  _CMSG_SIGNER_ENCODE_INFO
 
struct  _CMSG_SIGNED_ENCODE_INFO
 
struct  _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO
 
struct  _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO
 
struct  _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO
 
struct  _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO
 
struct  _CMSG_RECIPIENT_ENCODE_INFO
 
struct  _CMSG_ENVELOPED_ENCODE_INFO
 
struct  _CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO
 
struct  _CMSG_HASHED_ENCODE_INFO
 
struct  _CMSG_ENCRYPTED_ENCODE_INFO
 
struct  _CMSG_CTRL_DECRYPT_PARA
 
struct  _CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA
 
struct  _CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA
 
struct  _CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA
 
struct  _CMSG_CMS_SIGNER_INFO
 
struct  _CMSG_KEY_TRANS_RECIPIENT_INFO
 
struct  _CMSG_RECIPIENT_ENCRYPTED_KEY_INFO
 
struct  _CMSG_KEY_AGREE_RECIPIENT_INFO
 
struct  _CMSG_MAIL_LIST_RECIPIENT_INFO
 
struct  _CMSG_CMS_RECIPIENT_INFO
 
struct  _CMSG_CONTENT_ENCRYPT_INFO
 
struct  _CMSG_KEY_TRANS_ENCRYPT_INFO
 
struct  _CMSG_CTRL_KEY_TRANS_DECRYPT_PARA
 
struct  _CERT_STRONG_SIGN_SERIALIZED_INFO
 
struct  _CERT_STRONG_SIGN_PARA
 

Macros

#define WINADVAPI   DECLSPEC_IMPORT
 
#define WINCRYPT32API   DECLSPEC_IMPORT
 
#define SCHANNEL_MAC_KEY   0
 
#define SCHANNEL_ENC_KEY   1
 
#define CRYPT_IPSEC_HMAC_KEY   0x0100
 
#define CERT_DIGITAL_SIGNATURE_KEY_USAGE   0x80
 
#define CERT_NON_REPUDIATION_KEY_USAGE   0x40
 
#define CERT_KEY_ENCIPHERMENT_KEY_USAGE   0x20
 
#define CERT_DATA_ENCIPHERMENT_KEY_USAGE   0x10
 
#define CERT_KEY_AGREEMENT_KEY_USAGE   0x08
 
#define CERT_KEY_CERT_SIGN_KEY_USAGE   0x04
 
#define CERT_OFFLINE_CRL_SIGN_KEY_USAGE   0x02
 
#define CERT_CRL_SIGN_KEY_USAGE   0x02
 
#define CERT_ENCIPHER_ONLY_KEY_USAGE   0x01
 
#define CERT_DECIPHER_ONLY_KEY_USAGE   0x80
 
#define CERT_ALT_NAME_OTHER_NAME   1
 
#define CERT_ALT_NAME_RFC822_NAME   2
 
#define CERT_ALT_NAME_DNS_NAME   3
 
#define CERT_ALT_NAME_X400_ADDRESS   4
 
#define CERT_ALT_NAME_DIRECTORY_NAME   5
 
#define CERT_ALT_NAME_EDI_PARTY_NAME   6
 
#define CERT_ALT_NAME_URL   7
 
#define CERT_ALT_NAME_IP_ADDRESS   8
 
#define CERT_ALT_NAME_REGISTERED_ID   9
 
#define CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK   0xff
 
#define CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT   16
 
#define CERT_ALT_NAME_VALUE_ERR_INDEX_MASK   0x0000ffff
 
#define CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT   0
 
#define GET_CERT_ALT_NAME_ENTRY_ERR_INDEX(x)
 
#define GET_CERT_ALT_NAME_VALUE_ERR_INDEX(x)    ((x) & CERT_ALT_NAME_VALUE_ERR_INDEX_MASK)
 
#define CERT_CA_SUBJECT_FLAG   0x80
 
#define CERT_END_ENTITY_SUBJECT_FLAG   0x40
 
#define CRL_DIST_POINT_NO_NAME   0
 
#define CRL_DIST_POINT_FULL_NAME   1
 
#define CRL_DIST_POINT_ISSUER_RDN_NAME   2
 
#define CRL_REASON_UNUSED_FLAG   0x80
 
#define CRL_REASON_KEY_COMPROMISE_FLAG   0x40
 
#define CRL_REASON_CA_COMPROMISE_FLAG   0x20
 
#define CRL_REASON_AFFILIATION_CHANGED_FLAG   0x10
 
#define CRL_REASON_SUPERSEDED_FLAG   0x08
 
#define CRL_REASON_CESSATION_OF_OPERATION_FLAG   0x04
 
#define CRL_REASON_CERTIFICATE_HOLD_FLAG   0x02
 
#define CRL_DIST_POINT_ERR_INDEX_MASK   0x7f
 
#define CRL_DIST_POINT_ERR_INDEX_SHIFT   24
 
#define GET_CRL_DIST_POINT_ERR_INDEX(x)    (((x) >> CRL_DIST_POINT_ERR_INDEX_SHIFT) & CRL_DIST_POINT_ERR_INDEX_MASK)
 
#define CRL_DIST_POINT_ERR_CRL_ISSUER_BIT   __MSABI_LONG(0x80000000)
 
#define IS_CRL_DIST_POINT_ERR_CRL_ISSUER(x)    ((x) & CRL_DIST_POINT_ERR_CRL_ISSUER_BIT)
 
#define CROSS_CERT_DIST_POINT_ERR_INDEX_MASK   0xff
 
#define CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT   24
 
#define GET_CROSS_CERT_DIST_POINT_ERR_INDEX(x)
 
#define CERT_EXCLUDED_SUBTREE_BIT   __MSABI_LONG(0x80000000)
 
#define IS_CERT_EXCLUDED_SUBTREE(x)   ((x) & CERT_EXCLUDED_SUBTREE_BIT)
 
#define OCSP_REQUEST_V1   0
 
#define OCSP_SUCCESSFUL_RESPONSE   0
 
#define OCSP_MALFORMED_REQUEST_RESPONSE   1
 
#define OCSP_INTERNAL_ERROR_RESPONSE   2
 
#define OCSP_TRY_LATER_RESPONSE   3
 
#define OCSP_SIG_REQUIRED_RESPONSE   5
 
#define OCSP_UNAUTHORIZED_RESPONSE   6
 
#define szOID_PKIX_OCSP_BASIC_SIGNED_RESPONSE   "1.3.6.1.5.5.7.48.1.1"
 
#define OCSP_BASIC_GOOD_CERT_STATUS   0
 
#define OCSP_BASIC_REVOKED_CERT_STATUS   1
 
#define OCSP_BASIC_UNKNOWN_CERT_STATUS   2
 
#define OCSP_BASIC_RESPONSE_V1   0
 
#define OCSP_BASIC_BY_NAME_RESPONDER_ID   1
 
#define OCSP_BASIC_BY_KEY_RESPONDER_ID   2
 
#define SORTED_CTL_EXT_FLAGS_OFFSET   (0*4)
 
#define SORTED_CTL_EXT_COUNT_OFFSET   (1*4)
 
#define SORTED_CTL_EXT_MAX_COLLISION_OFFSET   (2*4)
 
#define SORTED_CTL_EXT_HASH_BUCKET_OFFSET   (3*4)
 
#define SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG   0x1
 
#define CERT_DSS_R_LEN   20
 
#define CERT_DSS_S_LEN   20
 
#define CERT_DSS_SIGNATURE_LEN   (CERT_DSS_R_LEN + CERT_DSS_S_LEN)
 
#define CERT_MAX_ENCODED_DSS_SIGNATURE_LEN   (2 + 2*(2 + 20 +1))
 
#define CRYPT_X942_COUNTER_BYTE_LENGTH   4
 
#define CRYPT_X942_KEY_LENGTH_BYTE_LENGTH   4
 
#define CRYPT_X942_PUB_INFO_BYTE_LENGTH   (512/8)
 
#define CRYPT_RC2_40BIT_VERSION   160
 
#define CRYPT_RC2_56BIT_VERSION   52
 
#define CRYPT_RC2_64BIT_VERSION   120
 
#define CRYPT_RC2_128BIT_VERSION   58
 
#define CMSG_VERIFY_SIGNER_PUBKEY   1
 
#define CMSG_VERIFY_SIGNER_CERT   2
 
#define CMSG_VERIFY_SIGNER_CHAIN   3
 
#define CMSG_VERIFY_SIGNER_NULL   4
 
#define CERT_CONTEXT_REVOCATION_TYPE   1
 
#define CERT_VERIFY_REV_CHAIN_FLAG   0x00000001
 
#define CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION   0x00000002
 
#define CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG   0x00000004
 
#define CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG   0x1
 
#define CERT_VERIFY_TRUSTED_SIGNERS_FLAG   0x2
 
#define CERT_VERIFY_NO_TIME_CHECK_FLAG   0x4
 
#define CERT_VERIFY_ALLOW_MORE_USAGE_FLAG   0x8
 
#define CERT_VERIFY_UPDATED_CTL_FLAG   0x1
 
#define CERT_TRUST_NO_ERROR   0x00000000
 
#define CERT_TRUST_IS_NOT_TIME_VALID   0x00000001
 
#define CERT_TRUST_IS_NOT_TIME_NESTED   0x00000002
 
#define CERT_TRUST_IS_REVOKED   0x00000004
 
#define CERT_TRUST_IS_NOT_SIGNATURE_VALID   0x00000008
 
#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE   0x00000010
 
#define CERT_TRUST_IS_UNTRUSTED_ROOT   0x00000020
 
#define CERT_TRUST_REVOCATION_STATUS_UNKNOWN   0x00000040
 
#define CERT_TRUST_IS_CYCLIC   0x00000080
 
#define CERT_TRUST_INVALID_EXTENSION   0x00000100
 
#define CERT_TRUST_INVALID_POLICY_CONSTRAINTS   0x00000200
 
#define CERT_TRUST_INVALID_BASIC_CONSTRAINTS   0x00000400
 
#define CERT_TRUST_INVALID_NAME_CONSTRAINTS   0x00000800
 
#define CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT   0x00001000
 
#define CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT   0x00002000
 
#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT   0x00004000
 
#define CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT   0x00008000
 
#define CERT_TRUST_IS_OFFLINE_REVOCATION   0x01000000
 
#define CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY   0x02000000
 
#define CERT_TRUST_IS_EXPLICIT_DISTRUST   0x04000000
 
#define CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT   0x08000000
 
#define CERT_TRUST_IS_PARTIAL_CHAIN   0x00010000
 
#define CERT_TRUST_CTL_IS_NOT_TIME_VALID   0x00020000
 
#define CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID   0x00040000
 
#define CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE   0x00080000
 
#define CERT_TRUST_HAS_EXACT_MATCH_ISSUER   0x00000001
 
#define CERT_TRUST_HAS_KEY_MATCH_ISSUER   0x00000002
 
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER   0x00000004
 
#define CERT_TRUST_IS_SELF_SIGNED   0x00000008
 
#define CERT_TRUST_HAS_PREFERRED_ISSUER   0x00000100
 
#define CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY   0x00000200
 
#define CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS   0x00000400
 
#define CERT_TRUST_IS_PEER_TRUSTED   0x00000800
 
#define CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED   0x00001000
 
#define CERT_TRUST_IS_COMPLEX_CHAIN   0x00010000
 
#define CERT_CHAIN_POLICY_BASE   ((LPCSTR)1)
 
#define CERT_CHAIN_POLICY_AUTHENTICODE   ((LPCSTR)2)
 
#define CERT_CHAIN_POLICY_AUTHENTICODE_TS   ((LPCSTR)3)
 
#define CERT_CHAIN_POLICY_SSL   ((LPCSTR)4)
 
#define CERT_CHAIN_POLICY_BASIC_CONSTRAINTS   ((LPCSTR)5)
 
#define CERT_CHAIN_POLICY_NT_AUTH   ((LPCSTR)6)
 
#define CERT_CHAIN_POLICY_MICROSOFT_ROOT   ((LPCSTR)7)
 
#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG   0x00000001
 
#define CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG   0x00000002
 
#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG   0x00000004
 
#define CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG   0x00000008
 
#define CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS
 
#define CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG   0x00000010
 
#define CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG   0x00000020
 
#define CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG   0x00000040
 
#define CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG   0x00000080
 
#define CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG   0x00000100
 
#define CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG   0x00000200
 
#define CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG   0x00000400
 
#define CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG   0x00000800
 
#define CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS
 
#define CERT_CHAIN_POLICY_IGNORE_PEER_TRUST_FLAG   0x00001000
 
#define CERT_CHAIN_POLICY_IGNORE_NOT_SUPPORTED_CRITICAL_EXT_FLAG   0x00002000
 
#define CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG   0x00004000
 
#define CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG   0x00008000
 
#define MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG   0x00010000
 
#define MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG   0x00020000
 
#define AUTHTYPE_CLIENT   1
 
#define AUTHTYPE_SERVER   2
 
#define BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG   0x80000000
 
#define BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG   0x40000000
 
#define MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG   0x00010000
 
#define USAGE_MATCH_TYPE_AND   0x00000000
 
#define USAGE_MATCH_TYPE_OR   0x00000001
 
#define CERT_CHAIN_REVOCATION_CHECK_END_CERT   0x10000000
 
#define CERT_CHAIN_REVOCATION_CHECK_CHAIN   0x20000000
 
#define CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT   0x40000000
 
#define CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY   0x80000000
 
#define CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT   0x08000000
 
#define CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING   0x00000040
 
#define CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS   0x00000080
 
#define CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE   0x00000100
 
#define CERT_CHAIN_TIMESTAMP_TIME   0x00000200
 
#define CRYPT_MATCH_ANY_ENCODING_TYPE   0xffffffff
 
#define CALG_OID_INFO_CNG_ONLY   0xffffffff
 
#define CALG_OID_INFO_PARAMETERS   0xfffffffe
 
#define CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG   0x00000001
 
#define CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG   0x00000002
 
#define CRYPT_MESSAGE_KEYID_SIGNER_FLAG   0x00000004
 
#define CRYPT_MESSAGE_SILENT_KEYSET_FLAG   0x00000008
 
#define CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG   0x00000004
 
#define URL_OID_CERTIFICATE_ISSUER   ((LPCSTR)1)
 
#define URL_OID_CERTIFICATE_CRL_DIST_POINT   ((LPCSTR)2)
 
#define URL_OID_CTL_ISSUER   ((LPCSTR)3)
 
#define URL_OID_CTL_NEXT_UPDATE   ((LPCSTR)4)
 
#define URL_OID_CRL_ISSUER   ((LPCSTR)5)
 
#define URL_OID_CERTIFICATE_FRESHEST_CRL   ((LPCSTR)6)
 
#define URL_OID_CRL_FRESHEST_CRL   ((LPCSTR)7)
 
#define URL_OID_CROSS_CERT_DIST_POINT   ((LPCSTR)8)
 
#define URL_OID_CERTIFICATE_OCSP   ((LPCSTR)9)
 
#define URL_OID_CERTIFICATE_OCSP_AND_CRL_DIST_POINT   ((LPCSTR)10)
 
#define URL_OID_CERTIFICATE_CRL_DIST_POINT_AND_OCSP   ((LPCSTR)11)
 
#define URL_OID_CROSS_CERT_SUBJECT_INFO_ACCESS   ((LPCSTR)12)
 
#define URL_OID_GET_OBJECT_URL_FUNC   "UrlDllGetObjectUrl"
 
#define CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION   ((LPCSTR)1)
 
#define CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL   ((LPCSTR)2)
 
#define CREDENTIAL_OID_PASSWORD_CREDENTIALS_A   ((LPCSTR)1)
 
#define CREDENTIAL_OID_PASSWORD_CREDENTIALS_W   ((LPCSTR)2)
 
#define CREDENTIAL_OID_PASSWORD_CREDENTIALS    WINELIB_NAME_AW(CREDENTIAL_OID_PASSWORD_CREDENTIALS_)
 
#define CRYPT_PASSWORD_CREDENTIALS   WINELIB_NAME_AW(CRYPT_PASSWORD_CREDENTIALS)
 
#define PCRYPT_PASSWORD_CREDENTIALS   WINELIB_NAME_AW(PCRYPT_PASSWORD_CREDENTIALS)
 
#define SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC    "SchemeDllRetrieveEncodedObject"
 
#define SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC    "SchemeDllRetrieveEncodedObjectW"
 
#define CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC   "ContextDllCreateObjectContext"
 
#define CONTEXT_OID_CERTIFICATE   ((LPCSTR)1)
 
#define CONTEXT_OID_CRL   ((LPCSTR)2)
 
#define CONTEXT_OID_CTL   ((LPCSTR)3)
 
#define CONTEXT_OID_PKCS7   ((LPCSTR)4)
 
#define CONTEXT_OID_CAPI2_ANY   ((LPCSTR)5)
 
#define CRYPT_RETRIEVE_MULTIPLE_OBJECTS   0x00000001
 
#define CRYPT_CACHE_ONLY_RETRIEVAL   0x00000002
 
#define CRYPT_WIRE_ONLY_RETRIEVAL   0x00000004
 
#define CRYPT_DONT_CACHE_RESULT   0x00000008
 
#define CRYPT_ASYNC_RETRIEVAL   0x00000010
 
#define CRYPT_STICKY_CACHE_RETRIEVAL   0x00001000
 
#define CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL   0x00002000
 
#define CRYPT_OFFLINE_CHECK_RETRIEVAL   0x00004000
 
#define CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE   0x00008000
 
#define CRYPT_LDAP_SIGN_RETRIEVAL   0x00010000
 
#define CRYPT_NO_AUTH_RETRIEVAL   0x00020000
 
#define CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL   0x00040000
 
#define CRYPT_AIA_RETRIEVAL   0x00080000
 
#define CRYPT_VERIFY_CONTEXT_SIGNATURE   0x00000020
 
#define CRYPT_VERIFY_DATA_HASH   0x00000040
 
#define CRYPT_KEEP_TIME_VALID   0x00000080
 
#define CRYPT_DONT_VERIFY_SIGNATURE   0x00000100
 
#define CRYPT_DONT_CHECK_TIME_VALIDITY   0x00000200
 
#define CRYPT_CHECK_FRESHNESS_TIME_VALIDITY   0x00000400
 
#define CRYPT_ACCUMULATIVE_TIMEOUT   0x00000800
 
#define TIME_VALID_OID_GET_OBJECT_FUNC   "TimeValidDllGetObject"
 
#define TIME_VALID_OID_GET_CTL   ((LPCSTR)1)
 
#define TIME_VALID_OID_GET_CRL   ((LPCSTR)2)
 
#define TIME_VALID_OID_GET_CRL_FROM_CERT   ((LPCSTR)3)
 
#define TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT   ((LPCSTR)4)
 
#define TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL   ((LPCSTR)5)
 
#define TIME_VALID_OID_FLUSH_OBJECT_FUNC   "TimeValidDllFlushObject"
 
#define TIME_VALID_OID_FLUSH_CTL   ((LPCSTR)1)
 
#define TIME_VALID_OID_FLUSH_CRL   ((LPCSTR)2)
 
#define TIME_VALID_OID_FLUSH_CRL_FROM_CERT   ((LPCSTR)3)
 
#define TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CERT   ((LPCSTR)4)
 
#define TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CRL   ((LPCSTR)5)
 
#define CRYPT_HASH_ALG_OID_GROUP_ID   1
 
#define CRYPT_ENCRYPT_ALG_OID_GROUP_ID   2
 
#define CRYPT_PUBKEY_ALG_OID_GROUP_ID   3
 
#define CRYPT_SIGN_ALG_OID_GROUP_ID   4
 
#define CRYPT_RDN_ATTR_OID_GROUP_ID   5
 
#define CRYPT_EXT_OR_ATTR_OID_GROUP_ID   6
 
#define CRYPT_ENHKEY_USAGE_OID_GROUP_ID   7
 
#define CRYPT_POLICY_OID_GROUP_ID   8
 
#define CRYPT_TEMPLATE_OID_GROUP_ID   9
 
#define CRYPT_LAST_OID_GROUP_ID   9
 
#define CRYPT_FIRST_ALG_OID_GROUP_ID   CRYPT_HASH_ALG_OID_GROUP_ID
 
#define CRYPT_LAST_ALG_OID_GROUP_ID   CRYPT_SIGN_ALG_OID_GROUP_ID
 
#define CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG   0x1
 
#define CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG   0x2
 
#define CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG   0x4
 
#define CRYPT_OID_INFO_OID_KEY   1
 
#define CRYPT_OID_INFO_NAME_KEY   2
 
#define CRYPT_OID_INFO_ALGID_KEY   3
 
#define CRYPT_OID_INFO_SIGN_KEY   4
 
#define GET_ALG_CLASS(x)   (x & (7 << 13))
 
#define GET_ALG_TYPE(x)   (x & (15 << 9))
 
#define GET_ALG_SID(x)   (x & (511))
 
#define ALG_CLASS_ANY   (0)
 
#define ALG_CLASS_SIGNATURE   (1 << 13)
 
#define ALG_CLASS_MSG_ENCRYPT   (2 << 13)
 
#define ALG_CLASS_DATA_ENCRYPT   (3 << 13)
 
#define ALG_CLASS_HASH   (4 << 13)
 
#define ALG_CLASS_KEY_EXCHANGE   (5 << 13)
 
#define ALG_CLASS_ALL   (7 << 13)
 
#define ALG_TYPE_ANY   (0)
 
#define ALG_TYPE_DSS   (1 << 9)
 
#define ALG_TYPE_RSA   (2 << 9)
 
#define ALG_TYPE_BLOCK   (3 << 9)
 
#define ALG_TYPE_STREAM   (4 << 9)
 
#define ALG_TYPE_DH   (5 << 9)
 
#define ALG_TYPE_SECURECHANNEL   (6 << 9)
 
#define ALG_TYPE_ECDH   (7 << 9)
 
#define ALG_SID_ANY   (0)
 
#define ALG_SID_RSA_ANY   0
 
#define ALG_SID_RSA_PKCS   1
 
#define ALG_SID_RSA_MSATWORK   2
 
#define ALG_SID_RSA_ENTRUST   3
 
#define ALG_SID_RSA_PGP   4
 
#define ALG_SID_DSS_ANY   0
 
#define ALG_SID_DSS_PKCS   1
 
#define ALG_SID_DSS_DMS   2
 
#define ALG_SID_ECDSA   3
 
#define ALG_SID_DES   1
 
#define ALG_SID_3DES   3
 
#define ALG_SID_DESX   4
 
#define ALG_SID_IDEA   5
 
#define ALG_SID_CAST   6
 
#define ALG_SID_SAFERSK64   7
 
#define ALG_SID_SAFERSK128   8
 
#define ALG_SID_3DES_112   9
 
#define ALG_SID_CYLINK_MEK   12
 
#define ALG_SID_RC5   13
 
#define ALG_SID_AES_128   14
 
#define ALG_SID_AES_192   15
 
#define ALG_SID_AES_256   16
 
#define ALG_SID_AES   17
 
#define ALG_SID_SKIPJACK   10
 
#define ALG_SID_TEK   11
 
#define ALG_SID_DH_SANDF   1
 
#define ALG_SID_DH_EPHEM   2
 
#define ALG_SID_AGREED_KEY_ANY   3
 
#define ALG_SID_KEA   4
 
#define ALG_SID_ECDH   5
 
#define ALG_SID_ECDH_EPHEM   6
 
#define ALG_SID_RC4   1
 
#define ALG_SID_RC2   2
 
#define ALG_SID_SEAL   2
 
#define ALG_SID_MD2   1
 
#define ALG_SID_MD4   2
 
#define ALG_SID_MD5   3
 
#define ALG_SID_SHA   4
 
#define ALG_SID_SHA1   ALG_SID_SHA
 
#define ALG_SID_MAC   5
 
#define ALG_SID_RIPEMD   6
 
#define ALG_SID_RIPEMD160   7
 
#define ALG_SID_SSL3SHAMD5   8
 
#define ALG_SID_HMAC   9
 
#define ALG_SID_TLS1PRF   10
 
#define ALG_SID_HASH_REPLACE_OWF   11
 
#define ALG_SID_SHA_256   12
 
#define ALG_SID_SHA_384   13
 
#define ALG_SID_SHA_512   14
 
#define ALG_SID_SSL3_MASTER   1
 
#define ALG_SID_SCHANNEL_MASTER_HASH   2
 
#define ALG_SID_SCHANNEL_MAC_KEY   3
 
#define ALG_SID_PCT1_MASTER   4
 
#define ALG_SID_SSL2_MASTER   5
 
#define ALG_SID_TLS1_MASTER   6
 
#define ALG_SID_SCHANNEL_ENC_KEY   7
 
#define ALG_SID_EXAMPLE   80
 
#define ALG_SID_ECMQV   1
 
#define CALG_MD2   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD2)
 
#define CALG_MD4   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4)
 
#define CALG_MD5   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5)
 
#define CALG_SHA   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA)
 
#define CALG_SHA1   CALG_SHA
 
#define CALG_MAC   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC)
 
#define CALG_SSL3_SHAMD5   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SSL3SHAMD5)
 
#define CALG_HMAC   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HMAC)
 
#define CALG_TLS1PRF   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_TLS1PRF)
 
#define CALG_HASH_REPLACE_OWF   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HASH_REPLACE_OWF)
 
#define CALG_SHA_256   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256)
 
#define CALG_SHA_384   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384)
 
#define CALG_SHA_512   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512)
 
#define CALG_RSA_SIGN   (ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY)
 
#define CALG_DSS_SIGN   (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY)
 
#define CALG_NO_SIGN   (ALG_CLASS_SIGNATURE | ALG_TYPE_ANY | ALG_SID_ANY)
 
#define CALG_ECDSA   (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_ECDSA)
 
#define CALG_DH_SF   (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_DH_SANDF)
 
#define CALG_DH_EPHEM   (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_DH_EPHEM)
 
#define CALG_AGREEDKEY_ANY   (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_AGREED_KEY_ANY)
 
#define CALG_KEA_KEYX   (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_KEA)
 
#define CALG_HUGHES_MD5   (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ANY | ALG_SID_MD5)
 
#define CALG_ECDH   (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_DH | ALG_SID_ECDH)
 
#define CALG_ECDH_EPHEM   (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ECDH | ALG_SID_ECDH_EPHEM)
 
#define CALG_RSA_KEYX   (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_RSA | ALG_SID_RSA_ANY)
 
#define CALG_ECMQV   (ALG_CLASS_KEY_EXCHANGE | ALG_TYPE_ANY | ALG_SID_ECMQV)
 
#define CALG_DES   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DES)
 
#define CALG_RC2   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_RC2)
 
#define CALG_3DES   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_3DES)
 
#define CALG_3DES_112   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_3DES_112)
 
#define CALG_DESX   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_DESX)
 
#define CALG_AES_128   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_128)
 
#define CALG_AES_192   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_192)
 
#define CALG_AES_256   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES_256)
 
#define CALG_AES   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_AES)
 
#define CALG_RC4   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC4)
 
#define CALG_SEAL   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_SEAL)
 
#define CALG_RC5   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_STREAM | ALG_SID_RC5)
 
#define CALG_SKIPJACK   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_SKIPJACK)
 
#define CALG_TEK   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_TEK)
 
#define CALG_CYLINK_MEK   (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_BLOCK | ALG_SID_CYLINK_MEK)
 
#define CALG_SSL3_MASTER   (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SSL3_MASTER)
 
#define CALG_SCHANNEL_MASTER_HASH   (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_MASTER_HASH)
 
#define CALG_SCHANNEL_MAC_KEY   (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_MAC_KEY)
 
#define CALG_SCHANNEL_ENC_KEY   (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SCHANNEL_ENC_KEY)
 
#define CALG_PCT1_MASTER   (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_PCT1_MASTER)
 
#define CALG_SSL2_MASTER   (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_SSL2_MASTER)
 
#define CALG_TLS1_MASTER   (ALG_CLASS_MSG_ENCRYPT | ALG_TYPE_SECURECHANNEL | ALG_SID_TLS1_MASTER)
 
#define CRYPT_FLAG_PCT1   0x0001
 
#define CRYPT_FLAG_SSL2   0x0002
 
#define CRYPT_FLAG_SSL3   0x0004
 
#define CRYPT_FLAG_TLS1   0x0008
 
#define CRYPT_FLAG_IPSEC   0x0010
 
#define CRYPT_FLAG_SIGNING   0x0020
 
#define MS_DEF_PROV_A   "Microsoft Base Cryptographic Provider v1.0"
 
#define MS_DEF_PROV   WINELIB_NAME_AW(MS_DEF_PROV_)
 
#define MS_ENHANCED_PROV_A   "Microsoft Enhanced Cryptographic Provider v1.0"
 
#define MS_ENHANCED_PROV   WINELIB_NAME_AW(MS_ENHANCED_PROV_)
 
#define MS_STRONG_PROV_A   "Microsoft Strong Cryptographic Provider"
 
#define MS_STRONG_PROV   WINELIB_NAME_AW(MS_STRONG_PROV_)
 
#define MS_DEF_RSA_SIG_PROV_A   "Microsoft RSA Signature Cryptographic Provider"
 
#define MS_DEF_RSA_SIG_PROV   WINELIB_NAME_AW(MS_DEF_RSA_SIG_PROV_)
 
#define MS_DEF_RSA_SCHANNEL_PROV_A   "Microsoft RSA SChannel Cryptographic Provider"
 
#define MS_DEF_RSA_SCHANNEL_PROV   WINELIB_NAME_AW(MS_DEF_RSA_SCHANNEL_PROV_)
 
#define MS_DEF_DSS_PROV_A   "Microsoft Base DSS Cryptographic Provider"
 
#define MS_DEF_DSS_PROV   WINELIB_NAME_AW(MS_DEF_DSS_PROV_)
 
#define MS_DEF_DSS_DH_PROV_A   "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"
 
#define MS_DEF_DSS_DH_PROV   WINELIB_NAME_AW(MS_DEF_DSS_DH_PROV_)
 
#define MS_ENH_DSS_DH_PROV_A   "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"
 
#define MS_ENH_DSS_DH_PROV   WINELIB_NAME_AW(MS_ENH_DSS_DH_PROV_)
 
#define MS_DEF_DH_SCHANNEL_PROV_A   "Microsoft DH SChannel Cryptographic Provider"
 
#define MS_DEF_DH_SCHANNEL_PROV   WINELIB_NAME_AW(MS_DEF_DH_SCHANNEL_PROV_)
 
#define MS_SCARD_PROV_A   "Microsoft Base Smart Card Cryptographic Provider"
 
#define MS_SCARD_PROV   WINELIB_NAME_AW(MS_SCARD_PROV_)
 
#define MS_ENH_RSA_AES_PROV_A   "Microsoft Enhanced RSA and AES Cryptographic Provider"
 
#define MS_ENH_RSA_AES_PROV   WINELIB_NAME_AW(MS_ENH_RSA_AES_PROV_)
 
#define MS_ENH_RSA_AES_PROV_XP_A   "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"
 
#define MS_ENH_RSA_AES_PROV_XP   WINELIB_NAME_AW(MS_ENH_RSA_AES_PROV_XP_)
 
#define AT_KEYEXCHANGE   1
 
#define AT_SIGNATURE   2
 
#define PROV_RSA_FULL   1
 
#define PROV_RSA_SIG   2
 
#define PROV_DSS   3
 
#define PROV_FORTEZZA   4
 
#define PROV_MS_EXCHANGE   5
 
#define PROV_SSL   6
 
#define PROV_RSA_SCHANNEL   12
 
#define PROV_DSS_DH   13
 
#define PROV_EC_ECDSA_SIG   14
 
#define PROV_EC_ECNRA_SIG   15
 
#define PROV_EC_ECDSA_FULL   16
 
#define PROV_EC_ECNRA_FULL   17
 
#define PROV_DH_SCHANNEL   18
 
#define PROV_SPYRUS_LYNKS   20
 
#define PROV_RNG   21
 
#define PROV_INTEL_SEC   22
 
#define PROV_REPLACE_OWF   23
 
#define PROV_RSA_AES   24
 
#define CRYPT_FIRST   1
 
#define CRYPT_NEXT   2
 
#define CRYPT_IMPL_HARDWARE   1
 
#define CRYPT_IMPL_SOFTWARE   2
 
#define CRYPT_IMPL_MIXED   3
 
#define CRYPT_IMPL_UNKNOWN   4
 
#define CRYPT_VERIFYCONTEXT   0xF0000000
 
#define CRYPT_NEWKEYSET   0x00000008
 
#define CRYPT_DELETEKEYSET   0x00000010
 
#define CRYPT_MACHINE_KEYSET   0x00000020
 
#define CRYPT_SILENT   0x00000040
 
#define CRYPT_MACHINE_DEFAULT   0x00000001
 
#define CRYPT_USER_DEFAULT   0x00000002
 
#define CRYPT_DELETE_DEFAULT   0x00000004
 
#define PP_CLIENT_HWND   1
 
#define PP_ENUMALGS   1
 
#define PP_ENUMCONTAINERS   2
 
#define PP_IMPTYPE   3
 
#define PP_NAME   4
 
#define PP_VERSION   5
 
#define PP_CONTAINER   6
 
#define PP_CHANGE_PASSWORD   7
 
#define PP_KEYSET_SEC_DESCR   8
 
#define PP_KEY_TYPE_SUBTYPE   10
 
#define PP_CONTEXT_INFO   11
 
#define PP_KEYEXCHANGE_KEYSIZE   12
 
#define PP_SIGNATURE_KEYSIZE   13
 
#define PP_KEYEXCHANGE_ALG   14
 
#define PP_SIGNATURE_ALG   15
 
#define PP_PROVTYPE   16
 
#define PP_KEYSTORAGE   17
 
#define PP_SYM_KEYSIZE   19
 
#define PP_SESSION_KEYSIZE   20
 
#define PP_UI_PROMPT   21
 
#define PP_ENUMALGS_EX   22
 
#define PP_DELETEKEY   24
 
#define PP_ENUMMANDROOTS   25
 
#define PP_ENUMELECTROOTS   26
 
#define PP_KEYSET_TYPE   27
 
#define PP_ADMIN_PIN   31
 
#define PP_KEYEXCHANGE_PIN   32
 
#define PP_SIGNATURE_PIN   33
 
#define PP_SIG_KEYSIZE_INC   34
 
#define PP_KEYX_KEYSIZE_INC   35
 
#define PP_UNIQUE_CONTAINER   36
 
#define PP_SGC_INFO   37
 
#define PP_USE_HARDWARE_RNG   38
 
#define PP_KEYSPEC   39
 
#define PP_ENUMEX_SIGNING_PROT   40
 
#define PP_CRYPT_COUNT_KEY_USE   41
 
#define PP_USER_CERTSTORE   42
 
#define PP_SMARTCARD_READER   43
 
#define PP_SMARTCARD_GUID   45
 
#define PP_ROOT_CERTSTORE   46
 
#define CRYPT_SEC_DESCR   0x00000001
 
#define CRYPT_PSTORE   0x00000002
 
#define CRYPT_UI_PROMPT   0x00000004
 
#define KP_IV   1
 
#define KP_SALT   2
 
#define KP_PADDING   3
 
#define KP_MODE   4
 
#define KP_MODE_BITS   5
 
#define KP_PERMISSIONS   6
 
#define KP_ALGID   7
 
#define KP_BLOCKLEN   8
 
#define KP_KEYLEN   9
 
#define KP_SALT_EX   10
 
#define KP_P   11
 
#define KP_G   12
 
#define KP_Q   13
 
#define KP_X   14
 
#define KP_Y   15
 
#define KP_RA   16
 
#define KP_RB   17
 
#define KP_INFO   18
 
#define KP_EFFECTIVE_KEYLEN   19
 
#define KP_SCHANNEL_ALG   20
 
#define KP_CLIENT_RANDOM   21
 
#define KP_SERVER_RANDOM   22
 
#define KP_RP   23
 
#define KP_PRECOMP_MD5   24
 
#define KP_PRECOMP_SHA   25
 
#define KP_CERTIFICATE   26
 
#define KP_CLEAR_KEY   27
 
#define KP_PUB_EX_LEN   28
 
#define KP_PUB_EX_VAL   29
 
#define KP_KEYVAL   30
 
#define KP_ADMIN_PIN   31
 
#define KP_KEYEXCHANGE_PIN   32
 
#define KP_SIGNATURE_PIN   33
 
#define KP_PREHASH   34
 
#define KP_ROUNDS   35
 
#define KP_OAEP_PARAMS   36
 
#define KP_CMS_KEY_INFO   37
 
#define KP_CMS_DH_KEY_INFO   38
 
#define KP_PUB_PARAMS   39
 
#define KP_VERIFY_PARAMS   40
 
#define KP_HIGHEST_VERSION   41
 
#define KP_GET_USE_COUNT   42
 
#define PKCS5_PADDING   1
 
#define RANDOM_PADDING   2
 
#define ZERO_PADDING   3
 
#define CRYPT_NOHASHOID   0x00000001
 
#define CRYPT_TYPE2_FORMAT   0x00000002
 
#define CRYPT_X931_FORMAT   0x00000004
 
#define HP_ALGID   0x0001
 
#define HP_HASHVAL   0x0002
 
#define HP_HASHSIZE   0x0004
 
#define HP_HMAC_INFO   0x0005
 
#define HP_TLS1PRF_LABEL   0x0006
 
#define HP_TLS1PRF_SEED   0x0007
 
#define CRYPT_MODE_CBC   1
 
#define CRYPT_MODE_ECB   2
 
#define CRYPT_MODE_OFB   3
 
#define CRYPT_MODE_CFB   4
 
#define CRYPT_ENCRYPT   0x0001
 
#define CRYPT_DECRYPT   0x0002
 
#define CRYPT_EXPORT   0x0004
 
#define CRYPT_READ   0x0008
 
#define CRYPT_WRITE   0x0010
 
#define CRYPT_MAC   0x0020
 
#define CRYPT_EXPORT_KEY   0x0040
 
#define CRYPT_IMPORT_KEY   0x0080
 
#define CRYPT_ARCHIVE   0x0100
 
#define CRYPT_EXPORTABLE   0x00000001
 
#define CRYPT_USER_PROTECTED   0x00000002
 
#define CRYPT_CREATE_SALT   0x00000004
 
#define CRYPT_UPDATE_KEY   0x00000008
 
#define CRYPT_NO_SALT   0x00000010
 
#define CRYPT_PREGEN   0x00000040
 
#define CRYPT_SERVER   0x00000400
 
#define CRYPT_ARCHIVABLE   0x00004000
 
#define CRYPT_SSL2_FALLBACK   0x00000002
 
#define CRYPT_DESTROYKEY   0x00000004
 
#define CRYPT_OAEP   0x00000040
 
#define CRYPT_LITTLE_ENDIAN   0x00000001
 
#define CRYPTPROTECT_PROMPT_ON_PROTECT   0x0001
 
#define CRYPTPROTECT_PROMPT_ON_UNPROTECT   0x0002
 
#define CRYPTPROTECT_UI_FORBIDDEN   0x0001
 
#define CRYPTPROTECT_LOCAL_MACHINE   0x0004
 
#define CRYPTPROTECT_AUDIT   0x0010
 
#define CRYPTPROTECT_VERIFY_PROTECTION   0x0040
 
#define CRYPTPROTECTMEMORY_BLOCK_SIZE   16
 
#define CRYPTPROTECTMEMORY_SAME_PROCESS   0x0000
 
#define CRYPTPROTECTMEMORY_CROSS_PROCESS   0x0001
 
#define CRYPTPROTECTMEMORY_SAME_LOGON   0x0002
 
#define SIMPLEBLOB   0x1
 
#define PUBLICKEYBLOB   0x6
 
#define PRIVATEKEYBLOB   0x7
 
#define PLAINTEXTKEYBLOB   0x8
 
#define OPAQUEKEYBLOB   0x9
 
#define PUBLICKEYBLOBEX   0xA
 
#define SYMMETRICWRAPKEYBLOB   0xB
 
#define CUR_BLOB_VERSION   2
 
#define CERT_STORE_PROV_MSG   ((LPCSTR)1)
 
#define CERT_STORE_PROV_MEMORY   ((LPCSTR)2)
 
#define CERT_STORE_PROV_FILE   ((LPCSTR)3)
 
#define CERT_STORE_PROV_REG   ((LPCSTR)4)
 
#define CERT_STORE_PROV_PKCS7   ((LPCSTR)5)
 
#define CERT_STORE_PROV_SERIALIZED   ((LPCSTR)6)
 
#define CERT_STORE_PROV_FILENAME_A   ((LPCSTR)7)
 
#define CERT_STORE_PROV_FILENAME_W   ((LPCSTR)8)
 
#define CERT_STORE_PROV_SYSTEM_A   ((LPCSTR)9)
 
#define CERT_STORE_PROV_SYSTEM_W   ((LPCSTR)10)
 
#define CERT_STORE_PROV_SYSTEM   CERT_STORE_PROV_SYSTEM_W
 
#define CERT_STORE_PROV_COLLECTION   ((LPCSTR)11)
 
#define CERT_STORE_PROV_SYSTEM_REGISTRY_A   ((LPCSTR)12)
 
#define CERT_STORE_PROV_SYSTEM_REGISTRY_W   ((LPCSTR)13)
 
#define CERT_STORE_PROV_SYSTEM_REGISTRY   CERT_STORE_PROV_SYSTEM_REGISTRY_W
 
#define CERT_STORE_PROV_PHYSICAL_W   ((LPCSTR)14)
 
#define CERT_STORE_PROV_PHYSICAL   CERT_STORE_PROV_PHYSICAL_W
 
#define CERT_STORE_PROV_SMART_CARD_W   ((LPCSTR)15)
 
#define CERT_STORE_PROV_SMART_CARD   CERT_STORE_PROV_SMART_CARD_W
 
#define CERT_STORE_PROV_LDAP_W   ((LPCSTR)16)
 
#define CERT_STORE_PROV_LDAP   CERT_STORE_PROV_LDAP_W
 
#define sz_CERT_STORE_PROV_MEMORY   "Memory"
 
#define sz_CERT_STORE_PROV_FILENAME_W   "File"
 
#define sz_CERT_STORE_PROV_FILENAME   sz_CERT_STORE_PROV_FILENAME_W
 
#define sz_CERT_STORE_PROV_SYSTEM_W   "System"
 
#define sz_CERT_STORE_PROV_SYSTEM   sz_CERT_STORE_PROV_SYSTEM_W
 
#define sz_CERT_STORE_PROV_PKCS7   "PKCS7"
 
#define sz_CERT_STORE_PROV_SERIALIZED   "Serialized"
 
#define sz_CERT_STORE_PROV_COLLECTION   "Collection"
 
#define sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W   "SystemRegistry"
 
#define sz_CERT_STORE_PROV_SYSTEM_REGISTRY   sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W
 
#define sz_CERT_STORE_PROV_PHYSICAL_W   "Physical"
 
#define sz_CERT_STORE_PROV_PHYSICAL   sz_CERT_STORE_PROV_PHYSICAL_W
 
#define sz_CERT_STORE_PROV_SMART_CARD_W   "SmartCard"
 
#define sz_CERT_STORE_PROV_SMART_CARD   sz_CERT_STORE_PROV_SMART_CARD_W
 
#define sz_CERT_STORE_PROV_LDAP_W   "Ldap"
 
#define sz_CERT_STORE_PROV_LDAP   sz_CERT_STORE_PROV_LDAP_W
 
#define CERT_ENCODING_TYPE_MASK   0x0000ffff
 
#define CMSG_ENCODING_TYPE_MASK   0xffff0000
 
#define GET_CERT_ENCODING_TYPE(x)   ((x) & CERT_ENCODING_TYPE_MASK)
 
#define GET_CMSG_ENCODING_TYPE(x)   ((x) & CMSG_ENCODING_TYPE_MASK)
 
#define CRYPT_ASN_ENCODING   0x00000001
 
#define CRYPT_NDR_ENCODING   0x00000002
 
#define X509_ASN_ENCODING   0x00000001
 
#define X509_NDR_ENCODING   0x00000002
 
#define PKCS_7_ASN_ENCODING   0x00010000
 
#define PKCS_7_NDR_ENCODING   0x00020000
 
#define CERT_SYSTEM_STORE_LOCATION_MASK   0x00ff0000
 
#define CERT_SYSTEM_STORE_LOCATION_SHIFT   16
 
#define CERT_SYSTEM_STORE_CURRENT_USER_ID   1
 
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ID   2
 
#define CERT_SYSTEM_STORE_CURRENT_SERVICE_ID   4
 
#define CERT_SYSTEM_STORE_SERVICES_ID   5
 
#define CERT_SYSTEM_STORE_USERS_ID   6
 
#define CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID   7
 
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID   8
 
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID   9
 
#define CERT_SYSTEM_STORE_CURRENT_USER    (CERT_SYSTEM_STORE_CURRENT_USER_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
 
#define CERT_SYSTEM_STORE_LOCAL_MACHINE    (CERT_SYSTEM_STORE_LOCAL_MACHINE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
 
#define CERT_SYSTEM_STORE_CURRENT_SERVICE    (CERT_SYSTEM_STORE_CURRENT_SERVICE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
 
#define CERT_SYSTEM_STORE_SERVICES    (CERT_SYSTEM_STORE_SERVICES_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
 
#define CERT_SYSTEM_STORE_USERS    (CERT_SYSTEM_STORE_USERS_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
 
#define CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY    (CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
 
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY    (CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
 
#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE    (CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
 
#define CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG   0x01
 
#define CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG   0x02
 
#define CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG   0x04
 
#define CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG   0x08
 
#define CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG   0x10
 
#define CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG   0x20
 
#define CERT_TRUST_PUB_ALLOW_END_USER_TRUST   0x00000000
 
#define CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST   0x00000001
 
#define CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST   0x00000002
 
#define CERT_TRUST_PUB_ALLOW_TRUST_MASK   0x00000003
 
#define CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG   0x00000100
 
#define CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG   0x00000200
 
#define CERT_STORE_NO_CRYPT_RELEASE_FLAG   0x00000001
 
#define CERT_STORE_SET_LOCALIZED_NAME_FLAG   0x00000002
 
#define CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG   0x00000004
 
#define CERT_STORE_DELETE_FLAG   0x00000010
 
#define CERT_STORE_UNSAFE_PHYSICAL_FLAG   0x00000020
 
#define CERT_STORE_SHARE_STORE_FLAG   0x00000040
 
#define CERT_STORE_SHARE_CONTEXT_FLAG   0x00000080
 
#define CERT_STORE_MANIFOLD_FLAG   0x00000100
 
#define CERT_STORE_ENUM_ARCHIVED_FLAG   0x00000200
 
#define CERT_STORE_UPDATE_KEYID_FLAG   0x00000400
 
#define CERT_STORE_BACKUP_RESTORE_FLAG   0x00000800
 
#define CERT_STORE_MAXIMUM_ALLOWED_FLAG   0x00001000
 
#define CERT_STORE_CREATE_NEW_FLAG   0x00002000
 
#define CERT_STORE_OPEN_EXISTING_FLAG   0x00004000
 
#define CERT_STORE_READONLY_FLAG   0x00008000
 
#define CERT_REGISTRY_STORE_REMOTE_FLAG   0x00010000
 
#define CERT_REGISTRY_STORE_SERIALIZED_FLAG   0x00020000
 
#define CERT_REGISTRY_STORE_ROAMING_FLAG   0x00040000
 
#define CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG   0x00080000
 
#define CERT_REGISTRY_STORE_LM_GPT_FLAG   0x01000000
 
#define CERT_REGISTRY_STORE_CLIENT_GPT_FLAG   0x80000000
 
#define CERT_FILE_STORE_COMMIT_ENABLE_FLAG   0x00010000
 
#define CERT_CLOSE_STORE_FORCE_FLAG   0x00000001
 
#define CERT_CLOSE_STORE_CHECK_FLAG   0x00000002
 
#define CERT_STORE_ADD_NEW   1
 
#define CERT_STORE_ADD_USE_EXISTING   2
 
#define CERT_STORE_ADD_REPLACE_EXISTING   3
 
#define CERT_STORE_ADD_ALWAYS   4
 
#define CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES   5
 
#define CERT_STORE_ADD_NEWER   6
 
#define CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES   7
 
#define CRYPT_OID_OPEN_STORE_PROV_FUNC   "CertDllOpenStoreProv"
 
#define CRYPT_OID_ENCODE_OBJECT_FUNC   "CryptDllEncodeObject"
 
#define CRYPT_OID_DECODE_OBJECT_FUNC   "CryptDllDecodeObject"
 
#define CRYPT_OID_ENCODE_OBJECT_EX_FUNC   "CryptDllEncodeObjectEx"
 
#define CRYPT_OID_DECODE_OBJECT_EX_FUNC   "CryptDllDecodeObjectEx"
 
#define CRYPT_OID_CREATE_COM_OBJECT_FUNC   "CryptDllCreateComObject"
 
#define CRYPT_OID_VERIFY_REVOCATION_FUNC   "CertDllVerifyRevocation"
 
#define CRYPT_OID_VERIFY_CTL_USAGE_FUNC   "CertDllVerifyCTLUsage"
 
#define CRYPT_OID_FORMAT_OBJECT_FUNC   "CryptDllFormatObject"
 
#define CRYPT_OID_FIND_OID_INFO_FUNC   "CryptDllFindOIDInfo"
 
#define CRYPT_OID_FIND_LOCALIZED_NAME_FUNC   "CryptDllFindLocalizedName"
 
#define CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC   "CryptDllExportPublicKeyInfoEx"
 
#define CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC   "CryptDllImportPublicKeyInfoEx"
 
#define CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC   "CryptDllExportPrivateKeyInfoEx"
 
#define CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC   "CryptDllImportPrivateKeyInfoEx"
 
#define CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC    "CertDllVerifyCertificateChainPolicy"
 
#define CRYPT_OID_CONVERT_PUBLIC_KEY_INFO_FUNC   "CryptDllConvertPublicKeyInfo"
 
#define URL_OID_GET_OBJECT_URL_FUNC   "UrlDllGetObjectUrl"
 
#define TIME_VALID_OID_GET_OBJECT_FUNC   "TimeValidDllGetObject"
 
#define CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC   "CryptMsgDllGenContentEncryptKey"
 
#define CMSG_OID_EXPORT_KEY_TRANS_FUNC   "CryptMsgDllExportKeyTrans"
 
#define CMSG_OID_IMPORT_KEY_TRANS_FUNC   "CryptMsgDllImportKeyTrans"
 
#define CRYPT_OID_REGPATH   "Software\\Microsoft\\Cryptography\\OID"
 
#define CRYPT_OID_REG_ENCODING_TYPE_PREFIX   "EncodingType "
 
#define CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A   "FuncName"
 
#define CRYPT_DEFAULT_OID   "DEFAULT"
 
#define CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG   1
 
#define CRYPT_INSTALL_OID_INFO_BEFORE_FLAG   1
 
#define CRYPT_GET_INSTALLED_OID_FUNC_FLAG   0x1
 
#define CRYPT_REGISTER_FIRST_INDEX   0
 
#define CRYPT_REGISTER_LAST_INDEX   0xffffffff
 
#define CERT_STORE_PROV_EXTERNAL_FLAG   0x1
 
#define CERT_STORE_PROV_DELETED_FLAG   0x2
 
#define CERT_STORE_PROV_NO_PERSIST_FLAG   0x4
 
#define CERT_STORE_PROV_SYSTEM_STORE_FLAG   0x8
 
#define CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG   0x10
 
#define CERT_STORE_PROV_CLOSE_FUNC   0
 
#define CERT_STORE_PROV_READ_CERT_FUNC   1
 
#define CERT_STORE_PROV_WRITE_CERT_FUNC   2
 
#define CERT_STORE_PROV_DELETE_CERT_FUNC   3
 
#define CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC   4
 
#define CERT_STORE_PROV_READ_CRL_FUNC   5
 
#define CERT_STORE_PROV_WRITE_CRL_FUNC   6
 
#define CERT_STORE_PROV_DELETE_CRL_FUNC   7
 
#define CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC   8
 
#define CERT_STORE_PROV_READ_CTL_FUNC   9
 
#define CERT_STORE_PROV_WRITE_CTL_FUNC   10
 
#define CERT_STORE_PROV_DELETE_CTL_FUNC   11
 
#define CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC   12
 
#define CERT_STORE_PROV_CONTROL_FUNC   13
 
#define CERT_STORE_PROV_FIND_CERT_FUNC   14
 
#define CERT_STORE_PROV_FREE_FIND_CERT_FUNC   15
 
#define CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC   16
 
#define CERT_STORE_PROV_FIND_CRL_FUNC   17
 
#define CERT_STORE_PROV_FREE_FIND_CRL_FUNC   18
 
#define CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC   19
 
#define CERT_STORE_PROV_FIND_CTL_FUNC   20
 
#define CERT_STORE_PROV_FREE_FIND_CTL_FUNC   21
 
#define CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC   22
 
#define CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG   0x1
 
#define CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG   0x2
 
#define CERT_PHYSICAL_STORE_REMOVE_OPEN_DISABLE_FLAG   0x4
 
#define CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG   0x8
 
#define CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG   0x1
 
#define CERT_SYSTEM_STORE_MASK   0xffff0000
 
#define CERT_SYSTEM_STORE_RELOCATE_FLAG   0x80000000
 
#define CERT_CHAIN_FIND_BY_ISSUER   1
 
#define CERT_STORE_SAVE_AS_STORE   1
 
#define CERT_STORE_SAVE_AS_PKCS7   2
 
#define CERT_STORE_SAVE_TO_FILE   1
 
#define CERT_STORE_SAVE_TO_MEMORY   2
 
#define CERT_STORE_SAVE_TO_FILENAME_A   3
 
#define CERT_STORE_SAVE_TO_FILENAME_W   4
 
#define CERT_STORE_SAVE_TO_FILENAME   CERT_STORE_SAVE_TO_FILENAME_W
 
#define CERT_V1   0
 
#define CERT_V2   1
 
#define CERT_V3   2
 
#define CERT_INFO_VERSION_FLAG   1
 
#define CERT_INFO_SERIAL_NUMBER_FLAG   2
 
#define CERT_INFO_SIGNATURE_ALGORITHM_FLAG   3
 
#define CERT_INFO_ISSUER_FLAG   4
 
#define CERT_INFO_NOT_BEFORE_FLAG   5
 
#define CERT_INFO_NOT_AFTER_FLAG   6
 
#define CERT_INFO_SUBJECT_FLAG   7
 
#define CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG   8
 
#define CERT_INFO_ISSUER_UNIQUE_ID_FLAG   9
 
#define CERT_INFO_SUBJECT_UNIQUE_ID_FLAG   10
 
#define CERT_INFO_EXTENSION_FLAG   11
 
#define CERT_REQUEST_V1   0
 
#define CERT_KEYGEN_REQUEST_V1   0
 
#define CRL_V1   0
 
#define CRL_V2   1
 
#define CTL_V1   0
 
#define CERT_KEY_PROV_HANDLE_PROP_ID   1
 
#define CERT_KEY_PROV_INFO_PROP_ID   2
 
#define CERT_SHA1_HASH_PROP_ID   3
 
#define CERT_HASH_PROP_ID   CERT_SHA1_HASH_PROP_ID
 
#define CERT_MD5_HASH_PROP_ID   4
 
#define CERT_KEY_CONTEXT_PROP_ID   5
 
#define CERT_KEY_SPEC_PROP_ID   6
 
#define CERT_IE30_RESERVED_PROP_ID   7
 
#define CERT_PUBKEY_HASH_RESERVED_PROP_ID   8
 
#define CERT_ENHKEY_USAGE_PROP_ID   9
 
#define CERT_CTL_USAGE_PROP_ID   CERT_ENHKEY_USAGE_PROP_ID
 
#define CERT_NEXT_UPDATE_LOCATION_PROP_ID   10
 
#define CERT_FRIENDLY_NAME_PROP_ID   11
 
#define CERT_PVK_FILE_PROP_ID   12
 
#define CERT_DESCRIPTION_PROP_ID   13
 
#define CERT_ACCESS_STATE_PROP_ID   14
 
#define CERT_SIGNATURE_HASH_PROP_ID   15
 
#define CERT_SMART_CARD_DATA_PROP_ID   16
 
#define CERT_EFS_PROP_ID   17
 
#define CERT_FORTEZZA_DATA_PROP_ID   18
 
#define CERT_ARCHIVED_PROP_ID   19
 
#define CERT_KEY_IDENTIFIER_PROP_ID   20
 
#define CERT_AUTO_ENROLL_PROP_ID   21
 
#define CERT_PUBKEY_ALG_PARA_PROP_ID   22
 
#define CERT_CROSS_CERT_DIST_POINTS_PROP_ID   23
 
#define CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID   24
 
#define CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID   25
 
#define CERT_ENROLLMENT_PROP_ID   26
 
#define CERT_DATE_STAMP_PROP_ID   27
 
#define CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID   28
 
#define CERT_SUBJECT_NAME_MD5_HASH_PROP_ID   29
 
#define CERT_EXTENDED_ERROR_INFO_PROP_ID   30
 
#define CERT_RENEWAL_PROP_ID   64
 
#define CERT_ARCHIVED_KEY_HASH_PROP_ID   65
 
#define CERT_AUTO_ENROLL_RETRY_PROP_ID   66
 
#define CERT_AIA_URL_RETRIEVED_PROP_ID   67
 
#define CERT_AUTHORITY_INFO_ACCESS_PROP_ID   68
 
#define CERT_BACKED_UP_PROP_ID   69
 
#define CERT_OCSP_RESPONSE_PROP_ID   70
 
#define CERT_REQUEST_ORIGINATOR_PROP_ID   71
 
#define CERT_SOURCE_LOCATION_PROP_ID   72
 
#define CERT_SOURCE_URL_PROP_ID   73
 
#define CERT_NEW_KEY_PROP_ID   74
 
#define CERT_OCSP_CACHE_PREFIX_PROP_ID   75
 
#define CERT_SMART_CARD_ROOT_INFO_PROP_ID   76
 
#define CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID   77
 
#define CERT_NCRYPT_KEY_HANDLE_PROP_ID   78
 
#define CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID   79
 
#define CERT_SUBJECT_INFO_ACCESS_PROP_ID   80
 
#define CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID   81
 
#define CERT_CA_DISABLE_CRL_PROP_ID   82
 
#define CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID   83
 
#define CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID   84
 
#define CERT_FIRST_RESERVED_PROP_ID   85
 
#define CERT_LAST_RESERVED_PROP_ID   0x00007fff
 
#define CERT_FIRST_USER_PROP_ID   0x00008000
 
#define CERT_LAST_USER_PROP_ID   0x0000ffff
 
#define IS_CERT_HASH_PROP_ID(x)
 
#define IS_PUBKEY_HASH_PROP_ID(x)
 
#define IS_CHAIN_HASH_PROP_ID(x)
 
#define CERT_ACCESS_STATE_WRITE_PERSIST_FLAG   0x1
 
#define CERT_ACCESS_STATE_SYSTEM_STORE_FLAG   0x2
 
#define CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG   0x4
 
#define CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG   0x40000000
 
#define CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG   0x80000000
 
#define CERT_RDN_TYPE_MASK   0x000000ff
 
#define CERT_RDN_ANY_TYPE   0
 
#define CERT_RDN_ENCODED_BLOB   1
 
#define CERT_RDN_OCTET_STRING   2
 
#define CERT_RDN_NUMERIC_STRING   3
 
#define CERT_RDN_PRINTABLE_STRING   4
 
#define CERT_RDN_TELETEX_STRING   5
 
#define CERT_RDN_T61_STRING   5
 
#define CERT_RDN_VIDEOTEX_STRING   6
 
#define CERT_RDN_IA5_STRING   7
 
#define CERT_RDN_GRAPHIC_STRING   8
 
#define CERT_RDN_VISIBLE_STRING   9
 
#define CERT_RDN_ISO646_STRING   9
 
#define CERT_RDN_GENERAL_STRING   10
 
#define CERT_RDN_UNIVERSAL_STRING   11
 
#define CERT_RDN_INT4_STRING   11
 
#define CERT_RDN_BMP_STRING   12
 
#define CERT_RDN_UNICODE_STRING   12
 
#define CERT_RDN_UTF8_STRING   13
 
#define CERT_RDN_FLAGS_MASK   0xff000000
 
#define CERT_RDN_ENABLE_T61_UNICODE_FLAG   0x80000000
 
#define CERT_RDN_DISABLE_CHECK_TYPE_FLAG   0x4000000
 
#define CERT_RDN_ENABLE_UTF8_UNICODE_FLAG   0x2000000
 
#define CERT_RDN_DISABLE_IE4_UTF8_FLAG   0x0100000
 
#define IS_CERT_RDN_CHAR_STRING(x)    (((x) & CERT_RDN_TYPE_MASK) >= CERT_RDN_NUMERIC_STRING)
 
#define CERT_UNICODE_IS_RDN_ATTRS_FLAG   0x1
 
#define CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG   0x2
 
#define CRL_REASON_UNSPECIFIED   0
 
#define CRL_REASON_KEY_COMPROMISE   1
 
#define CRL_REASON_CA_COMPROMISE   2
 
#define CRL_REASON_AFFILIATION_CHANGED   3
 
#define CRL_REASON_SUPERSEDED   4
 
#define CRL_REASON_CESSATION_OF_OPERATION   5
 
#define CRL_REASON_CERTIFICATE_HOLD   6
 
#define CRL_REASON_REMOVE_FROM_CRL   8
 
#define CERT_STORE_CTRL_RESYNC   1
 
#define CERT_STORE_CTRL_NOTIFY_CHANGE   2
 
#define CERT_STORE_CTRL_COMMIT   3
 
#define CERT_STORE_CTRL_AUTO_RESYNC   4
 
#define CERT_STORE_CTRL_CANCEL_NOTIFY   5
 
#define CERT_STORE_CTRL_COMMIT_FORCE_FLAG   0x1
 
#define CERT_STORE_CTRL_COMMIT_CLEAR_FLAG   0x2
 
#define CERT_STORE_LOCALIZED_NAME_PROP_ID   0x1000
 
#define CERT_CREATE_CONTEXT_NOCOPY_FLAG   0x1
 
#define CERT_CREATE_CONTEXT_SORTED_FLAG   0x2
 
#define CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG   0x4
 
#define CERT_CREATE_CONTEXT_NO_ENTRY_FLAG   0x8
 
#define CERT_COMPARE_MASK   0xffff
 
#define CERT_COMPARE_SHIFT   16
 
#define CERT_COMPARE_ANY   0
 
#define CERT_COMPARE_SHA1_HASH   1
 
#define CERT_COMPARE_HASH   CERT_COMPARE_SHA1_HASH
 
#define CERT_COMPARE_NAME   2
 
#define CERT_COMPARE_ATTR   3
 
#define CERT_COMPARE_MD5_HASH   4
 
#define CERT_COMPARE_PROPERTY   5
 
#define CERT_COMPARE_PUBLIC_KEY   6
 
#define CERT_COMPARE_NAME_STR_A   7
 
#define CERT_COMPARE_NAME_STR_W   8
 
#define CERT_COMPARE_KEY_SPEC   9
 
#define CERT_COMPARE_ENHKEY_USAGE   10
 
#define CERT_COMPARE_CTL_USAGE   CERT_COMPARE_ENHKEY_USAGE
 
#define CERT_COMPARE_SUBJECT_CERT   11
 
#define CERT_COMPARE_ISSUER_OF   12
 
#define CERT_COMPARE_EXISTING   13
 
#define CERT_COMPARE_SIGNATURE_HASH   14
 
#define CERT_COMPARE_KEY_IDENTIFIER   15
 
#define CERT_COMPARE_CERT_ID   16
 
#define CERT_COMPARE_CROSS_CERT_DIST_POINTS   17
 
#define CERT_COMPARE_PUBKEY_MD5_HASH   18
 
#define CERT_FIND_ANY    (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_SHA1_HASH    (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_MD5_HASH    (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_SIGNATURE_HASH    (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_KEY_IDENTIFIER    (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_HASH   CERT_FIND_SHA1_HASH
 
#define CERT_FIND_PROPERTY    (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_PUBLIC_KEY    (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_SUBJECT_NAME    (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)
 
#define CERT_FIND_SUBJECT_ATTR    (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)
 
#define CERT_FIND_ISSUER_NAME    (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)
 
#define CERT_FIND_ISSUER_ATTR    (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)
 
#define CERT_FIND_SUBJECT_STR_A    (CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)
 
#define CERT_FIND_SUBJECT_STR_W    (CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)
 
#define CERT_FIND_SUBJECT_STR   CERT_FIND_SUBJECT_STR_W
 
#define CERT_FIND_ISSUER_STR_A    (CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)
 
#define CERT_FIND_ISSUER_STR_W    (CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)
 
#define CERT_FIND_ISSUER_STR   CERT_FIND_ISSUER_STR_W
 
#define CERT_FIND_KEY_SPEC    (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_ENHKEY_USAGE    (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_CTL_USAGE   CERT_FIND_ENHKEY_USAGE
 
#define CERT_FIND_SUBJECT_CERT    (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_ISSUER_OF    (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_EXISTING    (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_CERT_ID    (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_CROSS_CERT_DIST_POINTS    (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_PUBKEY_MD5_HASH    (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT)
 
#define CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG   0x1
 
#define CERT_FIND_OPTIONAL_CTL_USAGE_FLAG   0x1
 
#define CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG   0x2
 
#define CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG   0x2
 
#define CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG   0x4
 
#define CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG   0x4
 
#define CERT_FIND_NO_ENHKEY_USAGE_FLAG   0x8
 
#define CERT_FIND_NO_CTL_USAGE_FLAG   0x8
 
#define CERT_FIND_OR_ENHKEY_USAGE_FLAG   0x10
 
#define CERT_FIND_OR_CTL_USAGE_FLAG   0x10
 
#define CERT_FIND_VALID_ENHKEY_USAGE_FLAG   0x20
 
#define CERT_FIND_VALID_CTL_USAGE_FLAG   0x20
 
#define CRL_FIND_ANY   0
 
#define CRL_FIND_ISSUED_BY   1
 
#define CRL_FIND_EXISTING   2
 
#define CRL_FIND_ISSUED_FOR   3
 
#define CRL_FIND_ISSUED_BY_AKI_FLAG   0x1
 
#define CRL_FIND_ISSUED_BY_SIGNATURE_FLAG   0x2
 
#define CRL_FIND_ISSUED_BY_DELTA_FLAG   0x4
 
#define CRL_FIND_ISSUED_BY_BASE_FLAG   0x8
 
#define CTL_FIND_ANY   0
 
#define CTL_FIND_SHA1_HASH   1
 
#define CTL_FIND_MD5_HASH   2
 
#define CTL_FIND_USAGE   3
 
#define CTL_FIND_SUBJECT   4
 
#define CTL_FIND_EXISTING   5
 
#define CTL_FIND_NO_LIST_ID_CBDATA   0xffffffff
 
#define CTL_FIND_NO_SIGNER_PTR   ((PCERT_INFO)-1)
 
#define CTL_FIND_SAME_USAGE_FLAG   0x00000001
 
#define CERT_STORE_PROV_WRITE_ADD_FLAG   0x1
 
#define CERT_STORE_CERTIFICATE_CONTEXT   1
 
#define CERT_STORE_CRL_CONTEXT   2
 
#define CERT_STORE_CTL_CONTEXT   3
 
#define CERT_STORE_ALL_CONTEXT_FLAG   ~0U
 
#define CERT_STORE_CERTIFICATE_CONTEXT_FLAG    (1 << CERT_STORE_CERTIFICATE_CONTEXT)
 
#define CERT_STORE_CRL_CONTEXT_FLAG   (1 << CERT_STORE_CRL_CONTEXT)
 
#define CERT_STORE_CTL_CONTEXT_FLAG   (1 << CERT_STORE_CTL_CONTEXT)
 
#define CRYPT_STRING_BASE64HEADER   0x00000000
 
#define CRYPT_STRING_BASE64   0x00000001
 
#define CRYPT_STRING_BINARY   0x00000002
 
#define CRYPT_STRING_BASE64REQUESTHEADER   0x00000003
 
#define CRYPT_STRING_HEX   0x00000004
 
#define CRYPT_STRING_HEXASCII   0x00000005
 
#define CRYPT_STRING_BASE64_ANY   0x00000006
 
#define CRYPT_STRING_ANY   0x00000007
 
#define CRYPT_STRING_HEX_ANY   0x00000008
 
#define CRYPT_STRING_BASE64X509CRLHEADER   0x00000009
 
#define CRYPT_STRING_HEXADDR   0x0000000a
 
#define CRYPT_STRING_HEXASCIIADDR   0x0000000b
 
#define CRYPT_STRING_HEXRAW   0x0000000c
 
#define CRYPT_STRING_BASE64URI   0x0000000d
 
#define CRYPT_STRING_PERCENTESCAPE   0x08000000
 
#define CRYPT_STRING_HASHDATA   0x10000000
 
#define CRYPT_STRING_STRICT   0x20000000
 
#define CRYPT_STRING_NOCRLF   0x40000000
 
#define CRYPT_STRING_NOCR   0x80000000
 
#define szOID_RSA   "1.2.840.113549"
 
#define szOID_PKCS   "1.2.840.113549.1"
 
#define szOID_RSA_HASH   "1.2.840.113549.2"
 
#define szOID_RSA_ENCRYPT   "1.2.840.113549.3"
 
#define szOID_PKCS_1   "1.2.840.113549.1.1"
 
#define szOID_PKCS_2   "1.2.840.113549.1.2"
 
#define szOID_PKCS_3   "1.2.840.113549.1.3"
 
#define szOID_PKCS_4   "1.2.840.113549.1.4"
 
#define szOID_PKCS_5   "1.2.840.113549.1.5"
 
#define szOID_PKCS_6   "1.2.840.113549.1.6"
 
#define szOID_PKCS_7   "1.2.840.113549.1.7"
 
#define szOID_PKCS_8   "1.2.840.113549.1.8"
 
#define szOID_PKCS_9   "1.2.840.113549.1.9"
 
#define szOID_PKCS_10   "1.2.840.113549.1.10"
 
#define szOID_PKCS_11   "1.2.840.113549.1.12"
 
#define szOID_RSA_RSA   "1.2.840.113549.1.1.1"
 
#define CERT_RSA_PUBLIC_KEY_OBJID   szOID_RSA_RSA
 
#define CERT_DEFAULT_OID_PUBLIC_KEY_SIGN   szOID_RSA_RSA
 
#define CERT_DEFAULT_OID_PUBLIC_KEY_XCHG   szOID_RSA_RSA
 
#define szOID_RSA_MD2RSA   "1.2.840.113549.1.1.2"
 
#define szOID_RSA_MD4RSA   "1.2.840.113549.1.1.3"
 
#define szOID_RSA_MD5RSA   "1.2.840.113549.1.1.4"
 
#define szOID_RSA_SHA1RSA   "1.2.840.113549.1.1.5"
 
#define szOID_RSA_SET0AEP_RSA   "1.2.840.113549.1.1.6"
 
#define szOID_RSA_SHA256RSA   "1.2.840.113549.1.1.11"
 
#define szOID_RSA_SHA384RSA   "1.2.840.113549.1.1.12"
 
#define szOID_RSA_SHA512RSA   "1.2.840.113549.1.1.13"
 
#define szOID_RSA_DH   "1.2.840.113549.1.3.1"
 
#define szOID_RSA_data   "1.2.840.113549.1.7.1"
 
#define szOID_RSA_signedData   "1.2.840.113549.1.7.2"
 
#define szOID_RSA_envelopedData   "1.2.840.113549.1.7.3"
 
#define szOID_RSA_signEnvData   "1.2.840.113549.1.7.4"
 
#define szOID_RSA_digestedData   "1.2.840.113549.1.7.5"
 
#define szOID_RSA_hashedData   "1.2.840.113549.1.7.5"
 
#define szOID_RSA_encryptedData   "1.2.840.113549.1.7.6"
 
#define szOID_RSA_emailAddr   "1.2.840.113549.1.9.1"
 
#define szOID_RSA_unstructName   "1.2.840.113549.1.9.2"
 
#define szOID_RSA_contentType   "1.2.840.113549.1.9.3"
 
#define szOID_RSA_messageDigest   "1.2.840.113549.1.9.4"
 
#define szOID_RSA_signingTime   "1.2.840.113549.1.9.5"
 
#define szOID_RSA_counterSign   "1.2.840.113549.1.9.6"
 
#define szOID_RSA_challengePwd   "1.2.840.113549.1.9.7"
 
#define szOID_RSA_unstructAddr   "1.2.840.113549.1.9.9"
 
#define szOID_RSA_extCertAttrs   "1.2.840.113549.1.9.9"
 
#define szOID_RSA_certExtensions   "1.2.840.113549.1.9.14"
 
#define szOID_RSA_SMIMECapabilities   "1.2.840.113549.1.9.15"
 
#define szOID_RSA_preferSignedData   "1.2.840.113549.1.9.15.1"
 
#define szOID_RSA_SMIMEalg   "1.2.840.113549.1.9.16.3"
 
#define szOID_RSA_SMIMEalgESDH   "1.2.840.113549.1.9.16.3.5"
 
#define szOID_RSA_SMIMEalgCMS3DESwrap   "1.2.840.113549.1.9.16.3.6"
 
#define szOID_RSA_SMIMEalgCMSRC2wrap   "1.2.840.113549.1.9.16.3.7"
 
#define szOID_RSA_MD2   "1.2.840.113549.2.2"
 
#define szOID_RSA_MD4   "1.2.840.113549.2.4"
 
#define szOID_RSA_MD5   "1.2.840.113549.2.5"
 
#define szOID_RSA_RC2CBC   "1.2.840.113549.3.2"
 
#define szOID_RSA_RC4   "1.2.840.113549.3.4"
 
#define szOID_RSA_DES_EDE3_CBC   "1.2.840.113549.3.7"
 
#define szOID_RSA_RC5_CBCPad   "1.2.840.113549.3.9"
 
#define szOID_ANSI_X942   "1.2.840.10046"
 
#define szOID_ANSI_X942_DH   "1.2.840.10046.2.1"
 
#define szOID_X957   "1.2.840.10040"
 
#define szOID_X957_DSA   "1.2.840.10040.4.1"
 
#define szOID_X957_SHA1DSA   "1.2.840.10040.4.3"
 
#define szOID_ECC_PUBLIC_KEY   "1.2.840.10045.2.1"
 
#define szOID_ECC_CURVE_P256   "1.2.840.10045.3.1.7"
 
#define szOID_ECDSA_SPECIFIED   "1.2.840.10045.4.3"
 
#define szOID_ECDSA_SHA256   "1.2.840.10045.4.3.2"
 
#define szOID_ECDSA_SHA384   "1.2.840.10045.4.3.3"
 
#define szOID_ECDSA_SHA512   "1.2.840.10045.4.3.4"
 
#define szOID_DS   "2.5"
 
#define szOID_DSALG   "2.5.8"
 
#define szOID_DSALG_CRPT   "2.5.8.1"
 
#define szOID_DSALG_HASH   "2.5.8.2"
 
#define szOID_DSALG_SIGN   "2.5.8.3"
 
#define szOID_DSALG_RSA   "2.5.8.1.1"
 
#define szOID_OIW   "1.3.14"
 
#define szOID_OIWSEC   "1.3.14.3.2"
 
#define szOID_OIWSEC_md4RSA   "1.3.14.3.2.2"
 
#define szOID_OIWSEC_md5RSA   "1.3.14.3.2.3"
 
#define szOID_OIWSEC_md4RSA2   "1.3.14.3.2.4"
 
#define szOID_OIWSEC_desECB   "1.3.14.3.2.6"
 
#define szOID_OIWSEC_desCBC   "1.3.14.3.2.7"
 
#define szOID_OIWSEC_desOFB   "1.3.14.3.2.8"
 
#define szOID_OIWSEC_desCFB   "1.3.14.3.2.9"
 
#define szOID_OIWSEC_desMAC   "1.3.14.3.2.10"
 
#define szOID_OIWSEC_rsaSign   "1.3.14.3.2.11"
 
#define szOID_OIWSEC_dsa   "1.3.14.3.2.12"
 
#define szOID_OIWSEC_shaDSA   "1.3.14.3.2.13"
 
#define szOID_OIWSEC_mdc2RSA   "1.3.14.3.2.14"
 
#define szOID_OIWSEC_shaRSA   "1.3.14.3.2.15"
 
#define szOID_OIWSEC_dhCommMod   "1.3.14.3.2.16"
 
#define szOID_OIWSEC_desEDE   "1.3.14.3.2.17"
 
#define szOID_OIWSEC_sha   "1.3.14.3.2.18"
 
#define szOID_OIWSEC_mdc2   "1.3.14.3.2.19"
 
#define szOID_OIWSEC_dsaComm   "1.3.14.3.2.20"
 
#define szOID_OIWSEC_dsaCommSHA   "1.3.14.3.2.21"
 
#define szOID_OIWSEC_rsaXchg   "1.3.14.3.2.22"
 
#define szOID_OIWSEC_keyHashSeal   "1.3.14.3.2.23"
 
#define szOID_OIWSEC_md2RSASign   "1.3.14.3.2.24"
 
#define szOID_OIWSEC_md5RSASign   "1.3.14.3.2.25"
 
#define szOID_OIWSEC_sha1   "1.3.14.3.2.26"
 
#define szOID_OIWSEC_dsaSHA1   "1.3.14.3.2.27"
 
#define szOID_OIWSEC_dsaCommSHA1   "1.3.14.3.2.28"
 
#define szOID_OIWSEC_sha1RSASign   "1.3.14.3.2.29"
 
#define szOID_OIWDIR   "1.3.14.7.2"
 
#define szOID_OIWDIR_CRPT   "1.3.14.7.2.1"
 
#define szOID_OIWDIR_HASH   "1.3.14.7.2.2"
 
#define szOID_OIWDIR_SIGN   "1.3.14.7.2.3"
 
#define szOID_OIWDIR_md2   "1.3.14.7.2.2.1"
 
#define szOID_OIWDIR_md2RSA   "1.3.14.7.2.3.1"
 
#define szOID_ECC_CURVE_P384   "1.3.132.0.34"
 
#define szOID_ECC_CURVE_P521   "1.3.132.0.35"
 
#define szOID_INFOSEC   "2.16.840.1.101.2.1"
 
#define szOID_INFOSEC_sdnsSignature   "2.16.840.1.101.2.1.1.1"
 
#define szOID_INFOSEC_mosaicSignature   "2.16.840.1.101.2.1.1.2"
 
#define szOID_INFOSEC_sdnsConfidentiality   "2.16.840.1.101.2.1.1.3"
 
#define szOID_INFOSEC_mosaicConfidentiality   "2.16.840.1.101.2.1.1.4"
 
#define szOID_INFOSEC_sdnsIntegrity   "2.16.840.1.101.2.1.1.5"
 
#define szOID_INFOSEC_mosaicIntegrity   "2.16.840.1.101.2.1.1.6"
 
#define szOID_INFOSEC_sdnsTokenProtection   "2.16.840.1.101.2.1.1.7"
 
#define szOID_INFOSEC_mosaicTokenProtection   "2.16.840.1.101.2.1.1.8"
 
#define szOID_INFOSEC_sdnsKeyManagement   "2.16.840.1.101.2.1.1.9"
 
#define szOID_INFOSEC_mosaicKeyManagement   "2.16.840.1.101.2.1.1.10"
 
#define szOID_INFOSEC_sdnsKMandSig   "2.16.840.1.101.2.1.1.11"
 
#define szOID_INFOSEC_mosaicKMandSig   "2.16.840.1.101.2.1.1.12"
 
#define szOID_INFOSEC_SuiteASignature   "2.16.840.1.101.2.1.1.13"
 
#define szOID_INFOSEC_SuiteAConfidentiality   "2.16.840.1.101.2.1.1.14"
 
#define szOID_INFOSEC_SuiteAIntegrity   "2.16.840.1.101.2.1.1.15"
 
#define szOID_INFOSEC_SuiteATokenProtection   "2.16.840.1.101.2.1.1.16"
 
#define szOID_INFOSEC_SuiteAKeyManagement   "2.16.840.1.101.2.1.1.17"
 
#define szOID_INFOSEC_SuiteAKMandSig   "2.16.840.1.101.2.1.1.18"
 
#define szOID_INFOSEC_mosaicUpdatedSig   "2.16.840.1.101.2.1.1.19"
 
#define szOID_INFOSEC_mosaicKMandUpdSig   "2.16.840.1.101.2.1.1.20"
 
#define szOID_INFOSEC_mosaicUpdateInteg   "2.16.840.1.101.2.1.1.21"
 
#define szOID_NIST_sha256   "2.16.840.1.101.3.4.2.1"
 
#define szOID_NIST_sha384   "2.16.840.1.101.3.4.2.2"
 
#define szOID_NIST_sha512   "2.16.840.1.101.3.4.2.3"
 
#define szOID_COMMON_NAME   "2.5.4.3"
 
#define szOID_SUR_NAME   "2.5.4.4"
 
#define szOID_DEVICE_SERIAL_NUMBER   "2.5.4.5"
 
#define szOID_COUNTRY_NAME   "2.5.4.6"
 
#define szOID_LOCALITY_NAME   "2.5.4.7"
 
#define szOID_STATE_OR_PROVINCE_NAME   "2.5.4.8"
 
#define szOID_STREET_ADDRESS   "2.5.4.9"
 
#define szOID_ORGANIZATION_NAME   "2.5.4.10"
 
#define szOID_ORGANIZATIONAL_UNIT_NAME   "2.5.4.11"
 
#define szOID_TITLE   "2.5.4.12"
 
#define szOID_DESCRIPTION   "2.5.4.13"
 
#define szOID_SEARCH_GUIDE   "2.5.4.14"
 
#define szOID_BUSINESS_CATEGORY   "2.5.4.15"
 
#define szOID_POSTAL_ADDRESS   "2.5.4.16"
 
#define szOID_POSTAL_CODE   "2.5.4.17"
 
#define szOID_POST_OFFICE_BOX   "2.5.4.18"
 
#define szOID_PHYSICAL_DELIVERY_OFFICE_NAME   "2.5.4.19"
 
#define szOID_TELEPHONE_NUMBER   "2.5.4.20"
 
#define szOID_TELEX_NUMBER   "2.5.4.21"
 
#define szOID_TELETEXT_TERMINAL_IDENTIFIER   "2.5.4.22"
 
#define szOID_FACSIMILE_TELEPHONE_NUMBER   "2.5.4.23"
 
#define szOID_X21_ADDRESS   "2.5.4.24"
 
#define szOID_INTERNATIONAL_ISDN_NUMBER   "2.5.4.25"
 
#define szOID_REGISTERED_ADDRESS   "2.5.4.26"
 
#define szOID_DESTINATION_INDICATOR   "2.5.4.27"
 
#define szOID_PREFERRED_DELIVERY_METHOD   "2.5.4.28"
 
#define szOID_PRESENTATION_ADDRESS   "2.5.4.29"
 
#define szOID_SUPPORTED_APPLICATION_CONTEXT   "2.5.4.30"
 
#define szOID_MEMBER   "2.5.4.31"
 
#define szOID_OWNER   "2.5.4.32"
 
#define szOID_ROLE_OCCUPANT   "2.5.4.33"
 
#define szOID_SEE_ALSO   "2.5.4.34"
 
#define szOID_USER_PASSWORD   "2.5.4.35"
 
#define szOID_USER_CERTIFICATE   "2.5.4.36"
 
#define szOID_CA_CERTIFICATE   "2.5.4.37"
 
#define szOID_AUTHORITY_REVOCATION_LIST   "2.5.4.38"
 
#define szOID_CERTIFICATE_REVOCATION_LIST   "2.5.4.39"
 
#define szOID_CROSS_CERTIFICATE_PAIR   "2.5.4.40"
 
#define szOID_GIVEN_NAME   "2.5.4.42"
 
#define szOID_INITIALS   "2.5.4.43"
 
#define szOID_DN_QUALIFIER   "2.5.4.46"
 
#define szOID_AUTHORITY_KEY_IDENTIFIER   "2.5.29.1"
 
#define szOID_KEY_ATTRIBUTES   "2.5.29.2"
 
#define szOID_CERT_POLICIES_95   "2.5.29.3"
 
#define szOID_KEY_USAGE_RESTRICTION   "2.5.29.4"
 
#define szOID_LEGACY_POLICY_MAPPINGS   "2.5.29.5"
 
#define szOID_SUBJECT_ALT_NAME   "2.5.29.7"
 
#define szOID_ISSUER_ALT_NAME   "2.5.29.8"
 
#define szOID_SUBJECT_DIR_ATTRS   "2.5.29.9"
 
#define szOID_BASIC_CONSTRAINTS   "2.5.29.10"
 
#define szOID_SUBJECT_KEY_IDENTIFIER   "2.5.29.14"
 
#define szOID_KEY_USAGE   "2.5.29.15"
 
#define szOID_PRIVATEKEY_USAGE_PERIOD   "2.5.29.16"
 
#define szOID_SUBJECT_ALT_NAME2   "2.5.29.17"
 
#define szOID_ISSUER_ALT_NAME2   "2.5.29.18"
 
#define szOID_BASIC_CONSTRAINTS2   "2.5.29.19"
 
#define szOID_CRL_NUMBER   "2.5.29.20"
 
#define szOID_CRL_REASON_CODE   "2.5.29.21"
 
#define szOID_REASON_CODE_HOLD   "2.5.29.23"
 
#define szOID_DELTA_CRL_INDICATOR   "2.5.29.27"
 
#define szOID_ISSUING_DIST_POINT   "2.5.29.28"
 
#define szOID_NAME_CONSTRAINTS   "2.5.29.30"
 
#define szOID_CRL_DIST_POINTS   "2.5.29.31"
 
#define szOID_CERT_POLICIES   "2.5.29.32"
 
#define szOID_ANY_CERT_POLICY   "2.5.29.32.0"
 
#define szOID_POLICY_MAPPINGS   "2.5.29.33"
 
#define szOID_AUTHORITY_KEY_IDENTIFIER2   "2.5.29.35"
 
#define szOID_POLICY_CONSTRAINTS   "2.5.29.36"
 
#define szOID_ENHANCED_KEY_USAGE   "2.5.29.37"
 
#define szOID_FRESHEST_CRL   "2.5.29.46"
 
#define szOID_INHIBIT_ANY_POLICY   "2.5.29.54"
 
#define szOID_DOMAIN_COMPONENT   "0.9.2342.19200300.100.1.25"
 
#define szOID_PKCS_12_FRIENDLY_NAME_ATTR   "1.2.840.113549.1.9.20"
 
#define szOID_PKCS_12_LOCAL_KEY_ID   "1.2.840.113549.1.9.21"
 
#define szOID_CERT_EXTENSIONS   "1.3.6.1.4.1.311.2.1.14"
 
#define szOID_NEXT_UPDATE_LOCATION   "1.3.6.1.4.1.311.10.2"
 
#define szOID_KP_CTL_USAGE_SIGNING   "1.3.6.1.4.1.311.10.3.1"
 
#define szOID_KP_TIME_STAMP_SIGNING   "1.3.6.1.4.1.311.10.3.2"
 
#define szOID_SERVER_GATED_CRYPTO   "1.3.6.1.4.1.311.10.3.3"
 
#define szOID_SGC_NETSCAPE   "2.16.840.1.113730.4.1"
 
#define szOID_KP_EFS   "1.3.6.1.4.1.311.10.3.4"
 
#define szOID_EFS_RECOVERY   "1.3.6.1.4.1.311.10.3.4.1"
 
#define szOID_WHQL_CRYPTO   "1.3.6.1.4.1.311.10.3.5"
 
#define szOID_NT5_CRYPTO   "1.3.6.1.4.1.311.10.3.6"
 
#define szOID_OEM_WHQL_CRYPTO   "1.3.6.1.4.1.311.10.3.7"
 
#define szOID_EMBEDDED_NT_CRYPTO   "1.3.6.1.4.1.311.10.3.8"
 
#define szOID_ROOT_LIST_SIGNER   "1.3.6.1.4.1.311.10.3.9"
 
#define szOID_KP_QUALIFIED_SUBORDINATION   "1.3.6.1.4.1.311.10.3.10"
 
#define szOID_KP_KEY_RECOVERY   "1.3.6.1.4.1.311.10.3.11"
 
#define szOID_KP_DOCUMENT_SIGNING   "1.3.6.1.4.1.311.10.3.12"
 
#define szOID_KP_LIFETIME_SIGNING   "1.3.6.1.4.1.311.10.3.13"
 
#define szOID_KP_MOBILE_DEVICE_SOFTWARE   "1.3.6.1.4.1.311.10.3.14"
 
#define szOID_YESNO_TRUST_ATTR   "1.3.6.1.4.1.311.10.4.1"
 
#define szOID_DRM   "1.3.6.1.4.1.311.10.5.1"
 
#define szOID_DRM_INDIVIDUALIZATION   "1.3.6.1.4.1.311.10.5.2"
 
#define szOID_LICENSES   "1.3.6.1.4.1.311.10.6.1"
 
#define szOID_LICENSE_SERVER   "1.3.6.1.4.1.311.10.6.2"
 
#define szOID_REMOVE_CERTIFICATE   "1.3.6.1.4.1.311.10.8.1"
 
#define szOID_CROSS_CERT_DIST_POINTS   "1.3.6.1.4.1.311.10.9.1"
 
#define szOID_CTL   "1.3.6.1.4.1.311.10.1"
 
#define szOID_SORTED_CTL   "1.3.6.1.4.1.311.10.1.1"
 
#define szOID_ANY_APPLICATION_POLICY   "1.3.6.1.4.1.311.10.12.1"
 
#define szOID_RENEWAL_CERTIFICATE   "1.3.6.1.4.1.311.13.1"
 
#define szOID_ENROLLMENT_NAME_VALUE_PAIR   "1.3.6.1.4.1.311.13.2.1"
 
#define szOID_ENROLLMENT_CSP_PROVIDER   "1.3.6.1.4.1.311.13.2.2"
 
#define szOID_OS_VERSION   "1.3.6.1.4.1.311.13.2.3"
 
#define szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR   "1.3.6.1.4.1.311.17.1"
 
#define szOID_LOCAL_MACHINE_KEYSET   "1.3.6.1.4.1.311.17.2"
 
#define szOID_AUTO_ENROLL_CTL_USAGE   "1.3.6.1.4.1.311.20.1"
 
#define szOID_ENROLL_CERTTYPE_EXTENSION   "1.3.6.1.4.1.311.20.2"
 
#define szOID_ENROLLMENT_AGENT   "1.3.6.1.4.1.311.20.2.1"
 
#define szOID_KP_SMARTCARD_LOGON   "1.3.6.1.4.1.311.20.2.2"
 
#define szOID_NT_PRINCIPAL_NAME   "1.3.6.1.4.1.311.20.2.3"
 
#define szOID_CERT_MANIFOLD   "1.3.6.1.4.1.311.20.3"
 
#define szOID_CERTSRV_CA_VERSION   "1.3.6.1.4.1.311.21.1"
 
#define szOID_CERTSRV_PREVIOUS_CERT_HASH   "1.3.6.1.4.1.311.21.2"
 
#define szOID_CRL_VIRTUAL_BASE   "1.3.6.1.4.1.311.21.3"
 
#define szOID_CRL_NEXT_PUBLISH   "1.3.6.1.4.1.311.21.4"
 
#define szOID_KP_CA_EXCHANGE   "1.3.6.1.4.1.311.21.5"
 
#define szOID_KP_KEY_RECOVERY_AGENT   "1.3.6.1.4.1.311.21.6"
 
#define szOID_CERTIFICATE_TEMPLATE   "1.3.6.1.4.1.311.21.7"
 
#define szOID_ENTERPRISE_OID_ROOT   "1.3.6.1.4.1.311.21.8"
 
#define szOID_RDN_DUMMY_SIGNER   "1.3.6.1.4.1.311.21.9"
 
#define szOID_APPLICATION_CERT_POLICIES   "1.3.6.1.4.1.311.21.10"
 
#define szOID_APPLICATION_POLICY_MAPPINGS   "1.3.6.1.4.1.311.21.11"
 
#define szOID_APPLICATION_POLICY_CONSTRAINTS   "1.3.6.1.4.1.311.21.12"
 
#define szOID_ARCHIVED_KEY_ATTR   "1.3.6.1.4.1.311.21.13"
 
#define szOID_CRL_SELF_CDP   "1.3.6.1.4.1.311.21.14"
 
#define szOID_REQUIRE_CERT_CHAIN_POLICY   "1.3.6.1.4.1.311.21.15"
 
#define szOID_ARCHIVED_KEY_CERT_HASH   "1.3.6.1.4.1.311.21.16"
 
#define szOID_ISSUED_CERT_HASH   "1.3.6.1.4.1.311.21.17"
 
#define szOID_DS_EMAIL_REPLICATION   "1.3.6.1.4.1.311.21.19"
 
#define szOID_REQUEST_CLIENT_INFO   "1.3.6.1.4.1.311.21.20"
 
#define szOID_ENCRYPTED_KEY_HASH   "1.3.6.1.4.1.311.21.21"
 
#define szOID_CERTSRV_CROSSCA_VERSION   "1.3.6.1.4.1.311.21.22"
 
#define szOID_KEYID_RDN   "1.3.6.1.4.1.311.10.7.1"
 
#define szOID_PKIX   "1.3.6.1.5.5.7"
 
#define szOID_PKIX_PE   "1.3.6.1.5.5.7.1"
 
#define szOID_AUTHORITY_INFO_ACCESS   "1.3.6.1.5.5.7.1.1"
 
#define szOID_PKIX_POLICY_QUALIFIER_CPS   "1.3.6.1.5.5.7.2.1"
 
#define szOID_PKIX_POLICY_QUALIFIER_USERNOTICE   "1.3.6.1.5.5.7.2.2"
 
#define szOID_PKIX_KP   "1.3.6.1.5.5.7.3"
 
#define szOID_PKIX_KP_SERVER_AUTH   "1.3.6.1.5.5.7.3.1"
 
#define szOID_PKIX_KP_CLIENT_AUTH   "1.3.6.1.5.5.7.3.2"
 
#define szOID_PKIX_KP_CODE_SIGNING   "1.3.6.1.5.5.7.3.3"
 
#define szOID_PKIX_KP_EMAIL_PROTECTION   "1.3.6.1.5.5.7.3.4"
 
#define szOID_PKIX_KP_IPSEC_END_SYSTEM   "1.3.6.1.5.5.7.3.5"
 
#define szOID_PKIX_KP_IPSEC_TUNNEL   "1.3.6.1.5.5.7.3.6"
 
#define szOID_PKIX_KP_IPSEC_USER   "1.3.6.1.5.5.7.3.7"
 
#define szOID_PKIX_KP_TIMESTAMP_SIGNING   "1.3.6.1.5.5.7.3.8"
 
#define szOID_PKIX_NO_SIGNATURE   "1.3.6.1.5.5.7.6.2"
 
#define szOID_CMC   "1.3.6.1.5.5.7.7"
 
#define szOID_CMC_STATUS_INFO   "1.3.6.1.5.5.7.7.1"
 
#define szOID_CMC_IDENTIFICATION   "1.3.6.1.5.5.7.7.2"
 
#define szOID_CMC_IDENTITY_PROOF   "1.3.6.1.5.5.7.7.3"
 
#define szOID_CMC_DATA_RETURN   "1.3.6.1.5.5.7.7.4"
 
#define szOID_CMC_TRANSACTION_ID   "1.3.6.1.5.5.7.7.5"
 
#define szOID_CMC_SENDER_NONCE   "1.3.6.1.5.5.7.7.6"
 
#define szOID_CMC_RECIPIENT_NONCE   "1.3.6.1.5.5.7.7.7"
 
#define szOID_CMC_ADD_EXTENSIONS   "1.3.6.1.5.5.7.7.8"
 
#define szOID_CMC_ENCRYPTED_POP   "1.3.6.1.5.5.7.7.9"
 
#define szOID_CMC_DECRYPTED_POP   "1.3.6.1.5.5.7.7.10"
 
#define szOID_CMC_LRA_POP_WITNESS   "1.3.6.1.5.5.7.7.11"
 
#define szOID_CMC_GET_CERT   "1.3.6.1.5.5.7.7.15"
 
#define szOID_CMC_GET_CRL   "1.3.6.1.5.5.7.7.16"
 
#define szOID_CMC_REVOKE_REQUEST   "1.3.6.1.5.5.7.7.17"
 
#define szOID_CMC_REG_INFO   "1.3.6.1.5.5.7.7.18"
 
#define szOID_CMC_RESPONSE_INFO   "1.3.6.1.5.5.7.7.19"
 
#define szOID_CMC_QUERY_PENDING   "1.3.6.1.5.5.7.7.21"
 
#define szOID_CMC_ID_POP_LINK_RANDOM   "1.3.6.1.5.5.7.7.22"
 
#define szOID_CMC_ID_POP_LINK_WITNESS   "1.3.6.1.5.5.7.7.23"
 
#define szOID_CT_PKI_DATA   "1.3.6.1.5.5.7.12.2"
 
#define szOID_CT_PKI_RESPONSE   "1.3.6.1.5.5.7.12.3"
 
#define szOID_PKIX_ACC_DESCR   "1.3.6.1.5.5.7.48"
 
#define szOID_PKIX_OCSP   "1.3.6.1.5.5.7.48.1"
 
#define szOID_PKIX_CA_ISSUERS   "1.3.6.1.5.5.7.48.2"
 
#define szOID_IPSEC_KP_IKE_INTERMEDIATE   "1.3.6.1.5.5.8.2.2"
 
#define szOID_SERIALIZED   "1.3.6.1.4.1.311.10.3.3.1"
 
#define szOID_PRODUCT_UPDATE   "1.3.6.1.4.1.311.31.1"
 
#define szOID_NETSCAPE   "2.16.840.1.113730"
 
#define szOID_NETSCAPE_CERT_EXTENSION   "2.16.840.1.113730.1"
 
#define szOID_NETSCAPE_CERT_TYPE   "2.16.840.1.113730.1.1"
 
#define szOID_NETSCAPE_BASE_URL   "2.16.840.1.113730.1.2"
 
#define szOID_NETSCAPE_REVOCATION_URL   "2.16.840.1.113730.1.3"
 
#define szOID_NETSCAPE_CA_REVOCATION_URL   "2.16.840.1.113730.1.4"
 
#define szOID_NETSCAPE_CERT_RENEWAL_URL   "2.16.840.1.113730.1.7"
 
#define szOID_NETSCAPE_CA_POLICY_URL   "2.16.840.1.113730.1.8"
 
#define szOID_NETSCAPE_SSL_SERVER_NAME   "2.16.840.1.113730.1.12"
 
#define szOID_NETSCAPE_COMMENT   "2.16.840.1.113730.1.13"
 
#define szOID_NETSCAPE_DATA_TYPE   "2.16.840.1.113730.2"
 
#define szOID_NETSCAPE_CERT_SEQUENCE   "2.16.840.1.113730.2.5"
 
#define NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE   0x80
 
#define NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE   0x40
 
#define NETSCAPE_SMIME_CERT_TYPE   0x20
 
#define NETSCAPE_SIGN_CERT_TYPE   0x10
 
#define NETSCAPE_SSL_CA_CERT_TYPE   0x04
 
#define NETSCAPE_SMIME_CA_CERT_TYPE   0x02
 
#define NETSCAPE_SIGN_CA_CERT_TYPE   0x01
 
#define CRYPT_ENCODE_DECODE_NONE   0
 
#define X509_CERT   ((LPCSTR)1)
 
#define X509_CERT_TO_BE_SIGNED   ((LPCSTR)2)
 
#define X509_CERT_CRL_TO_BE_SIGNED   ((LPCSTR)3)
 
#define X509_CERT_REQUEST_TO_BE_SIGNED   ((LPCSTR)4)
 
#define X509_EXTENSIONS   ((LPCSTR)5)
 
#define X509_NAME_VALUE   ((LPCSTR)6)
 
#define X509_ANY_STRING   X509_NAME_VALUE
 
#define X509_NAME   ((LPCSTR)7)
 
#define X509_PUBLIC_KEY_INFO   ((LPCSTR)8)
 
#define X509_AUTHORITY_KEY_ID   ((LPCSTR)9)
 
#define X509_KEY_ATTRIBUTES   ((LPCSTR)10)
 
#define X509_KEY_USAGE_RESTRICTION   ((LPCSTR)11)
 
#define X509_ALTERNATE_NAME   ((LPCSTR)12)
 
#define X509_BASIC_CONSTRAINTS   ((LPCSTR)13)
 
#define X509_KEY_USAGE   ((LPCSTR)14)
 
#define X509_BASIC_CONSTRAINTS2   ((LPCSTR)15)
 
#define X509_CERT_POLICIES   ((LPCSTR)16)
 
#define PKCS_UTC_TIME   ((LPCSTR)17)
 
#define PKCS_TIME_REQUEST   ((LPCSTR)18)
 
#define RSA_CSP_PUBLICKEYBLOB   ((LPCSTR)19)
 
#define X509_UNICODE_NAME   ((LPCSTR)20)
 
#define X509_KEYGEN_REQUEST_TO_BE_SIGNED   ((LPCSTR)21)
 
#define PKCS_ATTRIBUTE   ((LPCSTR)22)
 
#define PKCS_CONTENT_INFO_SEQUENCE_OF_ANY   ((LPCSTR)23)
 
#define X509_UNICODE_NAME_VALUE   ((LPCSTR)24)
 
#define X509_UNICODE_ANY_STRING   X509_UNICODE_NAME_VALUE
 
#define X509_OCTET_STRING   ((LPCSTR)25)
 
#define X509_BITS   ((LPCSTR)26)
 
#define X509_INTEGER   ((LPCSTR)27)
 
#define X509_MULTI_BYTE_INTEGER   ((LPCSTR)28)
 
#define X509_ENUMERATED   ((LPCSTR)29)
 
#define X509_CRL_REASON_CODE   X509_ENUMERATED
 
#define X509_CHOICE_OF_TIME   ((LPCSTR)30)
 
#define X509_AUTHORITY_KEY_ID2   ((LPCSTR)31)
 
#define X509_AUTHORITY_INFO_ACCESS   ((LPCSTR)32)
 
#define PKCS_CONTENT_INFO   ((LPCSTR)33)
 
#define X509_SEQUENCE_OF_ANY   ((LPCSTR)34)
 
#define X509_CRL_DIST_POINTS   ((LPCSTR)35)
 
#define X509_ENHANCED_KEY_USAGE   ((LPCSTR)36)
 
#define PKCS_CTL   ((LPCSTR)37)
 
#define X509_MULTI_BYTE_UINT   ((LPCSTR)38)
 
#define X509_DSS_PUBLICKEY   X509_MULTI_BYTE_UINT
 
#define X509_DSS_PARAMETERS   ((LPCSTR)39)
 
#define X509_DSS_SIGNATURE   ((LPCSTR)40)
 
#define PKCS_RC2_CBC_PARAMETERS   ((LPCSTR)41)
 
#define PKCS_SMIME_CAPABILITIES   ((LPCSTR)42)
 
#define PKCS_RSA_PRIVATE_KEY   ((LPCSTR)43)
 
#define PKCS_PRIVATE_KEY_INFO   ((LPCSTR)44)
 
#define PKCS_ENCRYPTED_PRIVATE_KEY_INFO   ((LPCSTR)45)
 
#define X509_PKIX_POLICY_QUALIFIER_USERNOTICE   ((LPCSTR)46)
 
#define X509_DH_PUBLICKEY   X509_MULTI_BYTE_UINT
 
#define X509_DH_PARAMETERS   ((LPCSTR)47)
 
#define X509_ECC_SIGNATURE   ((LPCSTR)47)
 
#define PKCS_ATTRIBUTES   ((LPCSTR)48)
 
#define PKCS_SORTED_CTL   ((LPCSTR)49)
 
#define X942_DH_PARAMETERS   ((LPCSTR)50)
 
#define X509_BITS_WITHOUT_TRAILING_ZEROES   ((LPCSTR)51)
 
#define X942_OTHER_INFO   ((LPCSTR)52)
 
#define X509_CERT_PAIR   ((LPCSTR)53)
 
#define X509_ISSUING_DIST_POINT   ((LPCSTR)54)
 
#define X509_NAME_CONSTRAINTS   ((LPCSTR)55)
 
#define X509_POLICY_MAPPINGS   ((LPCSTR)56)
 
#define X509_POLICY_CONSTRAINTS   ((LPCSTR)57)
 
#define X509_CROSS_CERT_DIST_POINTS   ((LPCSTR)58)
 
#define CMC_DATA   ((LPCSTR)59)
 
#define CMC_RESPONSE   ((LPCSTR)60)
 
#define CMC_STATUS   ((LPCSTR)61)
 
#define CMC_ADD_EXTENSIONS   ((LPCSTR)62)
 
#define CMC_ADD_ATTRIBUTES   ((LPCSTR)63)
 
#define X509_CERTIFICATE_TEMPLATE   ((LPCSTR)64)
 
#define OCSP_SIGNED_REQUEST   ((LPCSTR)65)
 
#define OCSP_REQUEST   ((LPCSTR)66)
 
#define OCSP_RESPONSE   ((LPCSTR)67)
 
#define OCSP_BASIC_SIGNED_RESPONSE   ((LPCSTR)68)
 
#define OCSP_BASIC_RESPONSE   ((LPCSTR)69)
 
#define CNG_RSA_PUBLIC_KEY_BLOB   ((LPCSTR)72)
 
#define X509_OBJECT_IDENTIFIER   ((LPCSTR)73)
 
#define PKCS7_SIGNER_INFO   ((LPCSTR)500)
 
#define CMS_SIGNER_INFO   ((LPCSTR)501)
 
#define CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG   0x00008
 
#define CRYPT_ENCODE_ALLOC_FLAG   0x08000
 
#define CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG   0x10000
 
#define CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG    CERT_RDN_ENABLE_T61_UNICODE_FLAG
 
#define CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG    CERT_RDN_ENABLE_UTF8_UNICODE_FLAG
 
#define CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG    CERT_RDN_DISABLE_CHECK_TYPE_FLAG
 
#define CRYPT_DECODE_NOCOPY_FLAG   0x00001
 
#define CRYPT_DECODE_TO_BE_SIGNED_FLAG   0x00002
 
#define CRYPT_DECODE_SHARE_OID_STRING_FLAG   0x00004
 
#define CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG   0x00008
 
#define CRYPT_DECODE_ALLOC_FLAG   0x08000
 
#define CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG    CERT_RDN_DISABLE_IE4_UTF8_FLAG
 
#define CERT_STORE_SIGNATURE_FLAG   0x00000001
 
#define CERT_STORE_TIME_VALIDITY_FLAG   0x00000002
 
#define CERT_STORE_REVOCATION_FLAG   0x00000004
 
#define CERT_STORE_NO_CRL_FLAG   0x00010000
 
#define CERT_STORE_NO_ISSUER_FLAG   0x00020000
 
#define CERT_STORE_BASE_CRL_FLAG   0x00000100
 
#define CERT_STORE_DELTA_CRL_FLAG   0x00000200
 
#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB   1
 
#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT   2
 
#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL   3
 
#define CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY   1
 
#define CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT   2
 
#define CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN   3
 
#define CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL   4
 
#define CRYPT_GET_URL_FROM_PROPERTY   0x00000001
 
#define CRYPT_GET_URL_FROM_EXTENSION   0x00000002
 
#define CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE   0x00000004
 
#define CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE   0x00000008
 
#define CERT_SIMPLE_NAME_STR   1
 
#define CERT_OID_NAME_STR   2
 
#define CERT_X500_NAME_STR   3
 
#define CERT_NAME_STR_SEMICOLON_FLAG   0x40000000
 
#define CERT_NAME_STR_NO_PLUS_FLAG   0x20000000
 
#define CERT_NAME_STR_NO_QUOTING_FLAG   0x10000000
 
#define CERT_NAME_STR_CRLF_FLAG   0x08000000
 
#define CERT_NAME_STR_COMMA_FLAG   0x04000000
 
#define CERT_NAME_STR_REVERSE_FLAG   0x02000000
 
#define CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG   0x00040000
 
#define CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG   0x00020000
 
#define CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG   0x00010000
 
#define CERT_NAME_EMAIL_TYPE   1
 
#define CERT_NAME_RDN_TYPE   2
 
#define CERT_NAME_ATTR_TYPE   3
 
#define CERT_NAME_SIMPLE_DISPLAY_TYPE   4
 
#define CERT_NAME_FRIENDLY_DISPLAY_TYPE   5
 
#define CERT_NAME_DNS_TYPE   6
 
#define CERT_NAME_URL_TYPE   7
 
#define CERT_NAME_UPN_TYPE   8
 
#define CERT_NAME_ISSUER_FLAG   0x00000001
 
#define CERT_NAME_SEARCH_ALL_NAMES_FLAG   0x00000002
 
#define CERT_NAME_DISABLE_IE4_UTF8_FLAG   0x00010000
 
#define CERT_NAME_STR_ENABLE_PUNYCODE_FLAG   0x00200000
 
#define CRYPT_FORMAT_STR_MULTI_LINE   0x0001
 
#define CRYPT_FORMAT_STR_NO_HEX   0x0010
 
#define CRYPT_FORMAT_SIMPLE   0x0001
 
#define CRYPT_FORMAT_X509   0x0002
 
#define CRYPT_FORMAT_OID   0x0004
 
#define CRYPT_FORMAT_RDN_SEMICOLON   0x0100
 
#define CRYPT_FORMAT_RDN_CRLF   0x0200
 
#define CRYPT_FORMAT_RDN_UNQUOTE   0x0400
 
#define CRYPT_FORMAT_RDN_REVERSE   0x0800
 
#define CRYPT_FORMAT_COMMA   0x1000
 
#define CRYPT_FORMAT_SEMICOLON   CRYPT_FORMAT_RDN_SEMICOLON
 
#define CRYPT_FORMAT_CRLF   CRYPT_FORMAT_RDN_CRLF
 
#define CERT_QUERY_OBJECT_FILE   1
 
#define CERT_QUERY_OBJECT_BLOB   2
 
#define CERT_QUERY_CONTENT_CERT   1
 
#define CERT_QUERY_CONTENT_CTL   2
 
#define CERT_QUERY_CONTENT_CRL   3
 
#define CERT_QUERY_CONTENT_SERIALIZED_STORE   4
 
#define CERT_QUERY_CONTENT_SERIALIZED_CERT   5
 
#define CERT_QUERY_CONTENT_SERIALIZED_CTL   6
 
#define CERT_QUERY_CONTENT_SERIALIZED_CRL   7
 
#define CERT_QUERY_CONTENT_PKCS7_SIGNED   8
 
#define CERT_QUERY_CONTENT_PKCS7_UNSIGNED   9
 
#define CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED   10
 
#define CERT_QUERY_CONTENT_PKCS10   11
 
#define CERT_QUERY_CONTENT_PFX   12
 
#define CERT_QUERY_CONTENT_CERT_PAIR   13
 
#define CERT_QUERY_CONTENT_FLAG_CERT   (1 << CERT_QUERY_CONTENT_CERT)
 
#define CERT_QUERY_CONTENT_FLAG_CTL   (1 << CERT_QUERY_CONTENT_CTL)
 
#define CERT_QUERY_CONTENT_FLAG_CRL   (1 << CERT_QUERY_CONTENT_CRL)
 
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE    (1 << CERT_QUERY_CONTENT_SERIALIZED_STORE)
 
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT    (1 << CERT_QUERY_CONTENT_SERIALIZED_CERT)
 
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL    (1 << CERT_QUERY_CONTENT_SERIALIZED_CTL)
 
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL    (1 << CERT_QUERY_CONTENT_SERIALIZED_CRL)
 
#define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED    (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED)
 
#define CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED    (1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED)
 
#define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED    (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED)
 
#define CERT_QUERY_CONTENT_FLAG_PKCS10   (1 << CERT_QUERY_CONTENT_PKCS10)
 
#define CERT_QUERY_CONTENT_FLAG_PFX   (1 << CERT_QUERY_CONTENT_PFX)
 
#define CERT_QUERY_CONTENT_FLAG_CERT_PAIR   (1 << CERT_QUERY_CONTENT_CERT_PAIR)
 
#define CERT_QUERY_CONTENT_FLAG_ALL
 
#define CERT_QUERY_FORMAT_BINARY   1
 
#define CERT_QUERY_FORMAT_BASE64_ENCODED   2
 
#define CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED   3
 
#define CERT_QUERY_FORMAT_FLAG_BINARY   (1 << CERT_QUERY_FORMAT_BINARY)
 
#define CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED    (1 << CERT_QUERY_FORMAT_BASE64_ENCODED)
 
#define CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED    (1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED)
 
#define CERT_QUERY_FORMAT_FLAG_ALL
 
#define CERT_SET_KEY_PROV_HANDLE_PROP_ID   0x00000001
 
#define CERT_SET_KEY_CONTEXT_PROP_ID   0x00000001
 
#define CERT_CREATE_SELFSIGN_NO_SIGN   1
 
#define CERT_CREATE_SELFSIGN_NO_KEY_INFO   2
 
#define CRYPT_ACQUIRE_CACHE_FLAG   0x00000001
 
#define CRYPT_ACQUIRE_USE_PROV_INFO_FLAG   0x00000002
 
#define CRYPT_ACQUIRE_COMPARE_KEY_FLAG   0x00000004
 
#define CRYPT_ACQUIRE_SILENT_FLAG   0x00000040
 
#define CRYPT_FIND_USER_KEYSET_FLAG   0x00000001
 
#define CRYPT_FIND_MACHINE_KEYSET_FLAG   0x00000002
 
#define CRYPT_FIND_SILENT_KEYSET_FLAG   0x00000040
 
#define HCCE_CURRENT_USER   ((HCERTCHAINENGINE)NULL)
 
#define HCCE_LOCAL_MACHINE   ((HCERTCHAINENGINE)1)
 
#define CERT_CHAIN_CACHE_END_CERT   0x00000001
 
#define CERT_CHAIN_THREAD_STORE_SYNC   0x00000002
 
#define CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL   0x00000004
 
#define CERT_CHAIN_USE_LOCAL_MACHINE_STORE   0x00000008
 
#define CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE   0x00000010
 
#define CERT_CHAIN_ENABLE_SHARE_STORE   0x00000020
 
#define CMSG_INDEFINITE_LENGTH   0xffffffff
 
#define CERT_ID_ISSUER_SERIAL_NUMBER   1
 
#define CERT_ID_KEY_IDENTIFIER   2
 
#define CERT_ID_SHA1_HASH   3
 
#define CMSG_DATA   1
 
#define CMSG_SIGNED   2
 
#define CMSG_ENVELOPED   3
 
#define CMSG_SIGNED_AND_ENVELOPED   4
 
#define CMSG_HASHED   5
 
#define CMSG_ENCRYPTED   6
 
#define CMSG_ALL_FLAGS   ~0U
 
#define CMSG_DATA_FLAG   (1 << CMSG_DATA)
 
#define CMSG_SIGNED_FLAG   (1 << CMSG_SIGNED)
 
#define CMSG_ENVELOPED_FLAG   (1 << CMSG_ENVELOPED)
 
#define CMSG_SIGNED_AND_ENVELOPED_FLAG   (1 << CMSG_SIGNED_AND_ENVELOPED)
 
#define CMSG_ENCRYPTED_FLAG   (1 << CMSG_ENCRYPTED)
 
#define CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE   1
 
#define CMSG_KEY_AGREE_STATIC_KEY_CHOICE   2
 
#define CMSG_MAIL_LIST_HANDLE_KEY_CHOICE   1
 
#define CMSG_KEY_TRANS_RECIPIENT   1
 
#define CMSG_KEY_AGREE_RECIPIENT   2
 
#define CMSG_MAIL_LIST_RECIPIENT   3
 
#define CMSG_BARE_CONTENT_FLAG   0x00000001
 
#define CMSG_LENGTH_ONLY_FLAG   0x00000002
 
#define CMSG_DETACHED_FLAG   0x00000004
 
#define CMSG_AUTHENTICATED_ATTRIBUTES_FLAG   0x00000008
 
#define CMSG_CONTENTS_OCTETS_FLAG   0x00000010
 
#define CMSG_MAX_LENGTH_FLAG   0x00000020
 
#define CMSG_CMS_ENCAPSULATED_CONTENT_FLAG   0x00000040
 
#define CMSG_CRYPT_RELEASE_CONTEXT_FLAG   0x00008000
 
#define CMSG_CTRL_VERIFY_SIGNATURE   1
 
#define CMSG_CTRL_DECRYPT   2
 
#define CMSG_CTRL_VERIFY_HASH   5
 
#define CMSG_CTRL_ADD_SIGNER   6
 
#define CMSG_CTRL_DEL_SIGNER   7
 
#define CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR   8
 
#define CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR   9
 
#define CMSG_CTRL_ADD_CERT   10
 
#define CMSG_CTRL_DEL_CERT   11
 
#define CMSG_CTRL_ADD_CRL   12
 
#define CMSG_CTRL_DEL_CRL   13
 
#define CMSG_CTRL_ADD_ATTR_CERT   14
 
#define CMSG_CTRL_DEL_ATTR_CERT   15
 
#define CMSG_CTRL_KEY_TRANS_DECRYPT   16
 
#define CMSG_CTRL_KEY_AGREE_DECRYPT   17
 
#define CMSG_CTRL_MAIL_LIST_DECRYPT   18
 
#define CMSG_CTRL_VERIFY_SIGNATURE_EX   19
 
#define CMSG_CTRL_ADD_CMS_SIGNER_INFO   20
 
#define CMSG_VERIFY_SIGNER_PUBKEY   1
 
#define CMSG_VERIFY_SIGNER_CERT   2
 
#define CMSG_VERIFY_SIGNER_CHAIN   3
 
#define CMSG_VERIFY_SIGNER_NULL   4
 
#define CMSG_TYPE_PARAM   1
 
#define CMSG_CONTENT_PARAM   2
 
#define CMSG_BARE_CONTENT_PARAM   3
 
#define CMSG_INNER_CONTENT_TYPE_PARAM   4
 
#define CMSG_SIGNER_COUNT_PARAM   5
 
#define CMSG_SIGNER_INFO_PARAM   6
 
#define CMSG_SIGNER_CERT_INFO_PARAM   7
 
#define CMSG_SIGNER_HASH_ALGORITHM_PARAM   8
 
#define CMSG_SIGNER_AUTH_ATTR_PARAM   9
 
#define CMSG_SIGNER_UNAUTH_ATTR_PARAM   10
 
#define CMSG_CERT_COUNT_PARAM   11
 
#define CMSG_CERT_PARAM   12
 
#define CMSG_CRL_COUNT_PARAM   13
 
#define CMSG_CRL_PARAM   14
 
#define CMSG_ENVELOPE_ALGORITHM_PARAM   15
 
#define CMSG_RECIPIENT_COUNT_PARAM   17
 
#define CMSG_RECIPIENT_INDEX_PARAM   18
 
#define CMSG_RECIPIENT_INFO_PARAM   19
 
#define CMSG_HASH_ALGORITHM_PARAM   20
 
#define CMSG_HASH_DATA_PARAM   21
 
#define CMSG_COMPUTED_HASH_PARAM   22
 
#define CMSG_ENCRYPT_PARAM   26
 
#define CMSG_ENCRYPTED_DIGEST   27
 
#define CMSG_ENCODED_SIGNER   28
 
#define CMSG_ENCODED_MESSAGE   29
 
#define CMSG_VERSION_PARAM   30
 
#define CMSG_ATTR_CERT_COUNT_PARAM   31
 
#define CMSG_ATTR_CERT_PARAM   32
 
#define CMSG_CMS_RECIPIENT_COUNT_PARAM   33
 
#define CMSG_CMS_RECIPIENT_INDEX_PARAM   34
 
#define CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM   35
 
#define CMSG_CMS_RECIPIENT_INFO_PARAM   36
 
#define CMSG_UNPROTECTED_ATTR_PARAM   37
 
#define CMSG_SIGNER_CERT_ID_PARAM   38
 
#define CMSG_CMS_SIGNER_INFO_PARAM   39
 
#define CMSG_SIGNED_DATA_V1   1
 
#define CMSG_SIGNED_DATA_V3   3
 
#define CMSG_SIGNED_DATA_PKCS_1_5_VERSION   CMSG_SIGNED_DATA_V1
 
#define CMSG_SIGNED_DATA_CMS_VERSION   CMSG_SIGNED_DATA_V3
 
#define CMSG_SIGNER_INFO_V1   1
 
#define CMSG_SIGNER_INFO_V3   3
 
#define CMSG_SIGNER_INFO_PKCS_1_5_VERSION   CMSG_SIGNER_INFO_V1
 
#define CMSG_SIGNER_INFO_CMS_VERSION   CMSG_SIGNER_INFO_V3
 
#define CMSG_HASHED_DATA_V0   0
 
#define CMSG_HASHED_DATA_V2   2
 
#define CMSG_HASHED_DATA_PKCS_1_5_VERSION   CMSG_HASHED_DATA_V0
 
#define CMSG_HASHED_DATA_CMS_VERSION   CMSG_HASHED_DATA_V2
 
#define CMSG_ENVELOPED_DATA_V0   0
 
#define CMSG_ENVELOPED_DATA_V2   2
 
#define CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION   CMSG_ENVELOPED_DATA_V0
 
#define CMSG_ENVELOPED_DATA_CMS_VERSION   CMSG_ENVELOPED_DATA_V2
 
#define CMSG_KEY_AGREE_ORIGINATOR_CERT   1
 
#define CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY   2
 
#define CMSG_ENVELOPED_RECIPIENT_V0   0
 
#define CMSG_ENVELOPED_RECIPIENT_V2   2
 
#define CMSG_ENVELOPED_RECIPIENT_V3   3
 
#define CMSG_ENVELOPED_RECIPIENT_V4   4
 
#define CMSG_KEY_TRANS_PKCS_1_5_VERSION   CMSG_ENVELOPED_RECIPIENT_V0
 
#define CMSG_KEY_TRANS_CMS_VERSION   CMSG_ENVELOPED_RECIPIENT_V2
 
#define CMSG_KEY_AGREE_VERSION   CMSG_ENVELOPED_RECIPIENT_V3
 
#define CMSG_MAIL_LIST_VERSION   CMSG_ENVELOPED_RECIPIENT_V4
 
#define CERT_STRONG_SIGN_SERIALIZED_INFO_CHOICE   1
 
#define CERT_STRONG_SIGN_OID_INFO_CHOICE   2
 
#define CERT_STRONG_SIGN_ENABLE_CRL_CHECK   0x1
 
#define CERT_STRONG_SIGN_ENABLE_OCSP_CHECK   0x2
 
#define CMSG_TRUSTED_SIGNER_FLAG   0x1
 
#define CMSG_SIGNER_ONLY_FLAG   0x2
 
#define CMSG_USE_SIGNER_INDEX_FLAG   0x4
 
#define CMSG_CMS_ENCAPSULATED_CTL_FLAG   0x00008000
 
#define CMSG_ENCODED_SORTED_CTL_FLAG   0x1
 
#define CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG   0x2
 
#define CRYPT_USER_KEYSET   0x00001000
 
#define PKCS12_IMPORT_SILENT   0x00000040
 
#define PKCS12_PREFER_CNG_KSP   0x00000100
 
#define PKCS12_ALWAYS_CNG_KSP   0x00000200
 
#define PKCS12_ONLY_CERTIFICATES   0x00000400
 
#define PKCS12_ONLY_NOT_ENCRYPTED_CERTIFICATES   0x00000800
 
#define PKCS12_ALLOW_OVERWRITE_KEY   0x00004000
 
#define PKCS12_NO_PERSIST_KEY   0x00008000
 
#define PKCS12_VIRTUAL_ISOLATION_KEY   0x00010000
 
#define PKCS12_IMPORT_RESERVED_MASK   0xffff0000
 
#define REPORT_NO_PRIVATE_KEY   0x00000001
 
#define REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY   0x00000002
 
#define EXPORT_PRIVATE_KEYS   0x00000004
 
#define PKCS12_EXPORT_RESERVED_MASK   0xffff0000
 
#define CRYPT_USERDATA   0x00000001
 
#define CryptAcquireContext   WINELIB_NAME_AW(CryptAcquireContext)
 
#define CryptEnumProviders   WINELIB_NAME_AW(CryptEnumProviders)
 
#define CryptEnumProviderTypes   WINELIB_NAME_AW(CryptEnumProviderTypes)
 
#define CryptGetDefaultProvider   WINELIB_NAME_AW(CryptGetDefaultProvider)
 
#define CryptSetProvider   WINELIB_NAME_AW(CryptSetProvider)
 
#define CryptSetProviderEx   WINELIB_NAME_AW(CryptSetProviderEx)
 
#define CryptSignHash   WINELIB_NAME_AW(CryptSignHash)
 
#define CryptVerifySignature   WINELIB_NAME_AW(CryptVerifySignature)
 
#define CryptBinaryToString   WINELIB_NAME_AW(CryptBinaryToString)
 
#define CryptStringToBinary   WINELIB_NAME_AW(CryptStringToBinary)
 
#define CertOpenSystemStore   WINELIB_NAME_AW(CertOpenSystemStore)
 
#define CertAddEncodedCertificateToSystemStore    WINELIB_NAME_AW(CertAddEncodedCertificateToSystemStore)
 
#define CertGetNameString   WINELIB_NAME_AW(CertGetNameString)
 
#define CertRDNValueToStr   WINELIB_NAME_AW(CertRDNValueToStr)
 
#define CertNameToStr   WINELIB_NAME_AW(CertNameToStr)
 
#define CertStrToName   WINELIB_NAME_AW(CertStrToName)
 
#define CryptRetrieveObjectByUrl   WINELIB_NAME_AW(CryptRetrieveObjectByUrl)
 

Typedefs

typedef unsigned int ALG_ID
 
typedef ULONG_PTR HCRYPTPROV
 
typedef ULONG_PTR HCRYPTPROV_OR_NCRYPT_KEY_HANDLE
 
typedef ULONG_PTR HCRYPTPROV_LEGACY
 
typedef ULONG_PTR HCRYPTKEY
 
typedef ULONG_PTR HCRYPTHASH
 
typedef voidHCERTSTORE
 
typedef voidHCRYPTMSG
 
typedef voidHCERTSTOREPROV
 
typedef voidHCRYPTOIDFUNCSET
 
typedef voidHCRYPTOIDFUNCADDR
 
typedef voidHCRYPTDEFAULTCONTEXT
 
typedef struct _PROV_ENUMALGS PROV_ENUMALGS
 
typedef struct _PROV_ENUMALGS_EX PROV_ENUMALGS_EX
 
typedef struct _SCHANNEL_ALG SCHANNEL_ALG
 
typedef struct _SCHANNEL_ALGPSCHANNEL_ALG
 
typedef struct _HMAC_INFO HMAC_INFO
 
typedef struct _HMAC_INFOPHMAC_INFO
 
typedef struct _CRYPTOAPI_BLOB CRYPT_INTEGER_BLOB
 
typedef struct _CRYPTOAPI_BLOBPCRYPT_INTEGER_BLOB
 
typedef struct _CRYPTOAPI_BLOB CRYPT_UINT_BLOB
 
typedef struct _CRYPTOAPI_BLOBPCRYPT_UINT_BLOB
 
typedef struct _CRYPTOAPI_BLOB CRYPT_OBJID_BLOB
 
typedef struct _CRYPTOAPI_BLOBPCRYPT_OBJID_BLOB
 
typedef struct _CRYPTOAPI_BLOB CERT_NAME_BLOB
 
typedef struct _CRYPTOAPI_BLOBPCERT_NAME_BLOB
 
typedef struct _CRYPTOAPI_BLOB CERT_RDN_VALUE_BLOB
 
typedef struct _CRYPTOAPI_BLOBPCERT_RDN_VALUE_BLOB
 
typedef struct _CRYPTOAPI_BLOB CERT_BLOB
 
typedef struct _CRYPTOAPI_BLOBPCERT_BLOB
 
typedef struct _CRYPTOAPI_BLOB CRL_BLOB
 
typedef struct _CRYPTOAPI_BLOBPCRL_BLOB
 
typedef struct _CRYPTOAPI_BLOB DATA_BLOB
 
typedef struct _CRYPTOAPI_BLOBPDATA_BLOB
 
typedef struct _CRYPTOAPI_BLOB CRYPT_DATA_BLOB
 
typedef struct _CRYPTOAPI_BLOBPCRYPT_DATA_BLOB
 
typedef struct _CRYPTOAPI_BLOB CRYPT_HASH_BLOB
 
typedef struct _CRYPTOAPI_BLOBPCRYPT_HASH_BLOB
 
typedef struct _CRYPTOAPI_BLOB CRYPT_DIGEST_BLOB
 
typedef struct _CRYPTOAPI_BLOBPCRYPT_DIGEST_BLOB
 
typedef struct _CRYPTOAPI_BLOB CRYPT_DER_BLOB
 
typedef struct _CRYPTOAPI_BLOBPCRYPT_DER_BLOB
 
typedef struct _CRYPTOAPI_BLOB CRYPT_ATTR_BLOB
 
typedef struct _CRYPTOAPI_BLOBPCRYPT_ATTR_BLOB
 
typedef struct _CRYPTPROTECT_PROMPTSTRUCT CRYPTPROTECT_PROMPTSTRUCT
 
typedef struct _CRYPTPROTECT_PROMPTSTRUCTPCRYPTPROTECT_PROMPTSTRUCT
 
typedef struct _CRYPT_ALGORITHM_IDENTIFIER CRYPT_ALGORITHM_IDENTIFIER
 
typedef struct _CRYPT_ALGORITHM_IDENTIFIERPCRYPT_ALGORITHM_IDENTIFIER
 
typedef struct _CRYPT_ATTRIBUTE_TYPE_VALUE CRYPT_ATTRIBUTE_TYPE_VALUE
 
typedef struct _CRYPT_ATTRIBUTE_TYPE_VALUEPCRYPT_ATTRIBUTE_TYPE_VALUE
 
typedef struct _PUBLICKEYSTRUC BLOBHEADER
 
typedef struct _PUBLICKEYSTRUC PUBLICKEYSTRUC
 
typedef struct _RSAPUBKEY RSAPUBKEY
 
typedef struct _PUBKEY DHPUBKEY
 
typedef struct _PUBKEY DSSPUBKEY
 
typedef struct _PUBKEY KEAPUBKEY
 
typedef struct _PUBKEY TEKPUBKEY
 
typedef struct _DSSSEED DSSSEED
 
typedef struct _PUBKEYVER3 DHPUBKEY_VER3
 
typedef struct _PUBKEYVER3 DSSPUBKEY_VER3
 
typedef struct _PRIVKEYVER3 DHPRIVKEY_VER3
 
typedef struct _PRIVKEYVER3 DSSPRIVKEY_VER3
 
typedef struct _KEY_TYPE_SUBTYPE KEY_TYPE_SUBTYPE
 
typedef struct _KEY_TYPE_SUBTYPEPKEY_TYPE_SUBTYPE
 
typedef struct _CERT_FORTEZZA_DATA_PROP CERT_FORTEZZA_DATA_PROP
 
typedef struct _CMS_DH_KEY_INFO CMS_DH_KEY_INFO
 
typedef struct _CMS_DH_KEY_INFOPCMS_DH_KEY_INFO
 
typedef struct _CRYPT_BIT_BLOB CRYPT_BIT_BLOB
 
typedef struct _CRYPT_BIT_BLOBPCRYPT_BIT_BLOB
 
typedef struct _CRYPT_KEY_PROV_PARAM CRYPT_KEY_PROV_PARAM
 
typedef struct _CRYPT_KEY_PROV_PARAMPCRYPT_KEY_PROV_PARAM
 
typedef struct _CRYPT_KEY_PROV_INFO CRYPT_KEY_PROV_INFO
 
typedef struct _CRYPT_KEY_PROV_INFOPCRYPT_KEY_PROV_INFO
 
typedef struct _CERT_KEY_CONTEXT CERT_KEY_CONTEXT
 
typedef struct _CERT_KEY_CONTEXTPCERT_KEY_CONTEXT
 
typedef struct _CERT_PUBLIC_KEY_INFO CERT_PUBLIC_KEY_INFO
 
typedef struct _CERT_PUBLIC_KEY_INFOPCERT_PUBLIC_KEY_INFO
 
typedef struct _CERT_EXTENSION CERT_EXTENSION
 
typedef struct _CERT_EXTENSIONPCERT_EXTENSION
 
typedef struct _CERT_EXTENSIONS CERT_EXTENSIONS
 
typedef struct _CERT_EXTENSIONSPCERT_EXTENSIONS
 
typedef struct _CERT_INFO CERT_INFO
 
typedef struct _CERT_INFOPCERT_INFO
 
typedef struct _CERT_RDN_ATTR CERT_RDN_ATTR
 
typedef struct _CERT_RDN_ATTRPCERT_RDN_ATTR
 
typedef struct _CERT_RDN CERT_RDN
 
typedef struct _CERT_RDNPCERT_RDN
 
typedef struct _CERT_NAME_INFO CERT_NAME_INFO
 
typedef struct _CERT_NAME_INFOPCERT_NAME_INFO
 
typedef struct _CERT_NAME_VALUE CERT_NAME_VALUE
 
typedef struct _CERT_NAME_VALUEPCERT_NAME_VALUE
 
typedef struct _CERT_ENCRYPTED_PRIVATE_KEY_INFO CERT_ENCRYPTED_PRIVATE_KEY_INFO
 
typedef struct _CERT_ENCRYPTED_PRIVATE_KEY_INFOPCERT_ENCRYPTED_PRIVATE_KEY_INFO
 
typedef struct _CERT_AUTHORITY_KEY_ID_INFO CERT_AUTHORITY_KEY_ID_INFO
 
typedef struct _CERT_AUTHORITY_KEY_ID_INFOPCERT_AUTHORITY_KEY_ID_INFO
 
typedef struct _CERT_PRIVATE_KEY_VALIDITY CERT_PRIVATE_KEY_VALIDITY
 
typedef struct _CERT_PRIVATE_KEY_VALIDITYPCERT_PRIVATE_KEY_VALIDITY
 
typedef struct _CERT_KEY_ATTRIBUTES_INFO CERT_KEY_ATTRIBUTES_INFO
 
typedef struct _CERT_KEY_ATTRIBUTES_INFOPCERT_KEY_ATTRIBUTES_INFO
 
typedef struct _CERT_ECC_SIGNATURE CERT_ECC_SIGNATURE
 
typedef struct _CERT_ECC_SIGNATUREPCERT_ECC_SIGNATURE
 
typedef struct _CERT_POLICY_ID CERT_POLICY_ID
 
typedef struct _CERT_POLICY_IDPCERT_POLICY_ID
 
typedef struct _CERT_KEY_USAGE_RESTRICTION_INFO CERT_KEY_USAGE_RESTRICTION_INFO
 
typedef struct _CERT_KEY_USAGE_RESTRICTION_INFOPCERT_KEY_USAGE_RESTRICTION_INFO
 
typedef struct _CERT_OTHER_NAME CERT_OTHER_NAME
 
typedef struct _CERT_OTHER_NAMEPCERT_OTHER_NAME
 
typedef struct _CERT_ALT_NAME_ENTRY CERT_ALT_NAME_ENTRY
 
typedef struct _CERT_ALT_NAME_ENTRYPCERT_ALT_NAME_ENTRY
 
typedef struct _CERT_ALT_NAME_INFO CERT_ALT_NAME_INFO
 
typedef struct _CERT_ALT_NAME_INFOPCERT_ALT_NAME_INFO
 
typedef struct _CERT_BASIC_CONSTRAINTS_INFO CERT_BASIC_CONSTRAINTS_INFO
 
typedef struct _CERT_BASIC_CONSTRAINTS_INFOPCERT_BASIC_CONSTRAINTS_INFO
 
typedef struct _CERT_BASIC_CONSTRAINTS2_INFO CERT_BASIC_CONSTRAINTS2_INFO
 
typedef struct _CERT_BASIC_CONSTRAINTS2_INFOPCERT_BASIC_CONSTRAINTS2_INFO
 
typedef struct _CERT_POLICY_QUALIFIER_INFO CERT_POLICY_QUALIFIER_INFO
 
typedef struct _CERT_POLICY_QUALIFIER_INFOPCERT_POLICY_QUALIFIER_INFO
 
typedef struct _CERT_POLICY_INFO CERT_POLICY_INFO
 
typedef struct _CERT_POLICY_INFOPCERT_POLICY_INFO
 
typedef struct _CERT_POLICIES_INFO CERT_POLICIES_INFO
 
typedef struct _CERT_POLICIES_INFOPCERT_POLICIES_INFO
 
typedef struct _CERT_POLICY_QUALIFIER_NOTICE_REFERENCE CERT_POLICY_QUALIFIER_NOTICE_REFERENCE
 
typedef struct _CERT_POLICY_QUALIFIER_NOTICE_REFERENCEPCERT_POLICY_QUALIFIER_NOTICE_REFERENCE
 
typedef struct _CERT_POLICY_QUALIFIER_USER_NOTICE CERT_POLICY_QUALIFIER_USER_NOTICE
 
typedef struct _CERT_POLICY_QUALIFIER_USER_NOTICEPCERT_POLICY_QUALIFIER_USER_NOTICE
 
typedef struct _CPS_URLS CPS_URLS
 
typedef struct _CPS_URLSPCPS_URLS
 
typedef struct _CERT_POLICY95_QUALIFIER1 CERT_POLICY95_QUALIFIER1
 
typedef struct _CERT_POLICY95_QUALIFIER1PCERT_POLICY95_QUALIFIER1
 
typedef struct _CERT_POLICY_MAPPING CERT_POLICY_MAPPING
 
typedef struct _CERT_POLICY_MAPPINGPCERT_POLICY_MAPPING
 
typedef struct _CERT_POLICY_MAPPINGS_INFO CERT_POLICY_MAPPINGS_INFO
 
typedef struct _CERT_POLICY_MAPPINGS_INFOPCERT_POLICY_MAPPINGS_INFO
 
typedef struct _CERT_POLICY_CONSTRAINTS_INFO CERT_POLICY_CONSTRAINTS_INFO
 
typedef struct _CERT_POLICY_CONSTRAINTS_INFOPCERT_POLICY_CONSTRAINTS_INFO
 
typedef struct _CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY
 
typedef struct _CRYPT_CONTENT_INFO_SEQUENCE_OF_ANYPCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY
 
typedef struct _CRYPT_CONTENT_INFO CRYPT_CONTENT_INFO
 
typedef struct _CRYPT_CONTENT_INFOPCRYPT_CONTENT_INFO
 
typedef struct _CRYPT_SEQUENCE_OF_ANY CRYPT_SEQUENCE_OF_ANY
 
typedef struct _CRYPT_SEQUENCE_OF_ANYPCRYPT_SEQUENCE_OF_ANY
 
typedef struct _CERT_AUTHORITY_KEY_ID2_INFO CERT_AUTHORITY_KEY_ID2_INFO
 
typedef struct _CERT_AUTHORITY_KEY_ID2_INFOPCERT_AUTHORITY_KEY_ID2_INFO
 
typedef struct _CERT_ACCESS_DESCRIPTION CERT_ACCESS_DESCRIPTION
 
typedef struct _CERT_ACCESS_DESCRIPTIONPCERT_ACCESS_DESCRIPTION
 
typedef struct _CERT_AUTHORITY_INFO_ACCESS CERT_AUTHORITY_INFO_ACCESS
 
typedef struct _CERT_AUTHORITY_INFO_ACCESSPCERT_AUTHORITY_INFO_ACCESS
 
typedef struct _CERT_CONTEXT CERT_CONTEXT
 
typedef struct _CERT_CONTEXTPCERT_CONTEXT
 
typedef const CERT_CONTEXTPCCERT_CONTEXT
 
typedef struct _CRL_ENTRY CRL_ENTRY
 
typedef struct _CRL_ENTRYPCRL_ENTRY
 
typedef struct _CRL_INFO CRL_INFO
 
typedef struct _CRL_INFOPCRL_INFO
 
typedef struct _CRL_DIST_POINT_NAME CRL_DIST_POINT_NAME
 
typedef struct _CRL_DIST_POINT_NAMEPCRL_DIST_POINT_NAME
 
typedef struct _CRL_DIST_POINT CRL_DIST_POINT
 
typedef struct _CRL_DIST_POINTPCRL_DIST_POINT
 
typedef struct _CRL_DIST_POINTS_INFO CRL_DIST_POINTS_INFO
 
typedef struct _CRL_DIST_POINTS_INFOPCRL_DIST_POINTS_INFO
 
typedef struct _CROSS_CERT_DIST_POINTS_INFO CROSS_CERT_DIST_POINTS_INFO
 
typedef struct _CROSS_CERT_DIST_POINTS_INFOPCROSS_CERT_DIST_POINTS_INFO
 
typedef struct _CERT_PAIR CERT_PAIR
 
typedef struct _CERT_PAIRPCERT_PAIR
 
typedef struct _CRL_ISSUING_DIST_POINT CRL_ISSUING_DIST_POINT
 
typedef struct _CRL_ISSUING_DIST_POINTPCRL_ISSUING_DIST_POINT
 
typedef struct _CERT_GENERAL_SUBTREE CERT_GENERAL_SUBTREE
 
typedef struct _CERT_GENERAL_SUBTREEPCERT_GENERAL_SUBTREE
 
typedef struct _CERT_NAME_CONSTRAINTS_INFO CERT_NAME_CONSTRAINTS_INFO
 
typedef struct _CERT_NAME_CONSTRAINTS_INFOPCERT_NAME_CONSTRAINTS_INFO
 
typedef struct _CRYPT_ATTRIBUTE CRYPT_ATTRIBUTE
 
typedef struct _CRYPT_ATTRIBUTEPCRYPT_ATTRIBUTE
 
typedef struct _CRYPT_ATTRIBUTES CRYPT_ATTRIBUTES
 
typedef struct _CRYPT_ATTRIBUTESPCRYPT_ATTRIBUTES
 
typedef struct _CERT_REQUEST_INFO CERT_REQUEST_INFO
 
typedef struct _CERT_REQUEST_INFOPCERT_REQUEST_INFO
 
typedef struct _CERT_KEYGEN_REQUEST_INFO CERT_KEYGEN_REQUEST_INFO
 
typedef struct _CERT_KEYGEN_REQUEST_INFOPCERT_KEYGEN_REQUEST_INFO
 
typedef struct _CERT_SIGNED_CONTENT_INFO CERT_SIGNED_CONTENT_INFO
 
typedef struct _CERT_SIGNED_CONTENT_INFOPCERT_SIGNED_CONTENT_INFO
 
typedef struct _OCSP_SIGNATURE_INFO OCSP_SIGNATURE_INFO
 
typedef struct _OCSP_SIGNATURE_INFOPOCSP_SIGNATURE_INFO
 
typedef struct _OCSP_SIGNED_REQUEST_INFO OCSP_SIGNED_REQUEST_INFO
 
typedef struct _OCSP_SIGNED_REQUEST_INFOPOCSP_SIGNED_REQUEST_INFO
 
typedef struct _OCSP_CERT_ID OCSP_CERT_ID
 
typedef struct _OCSP_CERT_IDPOCSP_CERT_ID
 
typedef struct _OCSP_REQUEST_ENTRY OCSP_REQUEST_ENTRY
 
typedef struct _OCSP_REQUEST_ENTRYPOCSP_REQUEST_ENTRY
 
typedef struct _OCSP_REQUEST_INFO OCSP_REQUEST_INFO
 
typedef struct _OCSP_REQUEST_INFOPOCSP_REQUEST_INFO
 
typedef struct _OCSP_RESPONSE_INFO OCSP_RESPONSE_INFO
 
typedef struct _OCSP_RESPONSE_INFOPOCSP_RESPONSE_INFO
 
typedef struct _OCSP_BASIC_SIGNED_RESPONSE_INFO OCSP_BASIC_SIGNED_RESPONSE_INFO
 
typedef struct _OCSP_BASIC_SIGNED_RESPONSE_INFOPOCSP_BASIC_SIGNED_RESPONSE_INFO
 
typedef struct _OCSP_BASIC_REVOKED_INFO OCSP_BASIC_REVOKED_INFO
 
typedef struct _OCSP_BASIC_REVOKED_INFOPOCSP_BASIC_REVOKED_INFO
 
typedef struct _OCSP_BASIC_RESPONSE_ENTRY OCSP_BASIC_RESPONSE_ENTRY
 
typedef struct _OCSP_BASIC_RESPONSE_ENTRYPOCSP_BASIC_RESPONSE_ENTRY
 
typedef struct _OCSP_BASIC_RESPONSE_INFO OCSP_BASIC_RESPONSE_INFO
 
typedef struct _OCSP_BASIC_RESPONSE_INFOPOCSP_BASIC_RESPONSE_INFO
 
typedef struct _CRL_CONTEXT CRL_CONTEXT
 
typedef struct _CRL_CONTEXTPCRL_CONTEXT
 
typedef const CRL_CONTEXTPCCRL_CONTEXT
 
typedef struct _CERT_DSS_PARAMETERS CERT_DSS_PARAMETERS
 
typedef struct _CERT_DSS_PARAMETERSPCERT_DSS_PARAMETERS
 
typedef struct _CERT_DH_PARAMETERS CERT_DH_PARAMETERS
 
typedef struct _CERT_DH_PARAMETERSPCERT_DH_PARAMETERS
 
typedef struct _CERT_X942_DH_VALIDATION_PARAMS CERT_X942_DH_VALIDATION_PARAMS
 
typedef struct _CERT_X942_DH_VALIDATION_PARAMSPCERT_X942_DH_VALIDATION_PARAMS
 
typedef struct _CERT_X942_DH_PARAMETERS CERT_X942_DH_PARAMETERS
 
typedef struct _CERT_X942_DH_PARAMETERSPCERT_X942_DH_PARAMETERS
 
typedef struct _CRYPT_X942_OTHER_INFO CRYPT_X942_OTHER_INFO
 
typedef struct _CRYPT_X942_OTHER_INFOPCRYPT_X942_OTHER_INFO
 
typedef struct _CRYPT_RC2_CBC_PARAMETERS CRYPT_RC2_CBC_PARAMETERS
 
typedef struct _CRYPT_RC2_CBC_PARAMETERSPCRYPT_RC2_CBC_PARAMETERS
 
typedef struct _CRYPT_SMIME_CAPABILITY CRYPT_SMIME_CAPABILITY
 
typedef struct _CRYPT_SMIME_CAPABILITYPCRYPT_SMIME_CAPABILITY
 
typedef struct _CRYPT_SMIME_CAPABILITIES CRYPT_SMIME_CAPABILITIES
 
typedef struct _CRYPT_SMIME_CAPABILITIESPCRYPT_SMIME_CAPABILITIES
 
typedef struct _VTableProvStruc VTableProvStruc
 
typedef struct _VTableProvStrucPVTableProvStruc
 
typedef struct _CERT_PRIVATE_KEY_INFO CERT_PRIVATE_KEY_INFO
 
typedef struct _CERT_PRIVATE_KEY_INFOPCERT_PRIVATE_KEY_INFO
 
typedef struct _CTL_USAGE CTL_USAGE
 
typedef struct _CTL_USAGEPCTL_USAGE
 
typedef struct _CTL_USAGE CERT_ENHKEY_USAGE
 
typedef struct _CTL_USAGEPCERT_ENHKEY_USAGE
 
typedef struct _CTL_ENTRY CTL_ENTRY
 
typedef struct _CTL_ENTRYPCTL_ENTRY
 
typedef struct _CTL_INFO CTL_INFO
 
typedef struct _CTL_INFOPCTL_INFO
 
typedef struct _CTL_CONTEXT CTL_CONTEXT
 
typedef struct _CTL_CONTEXTPCTL_CONTEXT
 
typedef const CTL_CONTEXTPCCTL_CONTEXT
 
typedef struct _CRYPT_TIME_STAMP_REQUEST_INFO CRYPT_TIME_STAMP_REQUEST_INFO
 
typedef struct _CRYPT_TIME_STAMP_REQUEST_INFOPCRYPT_TIME_STAMP_REQUEST_INFO
 
typedef struct _CRYPT_ENROLLMENT_NAME_VALUE_PAIR CRYPT_ENROLLMENT_NAME_VALUE_PAIR
 
typedef struct _CRYPT_ENROLLMENT_NAME_VALUE_PAIRPCRYPT_ENROLLMENT_NAME_VALUE_PAIR
 
typedef struct _CMSG_SIGNER_INFO CMSG_SIGNER_INFO
 
typedef struct _CMSG_SIGNER_INFOPCMSG_SIGNER_INFO
 
typedef struct _CERT_REVOCATION_CRL_INFO CERT_REVOCATION_CRL_INFO
 
typedef struct _CERT_REVOCATION_CRL_INFOPCERT_REVOCATION_CRL_INFO
 
typedef struct _CERT_REVOCATION_INFO CERT_REVOCATION_INFO
 
typedef struct _CERT_REVOCATION_INFOPCERT_REVOCATION_INFO
 
typedef struct _CERT_REVOCATION_PARA CERT_REVOCATION_PARA
 
typedef struct _CERT_REVOCATION_PARAPCERT_REVOCATION_PARA
 
typedef struct _CTL_VERIFY_USAGE_PARA CTL_VERIFY_USAGE_PARA
 
typedef struct _CTL_VERIFY_USAGE_PARAPCTL_VERIFY_USAGE_PARA
 
typedef struct _CTL_VERIFY_USAGE_STATUS CTL_VERIFY_USAGE_STATUS
 
typedef struct _CTL_VERIFY_USAGE_STATUSPCTL_VERIFY_USAGE_STATUS
 
typedef struct _CERT_CHAIN CERT_CHAIN
 
typedef struct _CERT_CHAINPCERT_CHAIN
 
typedef struct _CERT_REVOCATION_STATUS CERT_REVOCATION_STATUS
 
typedef struct _CERT_REVOCATION_STATUSPCERT_REVOCATION_STATUS
 
typedef struct _CERT_TRUST_LIST_INFO CERT_TRUST_LIST_INFO
 
typedef struct _CERT_TRUST_LIST_INFOPCERT_TRUST_LIST_INFO
 
typedef struct _CERT_TRUST_STATUS CERT_TRUST_STATUS
 
typedef struct _CERT_TRUST_STATUSPCERT_TRUST_STATUS
 
typedef struct _CERT_CHAIN_ELEMENT CERT_CHAIN_ELEMENT
 
typedef struct _CERT_CHAIN_ELEMENTPCERT_CHAIN_ELEMENT
 
typedef struct _CERT_SIMPLE_CHAIN CERT_SIMPLE_CHAIN
 
typedef struct _CERT_SIMPLE_CHAINPCERT_SIMPLE_CHAIN
 
typedef struct _CERT_CHAIN_CONTEXT CERT_CHAIN_CONTEXT
 
typedef struct _CERT_CHAIN_CONTEXTPCERT_CHAIN_CONTEXT
 
typedef const CERT_CHAIN_CONTEXTPCCERT_CHAIN_CONTEXT
 
typedef struct _CERT_CHAIN_POLICY_PARA CERT_CHAIN_POLICY_PARA
 
typedef struct _CERT_CHAIN_POLICY_PARAPCERT_CHAIN_POLICY_PARA
 
typedef struct _CERT_CHAIN_POLICY_STATUS CERT_CHAIN_POLICY_STATUS
 
typedef struct _CERT_CHAIN_POLICY_STATUSPCERT_CHAIN_POLICY_STATUS
 
typedef struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA
 
typedef struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARAPAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA
 
typedef struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS
 
typedef struct _AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUSPAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS
 
typedef struct _AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA
 
typedef struct _AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARAPAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA
 
typedef struct _HTTPSPolicyCallbackData HTTPSPolicyCallbackData
 
typedef struct _HTTPSPolicyCallbackDataPHTTPSPolicyCallbackData
 
typedef struct _HTTPSPolicyCallbackData SSL_EXTRA_CERT_CHAIN_POLICY_PARA
 
typedef struct _HTTPSPolicyCallbackDataPSSL_EXTRA_CERT_CHAIN_POLICY_PARA
 
typedef struct _CERT_USAGE_MATCH CERT_USAGE_MATCH
 
typedef struct _CERT_USAGE_MATCHPCERT_USAGE_MATCH
 
typedef struct _CTL_USAGE_MATCH CTL_USAGE_MATCH
 
typedef struct _CTL_USAGE_MATCHPCTL_USAGE_MATCH
 
typedef struct _CERT_CHAIN_PARA CERT_CHAIN_PARA
 
typedef struct _CERT_CHAIN_PARAPCERT_CHAIN_PARA
 
typedef struct _CERT_SYSTEM_STORE_INFO CERT_SYSTEM_STORE_INFO
 
typedef struct _CERT_SYSTEM_STORE_INFOPCERT_SYSTEM_STORE_INFO
 
typedef struct _CERT_PHYSICAL_STORE_INFO CERT_PHYSICAL_STORE_INFO
 
typedef struct _CERT_PHYSICAL_STORE_INFOPCERT_PHYSICAL_STORE_INFO
 
typedef struct _CERT_SYSTEM_STORE_RELOCATE_PARA CERT_SYSTEM_STORE_RELOCATE_PARA
 
typedef struct _CERT_SYSTEM_STORE_RELOCATE_PARAPCERT_SYSTEM_STORE_RELOCATE_PARA
 
typedef BOOL(WINAPIPFN_CERT_ENUM_SYSTEM_STORE_LOCATION) (LPCWSTR pwszStoreLocation, DWORD dwFlags, void *pvReserved, void *pvArg)
 
typedef BOOL(WINAPIPFN_CERT_ENUM_SYSTEM_STORE) (const void *pvSystemStore, DWORD dwFlags, PCERT_SYSTEM_STORE_INFO pStoreInfo, void *pvReserved, void *pvArg)
 
typedef BOOL(WINAPIPFN_CERT_ENUM_PHYSICAL_STORE) (const void *pvSystemStore, DWORD dwFlags, LPCWSTR pwszStoreName, PCERT_PHYSICAL_STORE_INFO pStoreInfo, void *pvReserved, void *pvArg)
 
typedef VOID(WINAPIPFN_CRYPT_FREE) (LPVOID pv)
 
typedef struct _CRYPT_ENCODE_PARA CRYPT_ENCODE_PARA
 
typedef struct _CRYPT_ENCODE_PARAPCRYPT_ENCODE_PARA
 
typedef struct _CRYPT_DECODE_PARA CRYPT_DECODE_PARA
 
typedef struct _CRYPT_DECODE_PARAPCRYPT_DECODE_PARA
 
typedef struct _CERT_STORE_PROV_INFO CERT_STORE_PROV_INFO
 
typedef struct _CERT_STORE_PROV_INFOPCERT_STORE_PROV_INFO
 
typedef BOOL(WINAPIPFN_CERT_DLL_OPEN_STORE_PROV_FUNC) (LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara, HCERTSTORE hCertStore, PCERT_STORE_PROV_INFO pStoreProvInfo)
 
typedef void(WINAPIPFN_CERT_STORE_PROV_CLOSE) (HCERTSTOREPROV hStoreProv, DWORD dwFlags)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_READ_CERT) (HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pStoreCertContext, DWORD dwFlags, PCCERT_CONTEXT *ppProvCertContext)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_WRITE_CERT) (HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwFlags)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_DELETE_CERT) (HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwFlags)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_SET_CERT_PROPERTY) (HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_READ_CRL) (HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pStoreCrlContext, DWORD dwFlags, PCCRL_CONTEXT *ppProvCrlContext)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_WRITE_CRL) (HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwFlags)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_DELETE_CRL) (HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwFlags)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_SET_CRL_PROPERTY) (HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_READ_CTL) (HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pStoreCtlContext, DWORD dwFlags, PCCTL_CONTEXT *ppProvCtlContext)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_WRITE_CTL) (HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwFlags)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_DELETE_CTL) (HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwFlags)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_SET_CTL_PROPERTY) (HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_CONTROL) (HCERTSTOREPROV hStoreProv, DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara)
 
typedef struct _CERT_STORE_PROV_FIND_INFO CERT_STORE_PROV_FIND_INFO
 
typedef struct _CERT_STORE_PROV_FIND_INFOPCERT_STORE_PROV_FIND_INFO
 
typedef const CERT_STORE_PROV_FIND_INFO CCERT_STORE_PROV_FIND_INFO
 
typedef const CERT_STORE_PROV_FIND_INFOPCCERT_STORE_PROV_FIND_INFO
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_FIND_CERT) (HCERTSTOREPROV hStoreProv, PCCERT_STORE_PROV_FIND_INFO pFindInfo, PCCERT_CONTEXT pPrevCertContext, DWORD dwFlags, void **ppvStoreProvFindInfo, PCCERT_CONTEXT *ppProvCertContext)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_FREE_FIND_CERT) (HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, void *pvStoreProvFindInfo, DWORD dwFlags)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_GET_CERT_PROPERTY) (HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, void *pvData, DWORD *pcbData)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_FIND_CRL) (HCERTSTOREPROV hStoreProv, PCCERT_STORE_PROV_FIND_INFO pFindInfo, PCCRL_CONTEXT pPrevCrlContext, DWORD dwFlags, void **ppvStoreProvFindInfo, PCCRL_CONTEXT *ppProvCrlContext)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_FREE_FIND_CRL) (HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, void *pvStoreProvFindInfo, DWORD dwFlags)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_GET_CRL_PROPERTY) (HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwPropId, DWORD dwFlags, void *pvData, DWORD *pcbData)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_FIND_CTL) (HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, void *pvStoreProvFindInfo, DWORD dwFlags)
 
typedef BOOL(WINAPIPFN_CERT_STORE_PROV_GET_CTL_PROPERTY) (HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwPropId, DWORD dwFlags, void *pvData)
 
typedef struct _CERT_CREATE_CONTEXT_PARA CERT_CREATE_CONTEXT_PARA
 
typedef struct _CERT_CREATE_CONTEXT_PARAPCERT_CREATE_CONTEXT_PARA
 
typedef struct _CRYPT_OID_FUNC_ENTRY CRYPT_OID_FUNC_ENTRY
 
typedef struct _CRYPT_OID_FUNC_ENTRYPCRYPT_OID_FUNC_ENTRY
 
typedef BOOL(WINAPIPFN_CRYPT_ENUM_OID_FUNC) (DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, DWORD cValue, const DWORD rgdwValueType[], LPCWSTR const rgpwszValueName[], const BYTE *const rgpbValueData[], const DWORD rgcbValueData[], void *pvArg)
 
typedef struct _CRYPT_OID_INFO CRYPT_OID_INFO
 
typedef struct _CRYPT_OID_INFOPCRYPT_OID_INFO
 
typedef const CRYPT_OID_INFO CCRYPT_OID_INFO
 
typedef const CRYPT_OID_INFOPCCRYPT_OID_INFO
 
typedef BOOL(WINAPIPFN_CRYPT_ENUM_OID_INFO) (PCCRYPT_OID_INFO pInfo, void *pvArg)
 
typedef struct _CRYPT_SIGN_MESSAGE_PARA CRYPT_SIGN_MESSAGE_PARA
 
typedef struct _CRYPT_SIGN_MESSAGE_PARAPCRYPT_SIGN_MESSAGE_PARA
 
typedef PCCERT_CONTEXT(WINAPIPFN_CRYPT_GET_SIGNER_CERTIFICATE) (void *pvArg, DWORD dwCertEncodingType, PCERT_INFO pSignerId, HCERTSTORE hMsgCertStore)
 
typedef struct _CRYPT_VERIFY_MESSAGE_PARA CRYPT_VERIFY_MESSAGE_PARA
 
typedef struct _CRYPT_VERIFY_MESSAGE_PARAPCRYPT_VERIFY_MESSAGE_PARA
 
typedef struct _CRYPT_ENCRYPT_MESSAGE_PARA CRYPT_ENCRYPT_MESSAGE_PARA
 
typedef struct _CRYPT_ENCRYPT_MESSAGE_PARAPCRYPT_ENCRYPT_MESSAGE_PARA
 
typedef struct _CRYPT_DECRYPT_MESSAGE_PARA CRYPT_DECRYPT_MESSAGE_PARA
 
typedef struct _CRYPT_DECRYPT_MESSAGE_PARAPCRYPT_DECRYPT_MESSAGE_PARA
 
typedef struct _CRYPT_HASH_MESSAGE_PARA CRYPT_HASH_MESSAGE_PARA
 
typedef struct _CRYPT_HASH_MESSAGE_PARAPCRYPT_HASH_MESSAGE_PARA
 
typedef struct _CRYPT_KEY_SIGN_MESSAGE_PARA CRYPT_KEY_SIGN_MESSAGE_PARA
 
typedef struct _CRYPT_KEY_SIGN_MESSAGE_PARAPCRYPT_KEY_SIGN_MESSAGE_PARA
 
typedef struct _CRYPT_KEY_VERIFY_MESSAGE_PARA CRYPT_KEY_VERIFY_MESSAGE_PARA
 
typedef struct _CRYPT_KEY_VERIFY_MESSAGE_PARAPCRYPT_KEY_VERIFY_MESSAGE_PARA
 
typedef struct _CRYPT_URL_ARRAY CRYPT_URL_ARRAY
 
typedef struct _CRYPT_URL_ARRAYPCRYPT_URL_ARRAY
 
typedef struct _CRYPT_URL_INFO CRYPT_URL_INFO
 
typedef struct _CRYPT_URL_INFOPCRYPT_URL_INFO
 
typedef HANDLE HCRYPTASYNC
 
typedef HANDLEPHCRYPTASYNC
 
typedef void(WINAPIPFN_CRYPT_ASYNC_PARAM_FREE_FUNC) (LPSTR pszParamOid, LPVOID pvParam)
 
typedef void(WINAPIPFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC) (void *pvCompletion, DWORD dwCompletionCode, LPCSTR pszURL, LPSTR pszObjectOid, void *pvObject)
 
typedef struct _CRYPT_ASYNC_RETRIEVAL_COMPLETION CRYPT_ASYNC_RETRIEVAL_COMPLETION
 
typedef struct _CRYPT_ASYNC_RETRIEVAL_COMPLETIONPCRYPT_ASYNC_RETRIEVAL_COMPLETION
 
typedef BOOL(WINAPIPFN_CANCEL_ASYNC_RETRIEVAL_FUNC) (HCRYPTASYNC hAsyncRetrieve)
 
typedef struct _CRYPT_BLOB_ARRAY CRYPT_BLOB_ARRAY
 
typedef struct _CRYPT_BLOB_ARRAYPCRYPT_BLOB_ARRAY
 
typedef struct _CRYPT_CREDENTIALS CRYPT_CREDENTIALS
 
typedef struct _CRYPT_CREDENTIALSPCRYPT_CREDENTIALS
 
typedef struct _CRYPT_PASSWORD_CREDENTIALSA CRYPT_PASSWORD_CREDENTIALSA
 
typedef struct _CRYPT_PASSWORD_CREDENTIALSAPCRYPT_PASSWORD_CREDENTIALSA
 
typedef struct _CRYPT_PASSWORD_CREDENTIALSW CRYPT_PASSWORD_CREDENTIALSW
 
typedef struct _CRYPT_PASSWORD_CREDENTIALSWPCRYPT_PASSWORD_CREDENTIALSW
 
typedef struct _CRYPT_RETRIEVE_AUX_INFO CRYPT_RETRIEVE_AUX_INFO
 
typedef struct _CRYPT_RETRIEVE_AUX_INFOPCRYPT_RETRIEVE_AUX_INFO
 
typedef void(WINAPIPFN_FREE_ENCODED_OBJECT_FUNC) (LPCSTR pszObjectOid, PCRYPT_BLOB_ARRAY pObject, void *pvFreeContext)
 
typedef BOOL(WINAPIPFN_CRYPT_CANCEL_RETRIEVAL) (DWORD dwFlags, void *pvArg)
 
typedef struct _CERT_CRL_CONTEXT_PAIR CERT_CRL_CONTEXT_PAIR
 
typedef struct _CERT_CRL_CONTEXT_PAIRPCERT_CRL_CONTEXT_PAIR
 
typedef const CERT_CRL_CONTEXT_PAIRPCCERT_CRL_CONTEXT_PAIR
 
typedef struct _CRL_FIND_ISSUED_FOR_PARA CRL_FIND_ISSUED_FOR_PARA
 
typedef struct _CRL_FIND_ISSUED_FOR_PARAPCRL_FIND_ISSUED_FOR_PARA
 
typedef struct _CTL_FIND_USAGE_PARA CTL_FIND_USAGE_PARA
 
typedef struct _CTL_FIND_USAGE_PARAPCTL_FIND_USAGE_PARA
 
typedef struct _CTL_FIND_SUBJECT_PARA CTL_FIND_SUBJECT_PARA
 
typedef struct _CTL_FIND_SUBJECT_PARAPCTL_FIND_SUBJECT_PARA
 
typedef HANDLE HCERTCHAINENGINE
 
typedef struct _CERT_CHAIN_ENGINE_CONFIG CERT_CHAIN_ENGINE_CONFIG
 
typedef struct _CERT_CHAIN_ENGINE_CONFIGPCERT_CHAIN_ENGINE_CONFIG
 
typedef BOOL(WINAPIPFN_CMSG_STREAM_OUTPUT) (const void *pvArg, BYTE *pbData, DWORD cbData, BOOL fFinal)
 
typedef struct _CMSG_STREAM_INFO CMSG_STREAM_INFO
 
typedef struct _CMSG_STREAM_INFOPCMSG_STREAM_INFO
 
typedef struct _CERT_ISSUER_SERIAL_NUMBER CERT_ISSUER_SERIAL_NUMBER
 
typedef struct _CERT_ISSUER_SERIAL_NUMBERPCERT_ISSUER_SERIAL_NUMBER
 
typedef struct _CERT_ID CERT_ID
 
typedef struct _CERT_IDPCERT_ID
 
typedef struct _CMSG_SIGNER_ENCODE_INFO CMSG_SIGNER_ENCODE_INFO
 
typedef struct _CMSG_SIGNER_ENCODE_INFOPCMSG_SIGNER_ENCODE_INFO
 
typedef struct _CMSG_SIGNED_ENCODE_INFO CMSG_SIGNED_ENCODE_INFO
 
typedef struct _CMSG_SIGNED_ENCODE_INFOPCMSG_SIGNED_ENCODE_INFO
 
typedef struct _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO
 
typedef struct _CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFOPCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO
 
typedef struct _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO
 
typedef struct _CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFOPCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO
 
typedef struct _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO
 
typedef struct _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFOPCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO
 
typedef struct _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO
 
typedef struct _CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFOPCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO
 
typedef struct _CMSG_RECIPIENT_ENCODE_INFO CMSG_RECIPIENT_ENCODE_INFO
 
typedef struct _CMSG_RECIPIENT_ENCODE_INFOPCMSG_RECIPIENT_ENCODE_INFO
 
typedef struct _CMSG_ENVELOPED_ENCODE_INFO CMSG_ENVELOPED_ENCODE_INFO
 
typedef struct _CMSG_ENVELOPED_ENCODE_INFOPCMSG_ENVELOPED_ENCODE_INFO
 
typedef struct _CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO
 
typedef struct _CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFOPCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO
 
typedef struct _CMSG_HASHED_ENCODE_INFO CMSG_HASHED_ENCODE_INFO
 
typedef struct _CMSG_HASHED_ENCODE_INFOPCMSG_HASHED_ENCODE_INFO
 
typedef struct _CMSG_ENCRYPTED_ENCODE_INFO CMSG_ENCRYPTED_ENCODE_INFO
 
typedef struct _CMSG_ENCRYPTED_ENCODE_INFOPCMSG_ENCRYPTED_ENCODE_INFO
 
typedef struct _CMSG_CTRL_DECRYPT_PARA CMSG_CTRL_DECRYPT_PARA
 
typedef struct _CMSG_CTRL_DECRYPT_PARAPCMSG_CTRL_DECRYPT_PARA
 
typedef struct _CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA
 
typedef struct _CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARAPCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA
 
typedef struct _CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA
 
typedef struct _CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARAPCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA
 
typedef struct _CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA
 
typedef struct _CMSG_CTRL_VERIFY_SIGNATURE_EX_PARAPCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA
 
typedef struct _CMSG_CMS_SIGNER_INFO CMSG_CMS_SIGNER_INFO
 
typedef struct _CMSG_CMS_SIGNER_INFOPCMSG_CMS_SIGNER_INFO
 
typedef CRYPT_ATTRIBUTES CMSG_ATTR
 
typedef CRYPT_ATTRIBUTESPCMSG_ATTR
 
typedef struct _CMSG_KEY_TRANS_RECIPIENT_INFO CMSG_KEY_TRANS_RECIPIENT_INFO
 
typedef struct _CMSG_KEY_TRANS_RECIPIENT_INFOPCMSG_KEY_TRANS_RECIPIENT_INFO
 
typedef struct _CMSG_RECIPIENT_ENCRYPTED_KEY_INFO CMSG_RECIPIENT_ENCRYPTED_KEY_INFO
 
typedef struct _CMSG_RECIPIENT_ENCRYPTED_KEY_INFOPCMSG_RECIPIENT_ENCRYPTED_KEY_INFO
 
typedef struct _CMSG_KEY_AGREE_RECIPIENT_INFO CMSG_KEY_AGREE_RECIPIENT_INFO
 
typedef struct _CMSG_KEY_AGREE_RECIPIENT_INFOPCMSG_KEY_AGREE_RECIPIENT_INFO
 
typedef struct _CMSG_MAIL_LIST_RECIPIENT_INFO CMSG_MAIL_LIST_RECIPIENT_INFO
 
typedef struct _CMSG_MAIL_LIST_RECIPIENT_INFOPCMSG_MAIL_LIST_RECIPIENT_INFO
 
typedef struct _CMSG_CMS_RECIPIENT_INFO CMSG_CMS_RECIPIENT_INFO
 
typedef struct _CMSG_CMS_RECIPIENT_INFOPCMSG_CMS_RECIPIENT_INFO
 
typedef void__WINE_ALLOC_SIZE(1) WINAPI *PFN_CMSG_ALLOC) (size_t cb)
 
typedef void(WINAPIPFN_CMSG_FREE) (void *pv)
 
typedef struct _CMSG_CONTENT_ENCRYPT_INFO CMSG_CONTENT_ENCRYPT_INFO
 
typedef struct _CMSG_CONTENT_ENCRYPT_INFOPCMSG_CONTENT_ENCRYPT_INFO
 
typedef struct _CMSG_KEY_TRANS_ENCRYPT_INFO CMSG_KEY_TRANS_ENCRYPT_INFO
 
typedef struct _CMSG_KEY_TRANS_ENCRYPT_INFOPCMSG_KEY_TRANS_ENCRYPT_INFO
 
typedef struct _CMSG_CTRL_KEY_TRANS_DECRYPT_PARA CMSG_CTRL_KEY_TRANS_DECRYPT_PARA
 
typedef struct _CMSG_CTRL_KEY_TRANS_DECRYPT_PARAPCMSG_CTRL_KEY_TRANS_DECRYPT_PARA
 
typedef struct _CERT_STRONG_SIGN_SERIALIZED_INFO CERT_STRONG_SIGN_SERIALIZED_INFO
 
typedef struct _CERT_STRONG_SIGN_SERIALIZED_INFOPCERT_STRONG_SIGN_SERIALIZED_INFO
 
typedef struct _CERT_STRONG_SIGN_PARA CERT_STRONG_SIGN_PARA
 
typedef struct _CERT_STRONG_SIGN_PARAPCERT_STRONG_SIGN_PARA
 
typedef BOOL(WINAPIPFN_CMSG_GEN_CONTENT_ENCRYPT_KEY) (PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, DWORD dwFlags, void *pvReserved)
 
typedef BOOL(WINAPIPFN_CMSG_EXPORT_KEY_TRANS) (PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTransEncodeInfo, PCMSG_KEY_TRANS_ENCRYPT_INFO pKeyTransEncryptInfo, DWORD dwFlags, void *pvReserved)
 
typedef BOOL(WINAPIPFN_CMSG_IMPORT_KEY_TRANS) (PCRYPT_ALGORITHM_IDENTIFIER pContentEncryptionAlgorithm, PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara, DWORD dwFlags, void *pvReserved, HCRYPTKEY *phContentEncryptKey)
 

Functions

typedef LPVOID (__WINE_ALLOC_SIZE(1) WINAPI *PFN_CRYPT_ALLOC)(size_t cbsize)
 
WINADVAPI BOOL WINAPI CryptAcquireContextA (HCRYPTPROV *, LPCSTR, LPCSTR, DWORD, DWORD)
 
WINADVAPI BOOL WINAPI CryptAcquireContextW (HCRYPTPROV *, LPCWSTR, LPCWSTR, DWORD, DWORD)
 
WINADVAPI BOOL WINAPI CryptGenRandom (HCRYPTPROV, DWORD, BYTE *)
 
WINADVAPI BOOL WINAPI CryptContextAddRef (HCRYPTPROV, DWORD *, DWORD)
 
WINADVAPI BOOL WINAPI CryptCreateHash (HCRYPTPROV, ALG_ID, HCRYPTKEY, DWORD, HCRYPTHASH *)
 
WINADVAPI BOOL WINAPI CryptDecrypt (HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, BYTE *, DWORD *)
 
WINADVAPI BOOL WINAPI CryptDeriveKey (HCRYPTPROV, ALG_ID, HCRYPTHASH, DWORD, HCRYPTKEY *)
 
WINADVAPI BOOL WINAPI CryptDestroyHash (HCRYPTHASH)
 
WINADVAPI BOOL WINAPI CryptDestroyKey (HCRYPTKEY)
 
WINADVAPI BOOL WINAPI CryptDuplicateKey (HCRYPTKEY, DWORD *, DWORD, HCRYPTKEY *)
 
WINADVAPI BOOL WINAPI CryptDuplicateHash (HCRYPTHASH, DWORD *, DWORD, HCRYPTHASH *)
 
WINADVAPI BOOL WINAPI CryptEncrypt (HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, BYTE *, DWORD *, DWORD)
 
WINADVAPI BOOL WINAPI CryptEnumProvidersA (DWORD, DWORD *, DWORD, DWORD *, LPSTR, DWORD *)
 
WINADVAPI BOOL WINAPI CryptEnumProvidersW (DWORD, DWORD *, DWORD, DWORD *, LPWSTR, DWORD *)
 
WINADVAPI BOOL WINAPI CryptEnumProviderTypesA (DWORD, DWORD *, DWORD, DWORD *, LPSTR, DWORD *)
 
WINADVAPI BOOL WINAPI CryptEnumProviderTypesW (DWORD, DWORD *, DWORD, DWORD *, LPWSTR, DWORD *)
 
WINADVAPI BOOL WINAPI CryptExportKey (HCRYPTKEY, HCRYPTKEY, DWORD, DWORD, BYTE *, DWORD *)
 
WINADVAPI BOOL WINAPI CryptGenKey (HCRYPTPROV, ALG_ID, DWORD, HCRYPTKEY *)
 
WINADVAPI BOOL WINAPI CryptGetKeyParam (HCRYPTKEY, DWORD, BYTE *, DWORD *, DWORD)
 
WINADVAPI BOOL WINAPI CryptGetHashParam (HCRYPTHASH, DWORD, BYTE *, DWORD *, DWORD)
 
WINADVAPI BOOL WINAPI CryptGetProvParam (HCRYPTPROV, DWORD, BYTE *, DWORD *, DWORD)
 
WINADVAPI BOOL WINAPI CryptGetDefaultProviderA (DWORD, DWORD *, DWORD, LPSTR, DWORD *)
 
WINADVAPI BOOL WINAPI CryptGetDefaultProviderW (DWORD, DWORD *, DWORD, LPWSTR, DWORD *)
 
WINADVAPI BOOL WINAPI CryptGetUserKey (HCRYPTPROV, DWORD, HCRYPTKEY *)
 
WINADVAPI BOOL WINAPI CryptHashData (HCRYPTHASH, const BYTE *, DWORD, DWORD)
 
WINADVAPI BOOL WINAPI CryptHashSessionKey (HCRYPTHASH, HCRYPTKEY, DWORD)
 
WINADVAPI BOOL WINAPI CryptImportKey (HCRYPTPROV, const BYTE *, DWORD, HCRYPTKEY, DWORD, HCRYPTKEY *)
 
WINADVAPI BOOL WINAPI CryptReleaseContext (HCRYPTPROV, DWORD)
 
WINADVAPI BOOL WINAPI CryptSetHashParam (HCRYPTHASH, DWORD, const BYTE *, DWORD)
 
WINADVAPI BOOL WINAPI CryptSetKeyParam (HCRYPTKEY, DWORD, const BYTE *, DWORD)
 
WINADVAPI BOOL WINAPI CryptSetProviderA (LPCSTR, DWORD)
 
WINADVAPI BOOL WINAPI CryptSetProviderW (LPCWSTR, DWORD)
 
WINADVAPI BOOL WINAPI CryptSetProviderExA (LPCSTR, DWORD, DWORD *, DWORD)
 
WINADVAPI BOOL WINAPI CryptSetProviderExW (LPCWSTR, DWORD, DWORD *, DWORD)
 
WINADVAPI BOOL WINAPI CryptSetProvParam (HCRYPTPROV, DWORD, const BYTE *, DWORD)
 
WINADVAPI BOOL WINAPI CryptSignHashA (HCRYPTHASH, DWORD, LPCSTR, DWORD, BYTE *, DWORD *)
 
WINADVAPI BOOL WINAPI CryptSignHashW (HCRYPTHASH, DWORD, LPCWSTR, DWORD, BYTE *, DWORD *)
 
WINADVAPI BOOL WINAPI CryptVerifySignatureA (HCRYPTHASH, const BYTE *, DWORD, HCRYPTKEY, LPCSTR, DWORD)
 
WINADVAPI BOOL WINAPI CryptVerifySignatureW (HCRYPTHASH, const BYTE *, DWORD, HCRYPTKEY, LPCWSTR, DWORD)
 
LPVOID WINAPI CryptMemAlloc (_In_ ULONG cbSize) __WINE_ALLOC_SIZE(1)
 
LPVOID WINAPI CryptMemRealloc (_In_opt_ LPVOID pv, _In_ ULONG cbSize) __WINE_ALLOC_SIZE(2)
 
VOID WINAPI CryptMemFree (_In_opt_ LPVOID pv)
 
WINCRYPT32API VOID WINAPI CryptMemFree (LPVOID pv)
 
WINCRYPT32API LPVOID WINAPI CryptMemAlloc (ULONG cbSize) __WINE_ALLOC_SIZE(1) __WINE_DEALLOC(CryptMemFree) __WINE_MALLOC
 
WINCRYPT32API LPVOID WINAPI CryptMemRealloc (LPVOID pv, ULONG cbSize) __WINE_ALLOC_SIZE(2) __WINE_DEALLOC(CryptMemFree)
 
WINCRYPT32API BOOL WINAPI CryptBinaryToStringA (const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString)
 
WINCRYPT32API BOOL WINAPI CryptBinaryToStringW (const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString)
 
WINCRYPT32API BOOL WINAPI CryptStringToBinaryA (LPCSTR pszString, DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
 
WINCRYPT32API BOOL WINAPI CryptStringToBinaryW (LPCWSTR pszString, DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
 
WINCRYPT32API BOOL WINAPI CryptCreateAsyncHandle (DWORD dwFlags, PHCRYPTASYNC phAsync)
 
WINCRYPT32API BOOL WINAPI CryptSetAsyncParam (HCRYPTASYNC hAsync, LPSTR pszParamOid, LPVOID pvParam, PFN_CRYPT_ASYNC_PARAM_FREE_FUNC pfnFree)
 
WINCRYPT32API BOOL WINAPI CryptGetAsyncParam (HCRYPTASYNC hAsync, LPSTR pszParamOid, LPVOID *ppvParam, PFN_CRYPT_ASYNC_PARAM_FREE_FUNC *ppfnFree)
 
WINCRYPT32API BOOL WINAPI CryptCloseAsyncHandle (HCRYPTASYNC hAsync)
 
WINCRYPT32API BOOL WINAPI CryptRegisterDefaultOIDFunction (DWORD, LPCSTR, DWORD, LPCWSTR)
 
WINCRYPT32API BOOL WINAPI CryptRegisterOIDFunction (DWORD, LPCSTR, LPCSTR, LPCWSTR, LPCSTR)
 
WINCRYPT32API BOOL WINAPI CryptGetOIDFunctionValue (DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR szValueName, DWORD *pdwValueType, BYTE *pbValueData, DWORD *pcbValueData)
 
WINCRYPT32API BOOL WINAPI CryptSetOIDFunctionValue (DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, LPCWSTR pwszValueName, DWORD dwValueType, const BYTE *pbValueData, DWORD cbValueData)
 
WINCRYPT32API BOOL WINAPI CryptUnregisterDefaultOIDFunction (DWORD, LPCSTR, LPCWSTR)
 
WINCRYPT32API BOOL WINAPI CryptUnregisterOIDFunction (DWORD, LPCSTR, LPCSTR)
 
WINCRYPT32API BOOL WINAPI CryptEnumOIDFunction (DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, DWORD dwFlags, void *pvArg, PFN_CRYPT_ENUM_OID_FUNC pfnEnumOIDFunc)
 
WINCRYPT32API HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet (LPCSTR, DWORD)
 
WINCRYPT32API BOOL WINAPI CryptGetDefaultOIDDllList (HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPWSTR pwszDllList, DWORD *pcchDllList)
 
WINCRYPT32API BOOL WINAPI CryptGetDefaultOIDFunctionAddress (HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCWSTR pwszDll, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
 
WINCRYPT32API BOOL WINAPI CryptGetOIDFunctionAddress (HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCSTR pszOID, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
 
WINCRYPT32API BOOL WINAPI CryptFreeOIDFunctionAddress (HCRYPTOIDFUNCADDR hFuncAddr, DWORD dwFlags)
 
WINCRYPT32API BOOL WINAPI CryptInstallOIDFunctionAddress (HMODULE hModule, DWORD dwEncodingType, LPCSTR pszFuncName, DWORD cFuncEntry, const CRYPT_OID_FUNC_ENTRY rgFuncEntry[], DWORD dwFlags)
 
WINCRYPT32API BOOL WINAPI CryptInstallDefaultContext (HCRYPTPROV hCryptProv, DWORD dwDefaultType, const void *pvDefaultPara, DWORD dwFlags, void *pvReserved, HCRYPTDEFAULTCONTEXT *phDefaultContext)
 
WINCRYPT32API BOOL WINAPI CryptUninstallDefaultContext (HCRYPTDEFAULTCONTEXT hDefaultContext, DWORD dwFlags, void *pvReserved)
 
WINCRYPT32API BOOL WINAPI CryptEnumOIDInfo (DWORD dwGroupId, DWORD dwFlags, void *pvArg, PFN_CRYPT_ENUM_OID_INFO pfnEnumOIDInfo)
 
WINCRYPT32API PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo (DWORD dwKeyType, void *pvKey, DWORD dwGroupId)
 
WINCRYPT32API BOOL WINAPI CryptRegisterOIDInfo (PCCRYPT_OID_INFO pInfo, DWORD dwFlags)
 
WINCRYPT32API BOOL WINAPI CryptUnregisterOIDInfo (PCCRYPT_OID_INFO pInfo)
 
WINCRYPT32API LPCWSTR WINAPI CryptFindLocalizedName (LPCWSTR pwszCryptName)
 
WINCRYPT32API LPCSTR WINAPI CertAlgIdToOID (DWORD dwAlgId)
 
WINCRYPT32API DWORD WINAPI CertOIDToAlgId (LPCSTR pszObjId)
 
WINCRYPT32API HCERTSTORE WINAPI CertOpenStore (LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
 
WINCRYPT32API HCERTSTORE WINAPI CertOpenSystemStoreA (HCRYPTPROV_LEGACY hProv, LPCSTR szSubSystemProtocol)
 
WINCRYPT32API HCERTSTORE WINAPI CertOpenSystemStoreW (HCRYPTPROV_LEGACY hProv, LPCWSTR szSubSystemProtocol)
 
WINCRYPT32API PCCERT_CONTEXT WINAPI CertEnumCertificatesInStore (HCERTSTORE hCertStore, PCCERT_CONTEXT pPrev)
 
WINCRYPT32API PCCRL_CONTEXT WINAPI CertEnumCRLsInStore (HCERTSTORE hCertStore, PCCRL_CONTEXT pPrev)
 
WINCRYPT32API PCCTL_CONTEXT WINAPI CertEnumCTLsInStore (HCERTSTORE hCertStore, PCCTL_CONTEXT pPrev)
 
WINCRYPT32API BOOL WINAPI CertEnumSystemStoreLocation (DWORD dwFlags, void *pvArg, PFN_CERT_ENUM_SYSTEM_STORE_LOCATION pfnEnum)
 
WINCRYPT32API BOOL WINAPI CertEnumSystemStore (DWORD dwFlags, void *pvSystemStoreLocationPara, void *pvArg, PFN_CERT_ENUM_SYSTEM_STORE pfnEnum)
 
WINCRYPT32API BOOL WINAPI CertRegisterSystemStore (const void *store, DWORD flags, CERT_SYSTEM_STORE_INFO *info, void *reserved)
 
WINCRYPT32API BOOL WINAPI CertUnregisterSystemStore (const void *store, DWORD flags)
 
WINCRYPT32API BOOL WINAPI CertEnumPhysicalStore (const void *pvSystemStore, DWORD dwFlags, void *pvArg, PFN_CERT_ENUM_PHYSICAL_STORE pfnEnum)
 
WINCRYPT32API BOOL WINAPI CertRegisterPhysicalStore (const void *pvSystemStore, DWORD dwFlags, LPCWSTR pwszStoreName, PCERT_PHYSICAL_STORE_INFO pStoreInfo, void *pvReserved)
 
WINCRYPT32API BOOL WINAPI CertUnregisterPhysicalStore (const void *pvSystemStore, DWORD dwFlags, LPCWSTR pwszStoreName)
 
WINCRYPT32API BOOL WINAPI CertSaveStore (HCERTSTORE hCertStore, DWORD dwMsgAndCertEncodingType, DWORD dwSaveAs, DWORD dwSaveTo, void *pvSaveToPara, DWORD dwFlags)
 
WINCRYPT32API BOOL WINAPI CertAddStoreToCollection (HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority)
 
WINCRYPT32API void WINAPI CertRemoveStoreFromCollection (HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore)
 
WINCRYPT32API BOOL WINAPI CertCreateCertificateChainEngine (PCERT_CHAIN_ENGINE_CONFIG pConfig, HCERTCHAINENGINE *phChainEngine)
 
WINCRYPT32API BOOL WINAPI CertResyncCertificateChainEngine (HCERTCHAINENGINE hChainEngine)
 
WINCRYPT32API VOID WINAPI CertFreeCertificateChainEngine (HCERTCHAINENGINE hChainEngine)
 
WINCRYPT32API BOOL WINAPI CertGetCertificateChain (HCERTCHAINENGINE hChainEngine, PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore, PCERT_CHAIN_PARA pChainPara, DWORD dwFlags, LPVOID pvReserved, PCCERT_CHAIN_CONTEXT *ppChainContext)
 
WINCRYPT32API PCCERT_CHAIN_CONTEXT WINAPI CertDuplicateCertificateChain (PCCERT_CHAIN_CONTEXT pChainContext)
 
WINCRYPT32API VOID WINAPI CertFreeCertificateChain (PCCERT_CHAIN_CONTEXT pChainContext)
 
WINCRYPT32API PCCERT_CHAIN_CONTEXT WINAPI CertFindChainInStore (HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCERT_CHAIN_CONTEXT pPrevChainContext)
 
WINCRYPT32API BOOL WINAPI CertVerifyCertificateChainPolicy (LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
 
WINCRYPT32API DWORD WINAPI CertEnumCertificateContextProperties (PCCERT_CONTEXT pCertContext, DWORD dwPropId)
 
WINCRYPT32API BOOL WINAPI CertGetCertificateContextProperty (PCCERT_CONTEXT pCertContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
 
WINCRYPT32API BOOL WINAPI CertSetCertificateContextProperty (PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
 
WINCRYPT32API DWORD WINAPI CertEnumCRLContextProperties (PCCRL_CONTEXT pCRLContext, DWORD dwPropId)
 
WINCRYPT32API BOOL WINAPI CertGetCRLContextProperty (PCCRL_CONTEXT pCRLContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
 
WINCRYPT32API BOOL WINAPI CertSetCRLContextProperty (PCCRL_CONTEXT pCRLContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
 
WINCRYPT32API DWORD WINAPI CertEnumCTLContextProperties (PCCTL_CONTEXT pCTLContext, DWORD dwPropId)
 
WINCRYPT32API BOOL WINAPI CertEnumSubjectInSortedCTL (PCCTL_CONTEXT pCTLContext, void **ppvNextSubject, PCRYPT_DER_BLOB pSubjectIdentifier, PCRYPT_DER_BLOB pEncodedAttributes)
 
WINCRYPT32API BOOL WINAPI CertGetCTLContextProperty (PCCTL_CONTEXT pCTLContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
 
WINCRYPT32API BOOL WINAPI CertSetCTLContextProperty (PCCTL_CONTEXT pCTLContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
 
WINCRYPT32API BOOL WINAPI CertGetStoreProperty (HCERTSTORE hCertStore, DWORD dwPropId, void *pvData, DWORD *pcbData)
 
WINCRYPT32API BOOL WINAPI CertSetStoreProperty (HCERTSTORE hCertStore, DWORD dwPropId, DWORD dwFlags, const void *pvData)
 
WINCRYPT32API BOOL WINAPI CertControlStore (HCERTSTORE hCertStore, DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara)
 
WINCRYPT32API HCERTSTORE WINAPI CertDuplicateStore (HCERTSTORE hCertStore)
 
WINCRYPT32API BOOL WINAPI CertCloseStore (HCERTSTORE hCertStore, DWORD dwFlags)
 
WINCRYPT32API BOOL WINAPI CertFreeCertificateContext (PCCERT_CONTEXT pCertContext)
 
WINCRYPT32API BOOL WINAPI CertFreeCRLContext (PCCRL_CONTEXT pCrlContext)
 
WINCRYPT32API BOOL WINAPI CertFreeCTLContext (PCCTL_CONTEXT pCtlContext)
 
WINCRYPT32API BOOL WINAPI CertAddCertificateContextToStore (HCERTSTORE hCertStore, PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, PCCERT_CONTEXT *ppStoreContext)
 
WINCRYPT32API BOOL WINAPI CertAddCRLContextToStore (HCERTSTORE hCertStore, PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, PCCRL_CONTEXT *ppStoreContext)
 
WINCRYPT32API BOOL WINAPI CertAddCTLContextToStore (HCERTSTORE hCertStore, PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, PCCTL_CONTEXT *ppStoreContext)
 
WINCRYPT32API BOOL WINAPI CertAddCertificateLinkToStore (HCERTSTORE hCertStore, PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, PCCERT_CONTEXT *ppStoreContext)
 
WINCRYPT32API BOOL WINAPI CertAddCRLLinkToStore (HCERTSTORE hCertStore, PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, PCCRL_CONTEXT *ppStoreContext)
 
WINCRYPT32API BOOL WINAPI CertAddCTLLinkToStore (HCERTSTORE hCertStore, PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, PCCTL_CONTEXT *ppStoreContext)
 
WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToStore (HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext)
 
WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToSystemStoreA (LPCSTR pszCertStoreName, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
 
WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToSystemStoreW (LPCWSTR pszCertStoreName, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
 
WINCRYPT32API BOOL WINAPI CertAddEncodedCRLToStore (HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded, DWORD dwAddDisposition, PCCRL_CONTEXT *ppCrlContext)
 
WINCRYPT32API BOOL WINAPI CertAddEncodedCTLToStore (HCERTSTORE hCertStore, DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded, DWORD dwAddDisposition, PCCTL_CONTEXT *ppCtlContext)
 
WINCRYPT32API BOOL WINAPI CertAddSerializedElementToStore (HCERTSTORE hCertStore, const BYTE *pbElement, DWORD cbElement, DWORD dwAddDisposition, DWORD dwFlags, DWORD dwContextTypeFlags, DWORD *pdwContentType, const void **ppvContext)
 
WINCRYPT32API BOOL WINAPI CertCompareCertificate (DWORD dwCertEncodingType, PCERT_INFO pCertId1, PCERT_INFO pCertId2)
 
WINCRYPT32API BOOL WINAPI CertCompareCertificateName (DWORD dwCertEncodingType, PCERT_NAME_BLOB pCertName1, PCERT_NAME_BLOB pCertName2)
 
WINCRYPT32API BOOL WINAPI CertCompareIntegerBlob (PCRYPT_INTEGER_BLOB pInt1, PCRYPT_INTEGER_BLOB pInt2)
 
WINCRYPT32API BOOL WINAPI CertComparePublicKeyInfo (DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pPublicKey1, PCERT_PUBLIC_KEY_INFO pPublicKey2)
 
WINCRYPT32API DWORD WINAPI CertGetPublicKeyLength (DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pPublicKey)
 
WINCRYPT32API const void *WINAPI CertCreateContext (DWORD dwContextType, DWORD dwEncodingType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCERT_CREATE_CONTEXT_PARA pCreatePara)
 
WINCRYPT32API PCCERT_CONTEXT WINAPI CertCreateCertificateContext (DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
 
WINCRYPT32API PCCRL_CONTEXT WINAPI CertCreateCRLContext (DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded)
 
WINCRYPT32API PCCTL_CONTEXT WINAPI CertCreateCTLContext (DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded)
 
WINCRYPT32API PCCERT_CONTEXT WINAPI CertCreateSelfSignCertificate (HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hProv, PCERT_NAME_BLOB pSubjectIssuerBlob, DWORD dwFlags, PCRYPT_KEY_PROV_INFO pKeyProvInfo, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, PSYSTEMTIME pStartTime, PSYSTEMTIME pEndTime, PCERT_EXTENSIONS pExtensions)
 
WINCRYPT32API BOOL WINAPI CertDeleteCertificateFromStore (PCCERT_CONTEXT pCertContext)
 
WINCRYPT32API BOOL WINAPI CertDeleteCRLFromStore (PCCRL_CONTEXT pCrlContext)
 
WINCRYPT32API BOOL WINAPI CertDeleteCTLFromStore (PCCTL_CONTEXT pCtlContext)
 
WINCRYPT32API PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext (PCCERT_CONTEXT pCertContext)
 
WINCRYPT32API PCCRL_CONTEXT WINAPI CertDuplicateCRLContext (PCCRL_CONTEXT pCrlContext)
 
WINCRYPT32API PCCTL_CONTEXT WINAPI CertDuplicateCTLContext (PCCTL_CONTEXT pCtlContext)
 
WINCRYPT32API PCCERT_CONTEXT WINAPI CertFindCertificateInStore (HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCERT_CONTEXT pPrevCertContext)
 
WINCRYPT32API PCCRL_CONTEXT WINAPI CertFindCRLInStore (HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCRL_CONTEXT pPrevCrlContext)
 
WINCRYPT32API PCCTL_CONTEXT WINAPI CertFindCTLInStore (HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCTL_CONTEXT pPrevCtlContext)
 
WINCRYPT32API PCCERT_CONTEXT WINAPI CertGetIssuerCertificateFromStore (HCERTSTORE hCertStore, PCCERT_CONTEXT pSubjectContext, PCCERT_CONTEXT pPrevIssuerContext, DWORD *pdwFlags)
 
WINCRYPT32API PCCERT_CONTEXT WINAPI CertGetSubjectCertificateFromStore (HCERTSTORE hCertStore, DWORD dwCertEncodingType, PCERT_INFO pCertId)
 
WINCRYPT32API PCCRL_CONTEXT WINAPI CertGetCRLFromStore (HCERTSTORE hCertStore, PCCERT_CONTEXT pIssuerContext, PCCRL_CONTEXT pPrevCrlContext, DWORD *pdwFlags)
 
WINCRYPT32API BOOL WINAPI CertSerializeCertificateStoreElement (PCCERT_CONTEXT pCertContext, DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
 
WINCRYPT32API BOOL WINAPI CertSerializeCRLStoreElement (PCCRL_CONTEXT pCrlContext, DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
 
WINCRYPT32API BOOL WINAPI CertSerializeCTLStoreElement (PCCTL_CONTEXT pCtlContext, DWORD dwFlags, BYTE *pbElement, DWORD *pcbElement)
 
WINCRYPT32API BOOL WINAPI CertGetIntendedKeyUsage (DWORD dwCertEncodingType, PCERT_INFO pCertInfo, BYTE *pbKeyUsage, DWORD cbKeyUsage)
 
WINCRYPT32API BOOL WINAPI CertGetEnhancedKeyUsage (PCCERT_CONTEXT pCertContext, DWORD dwFlags, PCERT_ENHKEY_USAGE pUsage, DWORD *pcbUsage)
 
WINCRYPT32API BOOL WINAPI CertSetEnhancedKeyUsage (PCCERT_CONTEXT pCertContext, PCERT_ENHKEY_USAGE pUsage)
 
WINCRYPT32API BOOL WINAPI CertAddEnhancedKeyUsageIdentifier (PCCERT_CONTEXT pCertContext, LPCSTR pszUsageIdentifier)
 
WINCRYPT32API BOOL WINAPI CertRemoveEnhancedKeyUsageIdentifier (PCCERT_CONTEXT pCertContext, LPCSTR pszUsageIdentifier)
 
WINCRYPT32API BOOL WINAPI CertGetValidUsages (DWORD cCerts, PCCERT_CONTEXT *rghCerts, int *cNumOIDs, LPSTR *rghOIDs, DWORD *pcbOIDs)
 
WINCRYPT32API BOOL WINAPI CryptEncodeObject (DWORD dwCertEncodingType, LPCSTR lpszStructType, const void *pvStructInfo, BYTE *pbEncoded, DWORD *pcbEncoded)
 
WINCRYPT32API BOOL WINAPI CryptEncodeObjectEx (DWORD dwCertEncodingType, LPCSTR lpszStructType, const void *pvStructInfo, DWORD dwFlags, PCRYPT_ENCODE_PARA pEncodePara, void *pvEncoded, DWORD *pcbEncoded)
 
WINCRYPT32API BOOL WINAPI CryptDecodeObject (DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, void *pvStructInfo, DWORD *pcbStructInfo)
 
WINCRYPT32API BOOL WINAPI CryptDecodeObjectEx (DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo)
 
WINCRYPT32API BOOL WINAPI CryptFormatObject (DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
 
WINCRYPT32API BOOL WINAPI CryptHashCertificate (HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid, DWORD dwFlags, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, DWORD *pcbComputedHash)
 
WINCRYPT32API BOOL WINAPI CryptHashCertificate2 (LPCWSTR pwszCNGHashAlgid, DWORD dwFlags, void *pvReserved, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, DWORD *pcbComputedHash)
 
WINCRYPT32API BOOL WINAPI CryptHashPublicKeyInfo (HCRYPTPROV_LEGACY hCryptProv, ALG_ID Algid, DWORD dwFlags, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, BYTE *pbComputedHash, DWORD *pcbComputedHash)
 
WINCRYPT32API BOOL WINAPI CryptHashToBeSigned (HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, const BYTE *pbEncoded, DWORD cbEncoded, BYTE *pbComputedHash, DWORD *pcbComputedHash)
 
WINCRYPT32API BOOL WINAPI CryptQueryObject (DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD dwFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, DWORD *pdwFormatType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg, const void **ppvContext)
 
WINCRYPT32API BOOL WINAPI CryptSignCertificate (HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, const BYTE *pbEncodedToBeSigned, DWORD cbEncodedToBeSigned, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, const void *pvHashAuxInfo, BYTE *pbSignature, DWORD *pcbSignature)
 
WINCRYPT32API BOOL WINAPI CryptSignAndEncodeCertificate (HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, LPCSTR lpszStructType, const void *pvStructInfo, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, const void *pvHashAuxInfo, BYTE *pbEncoded, DWORD *pcbEncoded)
 
WINCRYPT32API BOOL WINAPI CryptVerifyCertificateSignature (HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, const BYTE *pbEncoded, DWORD cbEncoded, PCERT_PUBLIC_KEY_INFO pPublicKey)
 
WINCRYPT32API BOOL WINAPI CryptVerifyCertificateSignatureEx (HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, DWORD dwSubjectType, void *pvSubject, DWORD dwIssuerType, void *pvIssuer, DWORD dwFlags, void *pvReserved)
 
WINCRYPT32API PCRYPT_ATTRIBUTE WINAPI CertFindAttribute (LPCSTR pszObjId, DWORD cAttr, CRYPT_ATTRIBUTE rgAttr[])
 
WINCRYPT32API PCERT_EXTENSION WINAPI CertFindExtension (LPCSTR pszObjId, DWORD cExtensions, CERT_EXTENSION rgExtensions[])
 
WINCRYPT32API PCERT_RDN_ATTR WINAPI CertFindRDNAttr (LPCSTR pszObjId, PCERT_NAME_INFO pName)
 
WINCRYPT32API BOOL WINAPI CertFindSubjectInSortedCTL (PCRYPT_DATA_BLOB pSubjectIdentifier, PCCTL_CONTEXT pCtlContext, DWORD dwFlags, void *pvReserved, PCRYPT_DER_BLOB pEncodedAttributes)
 
WINCRYPT32API BOOL WINAPI CertIsRDNAttrsInCertificateName (DWORD dwCertEncodingType, DWORD dwFlags, PCERT_NAME_BLOB pCertName, PCERT_RDN pRDN)
 
WINCRYPT32API BOOL WINAPI CertIsValidCRLForCertificate (PCCERT_CONTEXT pCert, PCCRL_CONTEXT pCrl, DWORD dwFlags, void *pvReserved)
 
WINCRYPT32API BOOL WINAPI CertFindCertificateInCRL (PCCERT_CONTEXT pCert, PCCRL_CONTEXT pCrlContext, DWORD dwFlags, void *pvReserved, PCRL_ENTRY *ppCrlEntry)
 
WINCRYPT32API BOOL WINAPI CertVerifyCRLRevocation (DWORD dwCertEncodingType, PCERT_INFO pCertId, DWORD cCrlInfo, PCRL_INFO rgpCrlInfo[])
 
WINCRYPT32API BOOL WINAPI CertVerifySubjectCertificateContext (PCCERT_CONTEXT pSubject, PCCERT_CONTEXT pIssuer, DWORD *pdwFlags)
 
WINCRYPT32API LONG WINAPI CertVerifyCRLTimeValidity (LPFILETIME pTimeToVerify, PCRL_INFO pCrlInfo)
 
WINCRYPT32API LONG WINAPI CertVerifyTimeValidity (LPFILETIME pTimeToVerify, PCERT_INFO pCertInfo)
 
WINCRYPT32API BOOL WINAPI CertVerifyValidityNesting (PCERT_INFO pSubjectInfo, PCERT_INFO pIssuerInfo)
 
WINCRYPT32API BOOL WINAPI CertVerifyCTLUsage (DWORD dwEncodingType, DWORD dwSubjectType, void *pvSubject, PCTL_USAGE pSubjectUsage, DWORD dwFlags, PCTL_VERIFY_USAGE_PARA pVerifyUsagePara, PCTL_VERIFY_USAGE_STATUS pVerifyUsageStatus)
 
WINCRYPT32API BOOL WINAPI CertVerifyRevocation (DWORD dwEncodingType, DWORD dwRevType, DWORD cContext, PVOID rgpvContext[], DWORD dwFlags, PCERT_REVOCATION_PARA pRevPara, PCERT_REVOCATION_STATUS pRevStatus)
 
WINCRYPT32API BOOL WINAPI CryptExportPublicKeyInfo (HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo)
 
WINCRYPT32API BOOL WINAPI CryptExportPublicKeyInfoEx (HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, LPSTR pszPublicKeyObjId, DWORD dwFlags, void *pvAuxInfo, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo)
 
WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfo (HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, HCRYPTKEY *phKey)
 
WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfoEx (HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, ALG_ID aiKeyAlg, DWORD dwFlags, void *pvAuxInfo, HCRYPTKEY *phKey)
 
WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfoEx2 (DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, DWORD dwFlags, void *pvAuxInfo, BCRYPT_KEY_HANDLE *phKey)
 
WINCRYPT32API BOOL WINAPI CryptAcquireCertificatePrivateKey (PCCERT_CONTEXT pCert, DWORD dwFlags, void *pvReserved, HCRYPTPROV_OR_NCRYPT_KEY_HANDLE *phCryptProv, DWORD *pdwKeySpec, BOOL *pfCallerFreeProv)
 
WINCRYPT32API BOOL WINAPI CryptFindCertificateKeyProvInfo (PCCERT_CONTEXT pCert, DWORD dwFlags, void *pvReserved)
 
WINCRYPT32API BOOL WINAPI CryptProtectData (DATA_BLOB *pDataIn, LPCWSTR szDataDescr, DATA_BLOB *pOptionalEntropy, PVOID pvReserved, CRYPTPROTECT_PROMPTSTRUCT *pPromptStruct, DWORD dwFlags, DATA_BLOB *pDataOut)
 
WINCRYPT32API BOOL WINAPI CryptUnprotectData (DATA_BLOB *pDataIn, LPWSTR *ppszDataDescr, DATA_BLOB *pOptionalEntropy, PVOID pvReserved, CRYPTPROTECT_PROMPTSTRUCT *pPromptStruct, DWORD dwFlags, DATA_BLOB *pDataOut)
 
WINCRYPT32API BOOL WINAPI CryptProtectMemory (void *pData, DWORD cbData, DWORD dwFlags)
 
WINCRYPT32API BOOL WINAPI CryptUnprotectMemory (void *pData, DWORD cbData, DWORD dwFlags)
 
WINCRYPT32API DWORD WINAPI CertGetNameStringA (PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, void *pvTypePara, LPSTR pszNameString, DWORD cchNameString)
 
WINCRYPT32API DWORD WINAPI CertGetNameStringW (PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, void *pvTypePara, LPWSTR pszNameString, DWORD cchNameString)
 
WINCRYPT32API DWORD WINAPI CertRDNValueToStrA (DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, LPSTR psz, DWORD csz)
 
WINCRYPT32API DWORD WINAPI CertRDNValueToStrW (DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, LPWSTR psz, DWORD csz)
 
WINCRYPT32API DWORD WINAPI CertNameToStrA (DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, DWORD dwStrType, LPSTR psz, DWORD csz)
 
WINCRYPT32API DWORD WINAPI CertNameToStrW (DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, DWORD dwStrType, LPWSTR psz, DWORD csz)
 
WINCRYPT32API BOOL WINAPI CertStrToNameA (DWORD dwCertEncodingType, LPCSTR pszX500, DWORD dwStrType, void *pvReserved, BYTE *pbEncoded, DWORD *pcbEncoded, LPCSTR *ppszError)
 
WINCRYPT32API BOOL WINAPI CertStrToNameW (DWORD dwCertEncodingType, LPCWSTR pszX500, DWORD dwStrType, void *pvReserved, BYTE *pbEncoded, DWORD *pcbEncoded, LPCWSTR *ppszError)
 
WINCRYPT32API DWORD WINAPI CryptMsgCalculateEncodedLength (DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID, DWORD cbData)
 
WINCRYPT32API BOOL WINAPI CryptMsgClose (HCRYPTMSG hCryptMsg)
 
WINCRYPT32API BOOL WINAPI CryptMsgControl (HCRYPTMSG hCryptMsg, DWORD dwFlags, DWORD dwCtrlType, const void *pvCtrlPara)
 
WINCRYPT32API BOOL WINAPI CryptMsgCountersign (HCRYPTMSG hCryptMsg, DWORD dwIndex, DWORD dwCountersigners, PCMSG_SIGNER_ENCODE_INFO rgCountersigners)
 
WINCRYPT32API BOOL WINAPI CryptMsgCountersignEncoded (DWORD dwEncodingType, PBYTE pbSignerInfo, DWORD cbSignerInfo, DWORD cCountersigners, PCMSG_SIGNER_ENCODE_INFO rgCountersigners, PBYTE pbCountersignature, PDWORD pcbCountersignature)
 
WINCRYPT32API HCRYPTMSG WINAPI CryptMsgDuplicate (HCRYPTMSG hCryptMsg)
 
WINCRYPT32API BOOL WINAPI CryptMsgEncodeAndSignCTL (DWORD dwMsgEncodingType, PCTL_INFO pCtlInfo, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags, BYTE *pbEncoded, DWORD *pcbEncoded)
 
WINCRYPT32API BOOL WINAPI CryptMsgGetAndVerifySigner (HCRYPTMSG hCryptMsg, DWORD cSignerStore, HCERTSTORE *rghSignerStore, DWORD dwFlags, PCCERT_CONTEXT *ppSigner, DWORD *pdwSignerIndex)
 
WINCRYPT32API BOOL WINAPI CryptMsgGetParam (HCRYPTMSG hCryptMsg, DWORD dwParamType, DWORD dwIndex, void *pvData, DWORD *pcbData)
 
WINCRYPT32API HCRYPTMSG WINAPI CryptMsgOpenToDecode (DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, HCRYPTPROV_LEGACY hCryptProv, PCERT_INFO pRecipientInfo, PCMSG_STREAM_INFO pStreamInfo)
 
WINCRYPT32API HCRYPTMSG WINAPI CryptMsgOpenToEncode (DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID, PCMSG_STREAM_INFO pStreamInfo)
 
WINCRYPT32API BOOL WINAPI CryptMsgSignCTL (DWORD dwMsgEncodingType, BYTE *pbCtlContent, DWORD cbCtlContent, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags, BYTE *pbEncoded, DWORD *pcbEncoded)
 
WINCRYPT32API BOOL WINAPI CryptMsgUpdate (HCRYPTMSG hCryptMsg, const BYTE *pbData, DWORD cbData, BOOL fFinal)
 
WINCRYPT32API BOOL WINAPI CryptMsgVerifyCountersignatureEncoded (HCRYPTPROV_LEGACY hCryptProv, DWORD dwEncodingType, PBYTE pbSignerInfo, DWORD cbSignerInfo, PBYTE pbSignerInfoCountersignature, DWORD cbSignerInfoCountersignature, PCERT_INFO pciCountersigner)
 
WINCRYPT32API BOOL WINAPI CryptMsgVerifyCountersignatureEncodedEx (HCRYPTPROV_LEGACY hCryptProv, DWORD dwEncodingType, PBYTE pbSignerInfo, DWORD cbSignerInfo, PBYTE pbSignerInfoCountersignature, DWORD cbSignerInfoCountersignature, DWORD dwSignerType, void *pvSigner, DWORD dwFlags, void *pvReserved)
 
WINCRYPT32API BOOL WINAPI CryptSignMessage (PCRYPT_SIGN_MESSAGE_PARA pSignPara, BOOL fDetachedSignature, DWORD cToBeSigned, const BYTE *rgpbToBeSigned[], DWORD rgcbToBeSigned[], BYTE *pbSignedBlob, DWORD *pcbSignedBlob)
 
WINCRYPT32API BOOL WINAPI CryptSignMessageWithKey (PCRYPT_KEY_SIGN_MESSAGE_PARA pSignPara, const BYTE *pbToBeSigned, DWORD cbToBeSigned, BYTE *pbSignedBlob, DWORD *pcbSignedBlob)
 
WINCRYPT32API BOOL WINAPI CryptVerifyMessageSignature (PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, const BYTE *pbSignedBlob, DWORD cbSignedBlob, BYTE *pbDecoded, DWORD *pcbDecoded, PCCERT_CONTEXT *ppSignerCert)
 
WINCRYPT32API BOOL WINAPI CryptVerifyMessageSignatureWithKey (PCRYPT_KEY_VERIFY_MESSAGE_PARA pVerifyPara, PCERT_PUBLIC_KEY_INFO pPublicKeyInfo, const BYTE *pbSignedBlob, DWORD cbSignedBlob, BYTE *pbDecoded, DWORD *pcbDecoded)
 
WINCRYPT32API BOOL WINAPI CryptVerifyDetachedMessageSignature (PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, const BYTE *pbDetachedSignBlob, DWORD cbDetachedSignBlob, DWORD cToBeSigned, const BYTE *rgpbToBeSigned[], DWORD rgcbToBeSigned[], PCCERT_CONTEXT *ppSignerCert)
 
WINCRYPT32API LONG WINAPI CryptGetMessageSignerCount (DWORD dwMsgEncodingType, const BYTE *pbSignedBlob, DWORD cbSignedBlob)
 
WINCRYPT32API BOOL WINAPI CryptEncryptMessage (PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, DWORD cRecipientCert, PCCERT_CONTEXT rgpRecipientCert[], const BYTE *pbToBeEncrypted, DWORD cbToBeEncrypted, BYTE *pbEncryptedBlob, DWORD *pcbEncryptedBlob)
 
WINCRYPT32API BOOL WINAPI CryptDecryptMessage (PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, const BYTE *pbEncryptedBlob, DWORD cbEncryptedBlob, BYTE *pbDecrypted, DWORD *pcbDecrypted, PCCERT_CONTEXT *ppXchgCert)
 
WINCRYPT32API BOOL WINAPI CryptSignAndEncryptMessage (PCRYPT_SIGN_MESSAGE_PARA pSignPara, PCRYPT_ENCRYPT_MESSAGE_PARA pEncryptPara, DWORD cRecipientCert, PCCERT_CONTEXT rgpRecipientCert[], const BYTE *pbToBeSignedAndEncrypted, DWORD cbToBeSignedAndEncrypted, BYTE *pbSignedAndEncryptedBlob, DWORD *pcbSignedAndEncryptedBlob)
 
WINCRYPT32API BOOL WINAPI CryptDecryptAndVerifyMessageSignature (PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, const BYTE *pbEncryptedBlob, DWORD cbEncryptedBlob, BYTE *pbDecrypted, DWORD *pcbDecrypted, PCCERT_CONTEXT *ppXchgCert, PCCERT_CONTEXT *ppSignerCert)
 
WINCRYPT32API HCERTSTORE WINAPI CryptGetMessageCertificates (DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const BYTE *pbSignedBlob, DWORD cbSignedBlob)
 
WINCRYPT32API BOOL WINAPI CryptDecodeMessage (DWORD dwMsgTypeFlags, PCRYPT_DECRYPT_MESSAGE_PARA pDecryptPara, PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, DWORD dwSignerIndex, const BYTE *pbEncodedBlob, DWORD cbEncodedBlob, DWORD dwPrevInnerContentType, DWORD *pdwMsgType, DWORD *pdwInnerContentType, BYTE *pbDecoded, DWORD *pcbDecoded, PCCERT_CONTEXT *ppXchgCert, PCCERT_CONTEXT *ppSignerCert)
 
WINCRYPT32API BOOL WINAPI CryptHashMessage (PCRYPT_HASH_MESSAGE_PARA pHashPara, BOOL fDetachedHash, DWORD cToBeHashed, const BYTE *rgpbToBeHashed[], DWORD rgcbToBeHashed[], BYTE *pbHashedBlob, DWORD *pcbHashedBlob, BYTE *pbComputedHash, DWORD *pcbComputedHash)
 
WINCRYPT32API BOOL WINAPI CryptVerifyMessageHash (PCRYPT_HASH_MESSAGE_PARA pHashPara, BYTE *pbHashedBlob, DWORD cbHashedBlob, BYTE *pbToBeHashed, DWORD *pcbToBeHashed, BYTE *pbComputedHash, DWORD *pcbComputedHash)
 
WINCRYPT32API BOOL WINAPI CryptVerifyDetachedMessageHash (PCRYPT_HASH_MESSAGE_PARA pHashPara, BYTE *pbDetachedHashBlob, DWORD cbDetachedHashBlob, DWORD cToBeHashed, const BYTE *rgpbToBeHashed[], DWORD rgcbToBeHashed[], BYTE *pbComputedHash, DWORD *pcbComputedHash)
 
WINCRYPT32API HCERTSTORE WINAPI PFXImportCertStore (CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, DWORD dwFlags)
 
WINCRYPT32API BOOL WINAPI PFXIsPFXBlob (CRYPT_DATA_BLOB *pPFX)
 
WINCRYPT32API BOOL WINAPI PFXVerifyPassword (CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, DWORD dwFlags)
 
WINCRYPT32API BOOL WINAPI PFXExportCertStoreEx (HCERTSTORE hStore, CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, void *pvReserved, DWORD dwFlags)
 
WINCRYPT32API BOOL WINAPI PFXExportCertStore (HCERTSTORE hStore, CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, DWORD dwFlags)
 
BOOL WINAPI CryptCancelAsyncRetrieval (HCRYPTASYNC hAsyncRetrieval)
 
BOOL WINAPI CryptGetObjectUrl (LPCSTR pszUrlOid, LPVOID pvPara, DWORD dwFlags, PCRYPT_URL_ARRAY pUrlArray, DWORD *pcbUrlArray, PCRYPT_URL_INFO pUrlInfo, DWORD *pcbUrlInfo, LPVOID pvReserved)
 
BOOL WINAPI CryptGetTimeValidObject (LPCSTR pszTimeValidOid, void *pvPara, PCCERT_CONTEXT pIssuer, LPFILETIME pftValidFor, DWORD dwFlags, DWORD dwTimeout, void **ppvObject, PCRYPT_CREDENTIALS pCredentials, void *pvReserved)
 
BOOL WINAPI CryptFlushTimeValidObject (LPCSTR pszFlushTimeValidOid, void *pvPara, PCCERT_CONTEXT pIssuer, DWORD dwFlags, void *pvReserved)
 
BOOL WINAPI CryptInstallCancelRetrieval (PFN_CRYPT_CANCEL_RETRIEVAL pfnCancel, const void *pvArg, DWORD dwFlags, void *pvReserved)
 
BOOL WINAPI CryptUninstallCancelRetrieval (DWORD dwFlags, void *pvReserved)
 
BOOL WINAPI CryptRetrieveObjectByUrlA (LPCSTR pszURL, LPCSTR pszObjectOid, DWORD dwRetrievalFlags, DWORD dwTimeout, LPVOID *ppvObject, HCRYPTASYNC hAsyncRetrieve, PCRYPT_CREDENTIALS pCredentials, LPVOID pvVerify, PCRYPT_RETRIEVE_AUX_INFO pAuxInfo)
 
BOOL WINAPI CryptRetrieveObjectByUrlW (LPCWSTR pszURL, LPCSTR pszObjectOid, DWORD dwRetrievalFlags, DWORD dwTimeout, LPVOID *ppvObject, HCRYPTASYNC hAsyncRetrieve, PCRYPT_CREDENTIALS pCredentials, LPVOID pvVerify, PCRYPT_RETRIEVE_AUX_INFO pAuxInfo)
 
HRESULT WINAPI FindCertsByIssuer (PCERT_CHAIN pCertChains, DWORD *pcbCertChains, DWORD *pcCertChains, BYTE *pbEncodedIssuerName, DWORD cbEncodedIssuerName, LPCWSTR pwszPurpose, DWORD dwKeySpec)
 

Variables

static const WCHAR CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM [] = {'C','r','y','p','t','O','I','D','I','n','f','o','H','a','s','h','P','a','r','a','m','e','t','e','r','s',0}
 
static const WCHAR CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM [] = {'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','P','a','r','a','m','e','t','e','r','s',0}
 
static const WCHAR CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM [] = {'C','r','y','p','t','O','I','D','I','n','f','o','M','g','f','1','P','a','r','a','m','e','t','e','r','s',0}
 
static const WCHAR CRYPT_OID_INFO_NO_SIGN_ALGORITHM [] = {'C','r','y','p','t','O','I','D','I','n','f','o','N','o','S','i','g','n',0}
 
static const WCHAR CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM [] = {'C','r','y','p','t','O','I','D','I','n','f','o','O','A','E','P','P','a','r','a','m','e','t','e','r','s',0}
 
static const WCHAR CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM [] = {'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','W','r','a','p','P','a','r','a','m','e','t','e','r','s',0}
 
static const WCHAR CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM [] = {'C','r','y','p','t','O','I','D','I','n','f','o','N','o','P','a','r','a','m','e','t','e','r','s',0}
 
static const WCHAR MS_DEF_PROV_W []
 
static const WCHAR MS_ENHANCED_PROV_W []
 
static const WCHAR MS_STRONG_PROV_W []
 
static const WCHAR MS_DEF_RSA_SIG_PROV_W []
 
static const WCHAR MS_DEF_RSA_SCHANNEL_PROV_W []
 
static const WCHAR MS_DEF_DSS_PROV_W []
 
static const WCHAR MS_DEF_DSS_DH_PROV_W []
 
static const WCHAR MS_ENH_DSS_DH_PROV_W []
 
static const WCHAR MS_DEF_DH_SCHANNEL_PROV_W []
 
static const WCHAR MS_SCARD_PROV_W []
 
static const WCHAR MS_ENH_RSA_AES_PROV_W []
 
static const WCHAR MS_ENH_RSA_AES_PROV_XP_W []
 
static const WCHAR CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH []
 
static const WCHAR CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH []
 
static const WCHAR CERT_EFSBLOB_REGPATH []
 
static const WCHAR CERT_EFSBLOB_VALUE_NAME [] = { 'E','F','S','B','l','o','b',0 }
 
static const WCHAR CERT_PROT_ROOT_FLAGS_REGPATH []
 
static const WCHAR CERT_PROT_ROOT_FLAGS_VALUE_NAME [] = {'F','l','a','g','s',0 }
 
static const WCHAR CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH []
 
static const WCHAR CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH []
 
static const WCHAR CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME []
 
static const WCHAR CRYPT_OID_REG_DLL_VALUE_NAME [] = { 'D','l','l',0 }
 
static const WCHAR CRYPT_OID_REG_FUNC_NAME_VALUE_NAME []
 
static const WCHAR CRYPT_OID_REG_FLAGS_VALUE_NAME []
 
static const WCHAR CERT_PHYSICAL_STORE_DEFAULT_NAME []
 
static const WCHAR CERT_PHYSICAL_STORE_GROUP_POLICY_NAME []
 
static const WCHAR CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME []
 
static const WCHAR CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME []
 
static const WCHAR CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME []
 
static const WCHAR CERT_PHYSICAL_STORE_ENTERPRISE_NAME []
 
static const WCHAR CERT_PHYSICAL_STORE_AUTH_ROOT_NAME []
 

Macro Definition Documentation

◆ ALG_CLASS_ALL

#define ALG_CLASS_ALL   (7 << 13)

Definition at line 1973 of file wincrypt.h.

◆ ALG_CLASS_ANY

#define ALG_CLASS_ANY   (0)

Definition at line 1967 of file wincrypt.h.

◆ ALG_CLASS_DATA_ENCRYPT

#define ALG_CLASS_DATA_ENCRYPT   (3 << 13)

Definition at line 1970 of file wincrypt.h.

◆ ALG_CLASS_HASH

#define ALG_CLASS_HASH   (4 << 13)

Definition at line 1971 of file wincrypt.h.

◆ ALG_CLASS_KEY_EXCHANGE

#define ALG_CLASS_KEY_EXCHANGE   (5 << 13)

Definition at line 1972 of file wincrypt.h.

◆ ALG_CLASS_MSG_ENCRYPT

#define ALG_CLASS_MSG_ENCRYPT   (2 << 13)

Definition at line 1969 of file wincrypt.h.

◆ ALG_CLASS_SIGNATURE

#define ALG_CLASS_SIGNATURE   (1 << 13)

Definition at line 1968 of file wincrypt.h.

◆ ALG_SID_3DES

#define ALG_SID_3DES   3

Definition at line 2000 of file wincrypt.h.

◆ ALG_SID_3DES_112

#define ALG_SID_3DES_112   9

Definition at line 2006 of file wincrypt.h.

◆ ALG_SID_AES

#define ALG_SID_AES   17

Definition at line 2012 of file wincrypt.h.

◆ ALG_SID_AES_128

#define ALG_SID_AES_128   14

Definition at line 2009 of file wincrypt.h.

◆ ALG_SID_AES_192

#define ALG_SID_AES_192   15

Definition at line 2010 of file wincrypt.h.

◆ ALG_SID_AES_256

#define ALG_SID_AES_256   16

Definition at line 2011 of file wincrypt.h.

◆ ALG_SID_AGREED_KEY_ANY

#define ALG_SID_AGREED_KEY_ANY   3

Definition at line 2019 of file wincrypt.h.

◆ ALG_SID_ANY

#define ALG_SID_ANY   (0)

Definition at line 1985 of file wincrypt.h.

◆ ALG_SID_CAST

#define ALG_SID_CAST   6

Definition at line 2003 of file wincrypt.h.

◆ ALG_SID_CYLINK_MEK

#define ALG_SID_CYLINK_MEK   12

Definition at line 2007 of file wincrypt.h.

◆ ALG_SID_DES

#define ALG_SID_DES   1

Definition at line 1999 of file wincrypt.h.

◆ ALG_SID_DESX

#define ALG_SID_DESX   4

Definition at line 2001 of file wincrypt.h.

◆ ALG_SID_DH_EPHEM

#define ALG_SID_DH_EPHEM   2

Definition at line 2018 of file wincrypt.h.

◆ ALG_SID_DH_SANDF

#define ALG_SID_DH_SANDF   1

Definition at line 2017 of file wincrypt.h.

◆ ALG_SID_DSS_ANY

#define ALG_SID_DSS_ANY   0

Definition at line 1993 of file wincrypt.h.

◆ ALG_SID_DSS_DMS

#define ALG_SID_DSS_DMS   2

Definition at line 1995 of file wincrypt.h.

◆ ALG_SID_DSS_PKCS

#define ALG_SID_DSS_PKCS   1

Definition at line 1994 of file wincrypt.h.

◆ ALG_SID_ECDH

#define ALG_SID_ECDH   5

Definition at line 2021 of file wincrypt.h.

◆ ALG_SID_ECDH_EPHEM

#define ALG_SID_ECDH_EPHEM   6

Definition at line 2022 of file wincrypt.h.

◆ ALG_SID_ECDSA

#define ALG_SID_ECDSA   3

Definition at line 1996 of file wincrypt.h.

◆ ALG_SID_ECMQV

#define ALG_SID_ECMQV   1

Definition at line 2053 of file wincrypt.h.

◆ ALG_SID_EXAMPLE

#define ALG_SID_EXAMPLE   80

Definition at line 2051 of file wincrypt.h.

◆ ALG_SID_HASH_REPLACE_OWF

#define ALG_SID_HASH_REPLACE_OWF   11

Definition at line 2039 of file wincrypt.h.

◆ ALG_SID_HMAC

#define ALG_SID_HMAC   9

Definition at line 2037 of file wincrypt.h.

◆ ALG_SID_IDEA

#define ALG_SID_IDEA   5

Definition at line 2002 of file wincrypt.h.

◆ ALG_SID_KEA

#define ALG_SID_KEA   4

Definition at line 2020 of file wincrypt.h.

◆ ALG_SID_MAC

#define ALG_SID_MAC   5

Definition at line 2033 of file wincrypt.h.

◆ ALG_SID_MD2

#define ALG_SID_MD2   1

Definition at line 2028 of file wincrypt.h.

◆ ALG_SID_MD4

#define ALG_SID_MD4   2

Definition at line 2029 of file wincrypt.h.

◆ ALG_SID_MD5

#define ALG_SID_MD5   3

Definition at line 2030 of file wincrypt.h.

◆ ALG_SID_PCT1_MASTER

#define ALG_SID_PCT1_MASTER   4

Definition at line 2047 of file wincrypt.h.

◆ ALG_SID_RC2

#define ALG_SID_RC2   2

Definition at line 2025 of file wincrypt.h.

◆ ALG_SID_RC4

#define ALG_SID_RC4   1

Definition at line 2024 of file wincrypt.h.

◆ ALG_SID_RC5

#define ALG_SID_RC5   13

Definition at line 2008 of file wincrypt.h.

◆ ALG_SID_RIPEMD

#define ALG_SID_RIPEMD   6

Definition at line 2034 of file wincrypt.h.

◆ ALG_SID_RIPEMD160

#define ALG_SID_RIPEMD160   7

Definition at line 2035 of file wincrypt.h.

◆ ALG_SID_RSA_ANY

#define ALG_SID_RSA_ANY   0

Definition at line 1987 of file wincrypt.h.

◆ ALG_SID_RSA_ENTRUST

#define ALG_SID_RSA_ENTRUST   3

Definition at line 1990 of file wincrypt.h.

◆ ALG_SID_RSA_MSATWORK

#define ALG_SID_RSA_MSATWORK   2

Definition at line 1989 of file wincrypt.h.

◆ ALG_SID_RSA_PGP

#define ALG_SID_RSA_PGP   4

Definition at line 1991 of file wincrypt.h.

◆ ALG_SID_RSA_PKCS

#define ALG_SID_RSA_PKCS   1

Definition at line 1988 of file wincrypt.h.

◆ ALG_SID_SAFERSK128

#define ALG_SID_SAFERSK128   8

Definition at line 2005 of file wincrypt.h.

◆ ALG_SID_SAFERSK64

#define ALG_SID_SAFERSK64   7

Definition at line 2004 of file wincrypt.h.

◆ ALG_SID_SCHANNEL_ENC_KEY

#define ALG_SID_SCHANNEL_ENC_KEY   7

Definition at line 2050 of file wincrypt.h.

◆ ALG_SID_SCHANNEL_MAC_KEY

#define ALG_SID_SCHANNEL_MAC_KEY   3

Definition at line 2046 of file wincrypt.h.

◆ ALG_SID_SCHANNEL_MASTER_HASH

#define ALG_SID_SCHANNEL_MASTER_HASH   2

Definition at line 2045 of file wincrypt.h.

◆ ALG_SID_SEAL

#define ALG_SID_SEAL   2

Definition at line 2026 of file wincrypt.h.

◆ ALG_SID_SHA

#define ALG_SID_SHA   4

Definition at line 2031 of file wincrypt.h.

◆ ALG_SID_SHA1

#define ALG_SID_SHA1   ALG_SID_SHA

Definition at line 2032 of file wincrypt.h.

◆ ALG_SID_SHA_256

#define ALG_SID_SHA_256   12

Definition at line 2040 of file wincrypt.h.

◆ ALG_SID_SHA_384

#define ALG_SID_SHA_384   13

Definition at line 2041 of file wincrypt.h.

◆ ALG_SID_SHA_512

#define ALG_SID_SHA_512   14

Definition at line 2042 of file wincrypt.h.

◆ ALG_SID_SKIPJACK

#define ALG_SID_SKIPJACK   10

Definition at line 2014 of file wincrypt.h.

◆ ALG_SID_SSL2_MASTER

#define ALG_SID_SSL2_MASTER   5

Definition at line 2048 of file wincrypt.h.

◆ ALG_SID_SSL3_MASTER

#define ALG_SID_SSL3_MASTER   1

Definition at line 2044 of file wincrypt.h.

◆ ALG_SID_SSL3SHAMD5

#define ALG_SID_SSL3SHAMD5   8

Definition at line 2036 of file wincrypt.h.

◆ ALG_SID_TEK

#define ALG_SID_TEK   11

Definition at line 2015 of file wincrypt.h.

◆ ALG_SID_TLS1_MASTER

#define ALG_SID_TLS1_MASTER   6

Definition at line 2049 of file wincrypt.h.

◆ ALG_SID_TLS1PRF

#define ALG_SID_TLS1PRF   10

Definition at line 2038 of file wincrypt.h.

◆ ALG_TYPE_ANY

#define ALG_TYPE_ANY   (0)

Definition at line 1975 of file wincrypt.h.

◆ ALG_TYPE_BLOCK

#define ALG_TYPE_BLOCK   (3 << 9)

Definition at line 1978 of file wincrypt.h.

◆ ALG_TYPE_DH

#define ALG_TYPE_DH   (5 << 9)

Definition at line 1980 of file wincrypt.h.

◆ ALG_TYPE_DSS

#define ALG_TYPE_DSS   (1 << 9)

Definition at line 1976 of file wincrypt.h.

◆ ALG_TYPE_ECDH

#define ALG_TYPE_ECDH   (7 << 9)

Definition at line 1982 of file wincrypt.h.

◆ ALG_TYPE_RSA

#define ALG_TYPE_RSA   (2 << 9)

Definition at line 1977 of file wincrypt.h.

◆ ALG_TYPE_SECURECHANNEL

#define ALG_TYPE_SECURECHANNEL   (6 << 9)

Definition at line 1981 of file wincrypt.h.

◆ ALG_TYPE_STREAM

#define ALG_TYPE_STREAM   (4 << 9)

Definition at line 1979 of file wincrypt.h.

◆ AT_KEYEXCHANGE

#define AT_KEYEXCHANGE   1

Definition at line 2239 of file wincrypt.h.

◆ AT_SIGNATURE

#define AT_SIGNATURE   2

Definition at line 2240 of file wincrypt.h.

◆ AUTHTYPE_CLIENT

#define AUTHTYPE_CLIENT   1

Definition at line 1147 of file wincrypt.h.

◆ AUTHTYPE_SERVER

#define AUTHTYPE_SERVER   2

Definition at line 1148 of file wincrypt.h.

◆ BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG

#define BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG   0x80000000

Definition at line 1151 of file wincrypt.h.

◆ BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG

#define BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG   0x40000000

Definition at line 1152 of file wincrypt.h.

◆ CALG_3DES

Definition at line 2084 of file wincrypt.h.

◆ CALG_3DES_112

Definition at line 2085 of file wincrypt.h.

◆ CALG_AES

Definition at line 2090 of file wincrypt.h.

◆ CALG_AES_128

Definition at line 2087 of file wincrypt.h.

◆ CALG_AES_192

Definition at line 2088 of file wincrypt.h.

◆ CALG_AES_256

Definition at line 2089 of file wincrypt.h.

◆ CALG_AGREEDKEY_ANY

Definition at line 2075 of file wincrypt.h.

◆ CALG_CYLINK_MEK

Definition at line 2096 of file wincrypt.h.

◆ CALG_DES

Definition at line 2082 of file wincrypt.h.

◆ CALG_DESX

Definition at line 2086 of file wincrypt.h.

◆ CALG_DH_EPHEM

Definition at line 2074 of file wincrypt.h.

◆ CALG_DH_SF

Definition at line 2073 of file wincrypt.h.

◆ CALG_DSS_SIGN

Definition at line 2070 of file wincrypt.h.

◆ CALG_ECDH

Definition at line 2078 of file wincrypt.h.

◆ CALG_ECDH_EPHEM

Definition at line 2079 of file wincrypt.h.

◆ CALG_ECDSA

Definition at line 2072 of file wincrypt.h.

◆ CALG_ECMQV

Definition at line 2081 of file wincrypt.h.

◆ CALG_HASH_REPLACE_OWF

#define CALG_HASH_REPLACE_OWF   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HASH_REPLACE_OWF)

Definition at line 2065 of file wincrypt.h.

◆ CALG_HMAC

Definition at line 2063 of file wincrypt.h.

◆ CALG_HUGHES_MD5

Definition at line 2077 of file wincrypt.h.

◆ CALG_KEA_KEYX

Definition at line 2076 of file wincrypt.h.

◆ CALG_MAC

Definition at line 2061 of file wincrypt.h.

◆ CALG_MD2

Definition at line 2056 of file wincrypt.h.

◆ CALG_MD4

Definition at line 2057 of file wincrypt.h.

◆ CALG_MD5

Definition at line 2058 of file wincrypt.h.

◆ CALG_NO_SIGN

Definition at line 2071 of file wincrypt.h.

◆ CALG_OID_INFO_CNG_ONLY

#define CALG_OID_INFO_CNG_ONLY   0xffffffff

Definition at line 1595 of file wincrypt.h.

◆ CALG_OID_INFO_PARAMETERS

#define CALG_OID_INFO_PARAMETERS   0xfffffffe

Definition at line 1596 of file wincrypt.h.

◆ CALG_PCT1_MASTER

Definition at line 2101 of file wincrypt.h.

◆ CALG_RC2

Definition at line 2083 of file wincrypt.h.

◆ CALG_RC4

Definition at line 2091 of file wincrypt.h.

◆ CALG_RC5

Definition at line 2093 of file wincrypt.h.

◆ CALG_RSA_KEYX

Definition at line 2080 of file wincrypt.h.

◆ CALG_RSA_SIGN

Definition at line 2069 of file wincrypt.h.

◆ CALG_SCHANNEL_ENC_KEY

Definition at line 2100 of file wincrypt.h.

◆ CALG_SCHANNEL_MAC_KEY

Definition at line 2099 of file wincrypt.h.

◆ CALG_SCHANNEL_MASTER_HASH

Definition at line 2098 of file wincrypt.h.

◆ CALG_SEAL

Definition at line 2092 of file wincrypt.h.

◆ CALG_SHA

Definition at line 2059 of file wincrypt.h.

◆ CALG_SHA1

#define CALG_SHA1   CALG_SHA

Definition at line 2060 of file wincrypt.h.

◆ CALG_SHA_256

Definition at line 2066 of file wincrypt.h.

◆ CALG_SHA_384

Definition at line 2067 of file wincrypt.h.

◆ CALG_SHA_512

Definition at line 2068 of file wincrypt.h.

◆ CALG_SKIPJACK

Definition at line 2094 of file wincrypt.h.

◆ CALG_SSL2_MASTER

Definition at line 2102 of file wincrypt.h.

◆ CALG_SSL3_MASTER

Definition at line 2097 of file wincrypt.h.

◆ CALG_SSL3_SHAMD5

#define CALG_SSL3_SHAMD5   (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SSL3SHAMD5)

Definition at line 2062 of file wincrypt.h.

◆ CALG_TEK

Definition at line 2095 of file wincrypt.h.

◆ CALG_TLS1_MASTER

Definition at line 2103 of file wincrypt.h.

◆ CALG_TLS1PRF

Definition at line 2064 of file wincrypt.h.

◆ CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG

#define CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG   0x4

Definition at line 2915 of file wincrypt.h.

◆ CERT_ACCESS_STATE_PROP_ID

#define CERT_ACCESS_STATE_PROP_ID   14

Definition at line 2847 of file wincrypt.h.

◆ CERT_ACCESS_STATE_SYSTEM_STORE_FLAG

#define CERT_ACCESS_STATE_SYSTEM_STORE_FLAG   0x2

Definition at line 2914 of file wincrypt.h.

◆ CERT_ACCESS_STATE_WRITE_PERSIST_FLAG

#define CERT_ACCESS_STATE_WRITE_PERSIST_FLAG   0x1

Definition at line 2913 of file wincrypt.h.

◆ CERT_AIA_URL_RETRIEVED_PROP_ID

#define CERT_AIA_URL_RETRIEVED_PROP_ID   67

Definition at line 2874 of file wincrypt.h.

◆ CERT_ALT_NAME_DIRECTORY_NAME

#define CERT_ALT_NAME_DIRECTORY_NAME   5

Definition at line 358 of file wincrypt.h.

◆ CERT_ALT_NAME_DNS_NAME

#define CERT_ALT_NAME_DNS_NAME   3

Definition at line 356 of file wincrypt.h.

◆ CERT_ALT_NAME_EDI_PARTY_NAME

#define CERT_ALT_NAME_EDI_PARTY_NAME   6

Definition at line 359 of file wincrypt.h.

◆ CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK

#define CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK   0xff

Definition at line 369 of file wincrypt.h.

◆ CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT

#define CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT   16

Definition at line 370 of file wincrypt.h.

◆ CERT_ALT_NAME_IP_ADDRESS

#define CERT_ALT_NAME_IP_ADDRESS   8

Definition at line 361 of file wincrypt.h.

◆ CERT_ALT_NAME_OTHER_NAME

#define CERT_ALT_NAME_OTHER_NAME   1

Definition at line 354 of file wincrypt.h.

◆ CERT_ALT_NAME_REGISTERED_ID

#define CERT_ALT_NAME_REGISTERED_ID   9

Definition at line 362 of file wincrypt.h.

◆ CERT_ALT_NAME_RFC822_NAME

#define CERT_ALT_NAME_RFC822_NAME   2

Definition at line 355 of file wincrypt.h.

◆ CERT_ALT_NAME_URL

#define CERT_ALT_NAME_URL   7

Definition at line 360 of file wincrypt.h.

◆ CERT_ALT_NAME_VALUE_ERR_INDEX_MASK

#define CERT_ALT_NAME_VALUE_ERR_INDEX_MASK   0x0000ffff

Definition at line 371 of file wincrypt.h.

◆ CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT

#define CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT   0

Definition at line 372 of file wincrypt.h.

◆ CERT_ALT_NAME_X400_ADDRESS

#define CERT_ALT_NAME_X400_ADDRESS   4

Definition at line 357 of file wincrypt.h.

◆ CERT_ARCHIVED_KEY_HASH_PROP_ID

#define CERT_ARCHIVED_KEY_HASH_PROP_ID   65

Definition at line 2872 of file wincrypt.h.

◆ CERT_ARCHIVED_PROP_ID

#define CERT_ARCHIVED_PROP_ID   19

Definition at line 2852 of file wincrypt.h.

◆ CERT_AUTHORITY_INFO_ACCESS_PROP_ID

#define CERT_AUTHORITY_INFO_ACCESS_PROP_ID   68

Definition at line 2875 of file wincrypt.h.

◆ CERT_AUTO_ENROLL_PROP_ID

#define CERT_AUTO_ENROLL_PROP_ID   21

Definition at line 2854 of file wincrypt.h.

◆ CERT_AUTO_ENROLL_RETRY_PROP_ID

#define CERT_AUTO_ENROLL_RETRY_PROP_ID   66

Definition at line 2873 of file wincrypt.h.

◆ CERT_BACKED_UP_PROP_ID

#define CERT_BACKED_UP_PROP_ID   69

Definition at line 2876 of file wincrypt.h.

◆ CERT_CA_DISABLE_CRL_PROP_ID

#define CERT_CA_DISABLE_CRL_PROP_ID   82

Definition at line 2889 of file wincrypt.h.

◆ CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID

#define CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID   81

Definition at line 2888 of file wincrypt.h.

◆ CERT_CA_SUBJECT_FLAG

#define CERT_CA_SUBJECT_FLAG   0x80

Definition at line 387 of file wincrypt.h.

◆ CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG

#define CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG   0x2

Definition at line 2954 of file wincrypt.h.

◆ CERT_CHAIN_CACHE_END_CERT

#define CERT_CHAIN_CACHE_END_CERT   0x00000001

Definition at line 3776 of file wincrypt.h.

◆ CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL

#define CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL   0x00000004

Definition at line 3778 of file wincrypt.h.

◆ CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE

#define CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE   0x00000100

Definition at line 1178 of file wincrypt.h.

◆ CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING

#define CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING   0x00000040

Definition at line 1176 of file wincrypt.h.

◆ CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE

#define CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE   0x00000010

Definition at line 3780 of file wincrypt.h.

◆ CERT_CHAIN_ENABLE_SHARE_STORE

#define CERT_CHAIN_ENABLE_SHARE_STORE   0x00000020

Definition at line 3781 of file wincrypt.h.

◆ CERT_CHAIN_FIND_BY_ISSUER

#define CERT_CHAIN_FIND_BY_ISSUER   1

Definition at line 2790 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG

#define CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG   0x00008000

Definition at line 1111 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG

#define CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG   0x00000010

Definition at line 1092 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_AUTHENTICODE

#define CERT_CHAIN_POLICY_AUTHENTICODE   ((LPCSTR)2)

Definition at line 1075 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_AUTHENTICODE_TS

#define CERT_CHAIN_POLICY_AUTHENTICODE_TS   ((LPCSTR)3)

Definition at line 1076 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_BASE

#define CERT_CHAIN_POLICY_BASE   ((LPCSTR)1)

Definition at line 1074 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_BASIC_CONSTRAINTS

#define CERT_CHAIN_POLICY_BASIC_CONSTRAINTS   ((LPCSTR)5)

Definition at line 1078 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS

#define CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS
Value:
( \
CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG \
CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG \
CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG )

Definition at line 1087 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS

#define CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS
Value:
( \
CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG \
CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG \
CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG \
CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG )

Definition at line 1102 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG

#define CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG   0x00000400

Definition at line 1099 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG

#define CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG   0x00000002

Definition at line 1083 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG

#define CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG   0x00000200

Definition at line 1098 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG

#define CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG   0x00000100

Definition at line 1097 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG

#define CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG   0x00000008

Definition at line 1085 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG

#define CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG   0x00000040

Definition at line 1094 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG

#define CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG   0x00000080

Definition at line 1095 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_NOT_SUPPORTED_CRITICAL_EXT_FLAG

#define CERT_CHAIN_POLICY_IGNORE_NOT_SUPPORTED_CRITICAL_EXT_FLAG   0x00002000

Definition at line 1109 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG

#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG   0x00000004

Definition at line 1084 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG

#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG   0x00000001

Definition at line 1082 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_PEER_TRUST_FLAG

#define CERT_CHAIN_POLICY_IGNORE_PEER_TRUST_FLAG   0x00001000

Definition at line 1108 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG

#define CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG   0x00000800

Definition at line 1100 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG

#define CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG   0x00000020

Definition at line 1093 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_MICROSOFT_ROOT

#define CERT_CHAIN_POLICY_MICROSOFT_ROOT   ((LPCSTR)7)

Definition at line 1080 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_NT_AUTH

#define CERT_CHAIN_POLICY_NT_AUTH   ((LPCSTR)6)

Definition at line 1079 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_SSL

#define CERT_CHAIN_POLICY_SSL   ((LPCSTR)4)

Definition at line 1077 of file wincrypt.h.

◆ CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG

#define CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG   0x00004000

Definition at line 1110 of file wincrypt.h.

◆ CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS

#define CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS   0x00000080

Definition at line 1177 of file wincrypt.h.

◆ CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT

#define CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT   0x08000000

Definition at line 1174 of file wincrypt.h.

◆ CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY

#define CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY   0x80000000

Definition at line 1172 of file wincrypt.h.

◆ CERT_CHAIN_REVOCATION_CHECK_CHAIN

#define CERT_CHAIN_REVOCATION_CHECK_CHAIN   0x20000000

Definition at line 1170 of file wincrypt.h.

◆ CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT

#define CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT   0x40000000

Definition at line 1171 of file wincrypt.h.

◆ CERT_CHAIN_REVOCATION_CHECK_END_CERT

#define CERT_CHAIN_REVOCATION_CHECK_END_CERT   0x10000000

Definition at line 1169 of file wincrypt.h.

◆ CERT_CHAIN_THREAD_STORE_SYNC

#define CERT_CHAIN_THREAD_STORE_SYNC   0x00000002

Definition at line 3777 of file wincrypt.h.

◆ CERT_CHAIN_TIMESTAMP_TIME

#define CERT_CHAIN_TIMESTAMP_TIME   0x00000200

Definition at line 1179 of file wincrypt.h.

◆ CERT_CHAIN_USE_LOCAL_MACHINE_STORE

#define CERT_CHAIN_USE_LOCAL_MACHINE_STORE   0x00000008

Definition at line 3779 of file wincrypt.h.

◆ CERT_CLOSE_STORE_CHECK_FLAG

#define CERT_CLOSE_STORE_CHECK_FLAG   0x00000002

Definition at line 2648 of file wincrypt.h.

◆ CERT_CLOSE_STORE_FORCE_FLAG

#define CERT_CLOSE_STORE_FORCE_FLAG   0x00000001

Definition at line 2647 of file wincrypt.h.

◆ CERT_COMPARE_ANY

#define CERT_COMPARE_ANY   0

Definition at line 2987 of file wincrypt.h.

◆ CERT_COMPARE_ATTR

#define CERT_COMPARE_ATTR   3

Definition at line 2991 of file wincrypt.h.

◆ CERT_COMPARE_CERT_ID

#define CERT_COMPARE_CERT_ID   16

Definition at line 3005 of file wincrypt.h.

◆ CERT_COMPARE_CROSS_CERT_DIST_POINTS

#define CERT_COMPARE_CROSS_CERT_DIST_POINTS   17

Definition at line 3006 of file wincrypt.h.

◆ CERT_COMPARE_CTL_USAGE

#define CERT_COMPARE_CTL_USAGE   CERT_COMPARE_ENHKEY_USAGE

Definition at line 2999 of file wincrypt.h.

◆ CERT_COMPARE_ENHKEY_USAGE

#define CERT_COMPARE_ENHKEY_USAGE   10

Definition at line 2998 of file wincrypt.h.

◆ CERT_COMPARE_EXISTING

#define CERT_COMPARE_EXISTING   13

Definition at line 3002 of file wincrypt.h.

◆ CERT_COMPARE_HASH

#define CERT_COMPARE_HASH   CERT_COMPARE_SHA1_HASH

Definition at line 2989 of file wincrypt.h.

◆ CERT_COMPARE_ISSUER_OF

#define CERT_COMPARE_ISSUER_OF   12

Definition at line 3001 of file wincrypt.h.

◆ CERT_COMPARE_KEY_IDENTIFIER

#define CERT_COMPARE_KEY_IDENTIFIER   15

Definition at line 3004 of file wincrypt.h.

◆ CERT_COMPARE_KEY_SPEC

#define CERT_COMPARE_KEY_SPEC   9

Definition at line 2997 of file wincrypt.h.

◆ CERT_COMPARE_MASK

#define CERT_COMPARE_MASK   0xffff

Definition at line 2985 of file wincrypt.h.

◆ CERT_COMPARE_MD5_HASH

#define CERT_COMPARE_MD5_HASH   4

Definition at line 2992 of file wincrypt.h.

◆ CERT_COMPARE_NAME

#define CERT_COMPARE_NAME   2

Definition at line 2990 of file wincrypt.h.

◆ CERT_COMPARE_NAME_STR_A

#define CERT_COMPARE_NAME_STR_A   7

Definition at line 2995 of file wincrypt.h.

◆ CERT_COMPARE_NAME_STR_W

#define CERT_COMPARE_NAME_STR_W   8

Definition at line 2996 of file wincrypt.h.

◆ CERT_COMPARE_PROPERTY

#define CERT_COMPARE_PROPERTY   5

Definition at line 2993 of file wincrypt.h.

◆ CERT_COMPARE_PUBKEY_MD5_HASH

#define CERT_COMPARE_PUBKEY_MD5_HASH   18

Definition at line 3007 of file wincrypt.h.

◆ CERT_COMPARE_PUBLIC_KEY

#define CERT_COMPARE_PUBLIC_KEY   6

Definition at line 2994 of file wincrypt.h.

◆ CERT_COMPARE_SHA1_HASH

#define CERT_COMPARE_SHA1_HASH   1

Definition at line 2988 of file wincrypt.h.

◆ CERT_COMPARE_SHIFT

#define CERT_COMPARE_SHIFT   16

Definition at line 2986 of file wincrypt.h.

◆ CERT_COMPARE_SIGNATURE_HASH

#define CERT_COMPARE_SIGNATURE_HASH   14

Definition at line 3003 of file wincrypt.h.

◆ CERT_COMPARE_SUBJECT_CERT

#define CERT_COMPARE_SUBJECT_CERT   11

Definition at line 3000 of file wincrypt.h.

◆ CERT_CONTEXT_REVOCATION_TYPE

#define CERT_CONTEXT_REVOCATION_TYPE   1

Definition at line 930 of file wincrypt.h.

◆ CERT_CREATE_CONTEXT_NO_ENTRY_FLAG

#define CERT_CREATE_CONTEXT_NO_ENTRY_FLAG   0x8

Definition at line 2983 of file wincrypt.h.

◆ CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG

#define CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG   0x4

Definition at line 2982 of file wincrypt.h.

◆ CERT_CREATE_CONTEXT_NOCOPY_FLAG

#define CERT_CREATE_CONTEXT_NOCOPY_FLAG   0x1

Definition at line 2980 of file wincrypt.h.

◆ CERT_CREATE_CONTEXT_SORTED_FLAG

#define CERT_CREATE_CONTEXT_SORTED_FLAG   0x2

Definition at line 2981 of file wincrypt.h.

◆ CERT_CREATE_SELFSIGN_NO_KEY_INFO

#define CERT_CREATE_SELFSIGN_NO_KEY_INFO   2

Definition at line 3758 of file wincrypt.h.

◆ CERT_CREATE_SELFSIGN_NO_SIGN

#define CERT_CREATE_SELFSIGN_NO_SIGN   1

Definition at line 3757 of file wincrypt.h.

◆ CERT_CRL_SIGN_KEY_USAGE

#define CERT_CRL_SIGN_KEY_USAGE   0x02

Definition at line 320 of file wincrypt.h.

◆ CERT_CROSS_CERT_DIST_POINTS_PROP_ID

#define CERT_CROSS_CERT_DIST_POINTS_PROP_ID   23

Definition at line 2856 of file wincrypt.h.

◆ CERT_CTL_USAGE_PROP_ID

#define CERT_CTL_USAGE_PROP_ID   CERT_ENHKEY_USAGE_PROP_ID

Definition at line 2842 of file wincrypt.h.

◆ CERT_DATA_ENCIPHERMENT_KEY_USAGE

#define CERT_DATA_ENCIPHERMENT_KEY_USAGE   0x10

Definition at line 316 of file wincrypt.h.

◆ CERT_DATE_STAMP_PROP_ID

#define CERT_DATE_STAMP_PROP_ID   27

Definition at line 2860 of file wincrypt.h.

◆ CERT_DECIPHER_ONLY_KEY_USAGE

#define CERT_DECIPHER_ONLY_KEY_USAGE   0x80

Definition at line 323 of file wincrypt.h.

◆ CERT_DEFAULT_OID_PUBLIC_KEY_SIGN

#define CERT_DEFAULT_OID_PUBLIC_KEY_SIGN   szOID_RSA_RSA

Definition at line 3170 of file wincrypt.h.

◆ CERT_DEFAULT_OID_PUBLIC_KEY_XCHG

#define CERT_DEFAULT_OID_PUBLIC_KEY_XCHG   szOID_RSA_RSA

Definition at line 3171 of file wincrypt.h.

◆ CERT_DESCRIPTION_PROP_ID

#define CERT_DESCRIPTION_PROP_ID   13

Definition at line 2846 of file wincrypt.h.

◆ CERT_DIGITAL_SIGNATURE_KEY_USAGE

#define CERT_DIGITAL_SIGNATURE_KEY_USAGE   0x80

Definition at line 313 of file wincrypt.h.

◆ CERT_DSS_R_LEN

#define CERT_DSS_R_LEN   20

Definition at line 752 of file wincrypt.h.

◆ CERT_DSS_S_LEN

#define CERT_DSS_S_LEN   20

Definition at line 753 of file wincrypt.h.

◆ CERT_DSS_SIGNATURE_LEN

#define CERT_DSS_SIGNATURE_LEN   (CERT_DSS_R_LEN + CERT_DSS_S_LEN)

Definition at line 754 of file wincrypt.h.

◆ CERT_EFS_PROP_ID

#define CERT_EFS_PROP_ID   17

Definition at line 2850 of file wincrypt.h.

◆ CERT_ENCIPHER_ONLY_KEY_USAGE

#define CERT_ENCIPHER_ONLY_KEY_USAGE   0x01

Definition at line 321 of file wincrypt.h.

◆ CERT_ENCODING_TYPE_MASK

#define CERT_ENCODING_TYPE_MASK   0x0000ffff

Definition at line 2494 of file wincrypt.h.

◆ CERT_END_ENTITY_SUBJECT_FLAG

#define CERT_END_ENTITY_SUBJECT_FLAG   0x40

Definition at line 388 of file wincrypt.h.

◆ CERT_ENHKEY_USAGE_PROP_ID

#define CERT_ENHKEY_USAGE_PROP_ID   9

Definition at line 2841 of file wincrypt.h.

◆ CERT_ENROLLMENT_PROP_ID

#define CERT_ENROLLMENT_PROP_ID   26

Definition at line 2859 of file wincrypt.h.

◆ CERT_EXCLUDED_SUBTREE_BIT

#define CERT_EXCLUDED_SUBTREE_BIT   __MSABI_LONG(0x80000000)

Definition at line 600 of file wincrypt.h.

◆ CERT_EXTENDED_ERROR_INFO_PROP_ID

#define CERT_EXTENDED_ERROR_INFO_PROP_ID   30

Definition at line 2863 of file wincrypt.h.

◆ CERT_FILE_STORE_COMMIT_ENABLE_FLAG

#define CERT_FILE_STORE_COMMIT_ENABLE_FLAG   0x00010000

Definition at line 2644 of file wincrypt.h.

◆ CERT_FIND_ANY

#define CERT_FIND_ANY    (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT)

Definition at line 3010 of file wincrypt.h.

◆ CERT_FIND_CERT_ID

#define CERT_FIND_CERT_ID    (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT)

Definition at line 3054 of file wincrypt.h.

◆ CERT_FIND_CROSS_CERT_DIST_POINTS

#define CERT_FIND_CROSS_CERT_DIST_POINTS    (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT)

Definition at line 3056 of file wincrypt.h.

◆ CERT_FIND_CTL_USAGE

#define CERT_FIND_CTL_USAGE   CERT_FIND_ENHKEY_USAGE

Definition at line 3047 of file wincrypt.h.

◆ CERT_FIND_ENHKEY_USAGE

#define CERT_FIND_ENHKEY_USAGE    (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT)

Definition at line 3045 of file wincrypt.h.

◆ CERT_FIND_EXISTING

#define CERT_FIND_EXISTING    (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT)

Definition at line 3052 of file wincrypt.h.

◆ CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG

#define CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG   0x2

Definition at line 3064 of file wincrypt.h.

◆ CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG

#define CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG   0x2

Definition at line 3063 of file wincrypt.h.

◆ CERT_FIND_HASH

#define CERT_FIND_HASH   CERT_FIND_SHA1_HASH

Definition at line 3020 of file wincrypt.h.

◆ CERT_FIND_ISSUER_ATTR

Definition at line 3031 of file wincrypt.h.

◆ CERT_FIND_ISSUER_NAME

Definition at line 3029 of file wincrypt.h.

◆ CERT_FIND_ISSUER_OF

#define CERT_FIND_ISSUER_OF    (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT)

Definition at line 3050 of file wincrypt.h.

◆ CERT_FIND_ISSUER_STR

#define CERT_FIND_ISSUER_STR   CERT_FIND_ISSUER_STR_W

Definition at line 3042 of file wincrypt.h.

◆ CERT_FIND_ISSUER_STR_A

Definition at line 3038 of file wincrypt.h.

◆ CERT_FIND_ISSUER_STR_W

Definition at line 3040 of file wincrypt.h.

◆ CERT_FIND_KEY_IDENTIFIER

#define CERT_FIND_KEY_IDENTIFIER    (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT)

Definition at line 3018 of file wincrypt.h.

◆ CERT_FIND_KEY_SPEC

#define CERT_FIND_KEY_SPEC    (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT)

Definition at line 3043 of file wincrypt.h.

◆ CERT_FIND_MD5_HASH

#define CERT_FIND_MD5_HASH    (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT)

Definition at line 3014 of file wincrypt.h.

◆ CERT_FIND_NO_CTL_USAGE_FLAG

#define CERT_FIND_NO_CTL_USAGE_FLAG   0x8

Definition at line 3068 of file wincrypt.h.

◆ CERT_FIND_NO_ENHKEY_USAGE_FLAG

#define CERT_FIND_NO_ENHKEY_USAGE_FLAG   0x8

Definition at line 3067 of file wincrypt.h.

◆ CERT_FIND_OPTIONAL_CTL_USAGE_FLAG

#define CERT_FIND_OPTIONAL_CTL_USAGE_FLAG   0x1

Definition at line 3062 of file wincrypt.h.

◆ CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG

#define CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG   0x1

Definition at line 3061 of file wincrypt.h.

◆ CERT_FIND_OR_CTL_USAGE_FLAG

#define CERT_FIND_OR_CTL_USAGE_FLAG   0x10

Definition at line 3070 of file wincrypt.h.

◆ CERT_FIND_OR_ENHKEY_USAGE_FLAG

#define CERT_FIND_OR_ENHKEY_USAGE_FLAG   0x10

Definition at line 3069 of file wincrypt.h.

◆ CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG

#define CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG   0x4

Definition at line 3066 of file wincrypt.h.

◆ CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG

#define CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG   0x4

Definition at line 3065 of file wincrypt.h.

◆ CERT_FIND_PROPERTY

#define CERT_FIND_PROPERTY    (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT)

Definition at line 3021 of file wincrypt.h.

◆ CERT_FIND_PUBKEY_MD5_HASH

#define CERT_FIND_PUBKEY_MD5_HASH    (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT)

Definition at line 3058 of file wincrypt.h.

◆ CERT_FIND_PUBLIC_KEY

#define CERT_FIND_PUBLIC_KEY    (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT)

Definition at line 3023 of file wincrypt.h.

◆ CERT_FIND_SHA1_HASH

#define CERT_FIND_SHA1_HASH    (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT)

Definition at line 3012 of file wincrypt.h.

◆ CERT_FIND_SIGNATURE_HASH

#define CERT_FIND_SIGNATURE_HASH    (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT)

Definition at line 3016 of file wincrypt.h.

◆ CERT_FIND_SUBJECT_ATTR

#define CERT_FIND_SUBJECT_ATTR    (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)

Definition at line 3027 of file wincrypt.h.

◆ CERT_FIND_SUBJECT_CERT

#define CERT_FIND_SUBJECT_CERT    (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT)

Definition at line 3048 of file wincrypt.h.

◆ CERT_FIND_SUBJECT_NAME

#define CERT_FIND_SUBJECT_NAME    (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)

Definition at line 3025 of file wincrypt.h.

◆ CERT_FIND_SUBJECT_STR

#define CERT_FIND_SUBJECT_STR   CERT_FIND_SUBJECT_STR_W

Definition at line 3037 of file wincrypt.h.

◆ CERT_FIND_SUBJECT_STR_A

Definition at line 3033 of file wincrypt.h.

◆ CERT_FIND_SUBJECT_STR_W

Definition at line 3035 of file wincrypt.h.

◆ CERT_FIND_VALID_CTL_USAGE_FLAG

#define CERT_FIND_VALID_CTL_USAGE_FLAG   0x20

Definition at line 3072 of file wincrypt.h.

◆ CERT_FIND_VALID_ENHKEY_USAGE_FLAG

#define CERT_FIND_VALID_ENHKEY_USAGE_FLAG   0x20

Definition at line 3071 of file wincrypt.h.

◆ CERT_FIRST_RESERVED_PROP_ID

#define CERT_FIRST_RESERVED_PROP_ID   85

Definition at line 2893 of file wincrypt.h.

◆ CERT_FIRST_USER_PROP_ID

#define CERT_FIRST_USER_PROP_ID   0x00008000

Definition at line 2895 of file wincrypt.h.

◆ CERT_FORTEZZA_DATA_PROP_ID

#define CERT_FORTEZZA_DATA_PROP_ID   18

Definition at line 2851 of file wincrypt.h.

◆ CERT_FRIENDLY_NAME_PROP_ID

#define CERT_FRIENDLY_NAME_PROP_ID   11

Definition at line 2844 of file wincrypt.h.

◆ CERT_HASH_PROP_ID

#define CERT_HASH_PROP_ID   CERT_SHA1_HASH_PROP_ID

Definition at line 2835 of file wincrypt.h.

◆ CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID

#define CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID   79

Definition at line 2886 of file wincrypt.h.

◆ CERT_ID_ISSUER_SERIAL_NUMBER

#define CERT_ID_ISSUER_SERIAL_NUMBER   1

Definition at line 3838 of file wincrypt.h.

◆ CERT_ID_KEY_IDENTIFIER

#define CERT_ID_KEY_IDENTIFIER   2

Definition at line 3839 of file wincrypt.h.

◆ CERT_ID_SHA1_HASH

#define CERT_ID_SHA1_HASH   3

Definition at line 3840 of file wincrypt.h.

◆ CERT_IE30_RESERVED_PROP_ID

#define CERT_IE30_RESERVED_PROP_ID   7

Definition at line 2839 of file wincrypt.h.

◆ CERT_INFO_EXTENSION_FLAG

#define CERT_INFO_EXTENSION_FLAG   11

Definition at line 2816 of file wincrypt.h.

◆ CERT_INFO_ISSUER_FLAG

#define CERT_INFO_ISSUER_FLAG   4

Definition at line 2809 of file wincrypt.h.

◆ CERT_INFO_ISSUER_UNIQUE_ID_FLAG

#define CERT_INFO_ISSUER_UNIQUE_ID_FLAG   9

Definition at line 2814 of file wincrypt.h.

◆ CERT_INFO_NOT_AFTER_FLAG

#define CERT_INFO_NOT_AFTER_FLAG   6

Definition at line 2811 of file wincrypt.h.

◆ CERT_INFO_NOT_BEFORE_FLAG

#define CERT_INFO_NOT_BEFORE_FLAG   5

Definition at line 2810 of file wincrypt.h.

◆ CERT_INFO_SERIAL_NUMBER_FLAG

#define CERT_INFO_SERIAL_NUMBER_FLAG   2

Definition at line 2807 of file wincrypt.h.

◆ CERT_INFO_SIGNATURE_ALGORITHM_FLAG

#define CERT_INFO_SIGNATURE_ALGORITHM_FLAG   3

Definition at line 2808 of file wincrypt.h.

◆ CERT_INFO_SUBJECT_FLAG

#define CERT_INFO_SUBJECT_FLAG   7

Definition at line 2812 of file wincrypt.h.

◆ CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG

#define CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG   8

Definition at line 2813 of file wincrypt.h.

◆ CERT_INFO_SUBJECT_UNIQUE_ID_FLAG

#define CERT_INFO_SUBJECT_UNIQUE_ID_FLAG   10

Definition at line 2815 of file wincrypt.h.

◆ CERT_INFO_VERSION_FLAG

#define CERT_INFO_VERSION_FLAG   1

Definition at line 2806 of file wincrypt.h.

◆ CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID

#define CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID   24

Definition at line 2857 of file wincrypt.h.

◆ CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID

#define CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID   28

Definition at line 2861 of file wincrypt.h.

◆ CERT_KEY_AGREEMENT_KEY_USAGE

#define CERT_KEY_AGREEMENT_KEY_USAGE   0x08

Definition at line 317 of file wincrypt.h.

◆ CERT_KEY_CERT_SIGN_KEY_USAGE

#define CERT_KEY_CERT_SIGN_KEY_USAGE   0x04

Definition at line 318 of file wincrypt.h.

◆ CERT_KEY_CONTEXT_PROP_ID

#define CERT_KEY_CONTEXT_PROP_ID   5

Definition at line 2837 of file wincrypt.h.

◆ CERT_KEY_ENCIPHERMENT_KEY_USAGE

#define CERT_KEY_ENCIPHERMENT_KEY_USAGE   0x20

Definition at line 315 of file wincrypt.h.

◆ CERT_KEY_IDENTIFIER_PROP_ID

#define CERT_KEY_IDENTIFIER_PROP_ID   20

Definition at line 2853 of file wincrypt.h.

◆ CERT_KEY_PROV_HANDLE_PROP_ID

#define CERT_KEY_PROV_HANDLE_PROP_ID   1

Definition at line 2832 of file wincrypt.h.

◆ CERT_KEY_PROV_INFO_PROP_ID

#define CERT_KEY_PROV_INFO_PROP_ID   2

Definition at line 2833 of file wincrypt.h.

◆ CERT_KEY_SPEC_PROP_ID

#define CERT_KEY_SPEC_PROP_ID   6

Definition at line 2838 of file wincrypt.h.

◆ CERT_KEYGEN_REQUEST_V1

#define CERT_KEYGEN_REQUEST_V1   0

Definition at line 2822 of file wincrypt.h.

◆ CERT_LAST_RESERVED_PROP_ID

#define CERT_LAST_RESERVED_PROP_ID   0x00007fff

Definition at line 2894 of file wincrypt.h.

◆ CERT_LAST_USER_PROP_ID

#define CERT_LAST_USER_PROP_ID   0x0000ffff

Definition at line 2896 of file wincrypt.h.

◆ CERT_MAX_ENCODED_DSS_SIGNATURE_LEN

#define CERT_MAX_ENCODED_DSS_SIGNATURE_LEN   (2 + 2*(2 + 20 +1))

Definition at line 756 of file wincrypt.h.

◆ CERT_MD5_HASH_PROP_ID

#define CERT_MD5_HASH_PROP_ID   4

Definition at line 2836 of file wincrypt.h.

◆ CERT_NAME_ATTR_TYPE

#define CERT_NAME_ATTR_TYPE   3

Definition at line 3657 of file wincrypt.h.

◆ CERT_NAME_DISABLE_IE4_UTF8_FLAG

#define CERT_NAME_DISABLE_IE4_UTF8_FLAG   0x00010000

Definition at line 3666 of file wincrypt.h.

◆ CERT_NAME_DNS_TYPE

#define CERT_NAME_DNS_TYPE   6

Definition at line 3660 of file wincrypt.h.

◆ CERT_NAME_EMAIL_TYPE

#define CERT_NAME_EMAIL_TYPE   1

Definition at line 3655 of file wincrypt.h.

◆ CERT_NAME_FRIENDLY_DISPLAY_TYPE

#define CERT_NAME_FRIENDLY_DISPLAY_TYPE   5

Definition at line 3659 of file wincrypt.h.

◆ CERT_NAME_ISSUER_FLAG

#define CERT_NAME_ISSUER_FLAG   0x00000001

Definition at line 3664 of file wincrypt.h.

◆ CERT_NAME_RDN_TYPE

#define CERT_NAME_RDN_TYPE   2

Definition at line 3656 of file wincrypt.h.

◆ CERT_NAME_SEARCH_ALL_NAMES_FLAG

#define CERT_NAME_SEARCH_ALL_NAMES_FLAG   0x00000002

Definition at line 3665 of file wincrypt.h.

◆ CERT_NAME_SIMPLE_DISPLAY_TYPE

#define CERT_NAME_SIMPLE_DISPLAY_TYPE   4

Definition at line 3658 of file wincrypt.h.

◆ CERT_NAME_STR_COMMA_FLAG

#define CERT_NAME_STR_COMMA_FLAG   0x04000000

Definition at line 3649 of file wincrypt.h.

◆ CERT_NAME_STR_CRLF_FLAG

#define CERT_NAME_STR_CRLF_FLAG   0x08000000

Definition at line 3648 of file wincrypt.h.

◆ CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG

#define CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG   0x00010000

Definition at line 3653 of file wincrypt.h.

◆ CERT_NAME_STR_ENABLE_PUNYCODE_FLAG

#define CERT_NAME_STR_ENABLE_PUNYCODE_FLAG   0x00200000

Definition at line 3667 of file wincrypt.h.

◆ CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG

#define CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG   0x00020000

Definition at line 3652 of file wincrypt.h.

◆ CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG

#define CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG   0x00040000

Definition at line 3651 of file wincrypt.h.

◆ CERT_NAME_STR_NO_PLUS_FLAG

#define CERT_NAME_STR_NO_PLUS_FLAG   0x20000000

Definition at line 3646 of file wincrypt.h.

◆ CERT_NAME_STR_NO_QUOTING_FLAG

#define CERT_NAME_STR_NO_QUOTING_FLAG   0x10000000

Definition at line 3647 of file wincrypt.h.

◆ CERT_NAME_STR_REVERSE_FLAG

#define CERT_NAME_STR_REVERSE_FLAG   0x02000000

Definition at line 3650 of file wincrypt.h.

◆ CERT_NAME_STR_SEMICOLON_FLAG

#define CERT_NAME_STR_SEMICOLON_FLAG   0x40000000

Definition at line 3645 of file wincrypt.h.

◆ CERT_NAME_UPN_TYPE

#define CERT_NAME_UPN_TYPE   8

Definition at line 3662 of file wincrypt.h.

◆ CERT_NAME_URL_TYPE

#define CERT_NAME_URL_TYPE   7

Definition at line 3661 of file wincrypt.h.

◆ CERT_NCRYPT_KEY_HANDLE_PROP_ID

#define CERT_NCRYPT_KEY_HANDLE_PROP_ID   78

Definition at line 2885 of file wincrypt.h.

◆ CERT_NEW_KEY_PROP_ID

#define CERT_NEW_KEY_PROP_ID   74

Definition at line 2881 of file wincrypt.h.

◆ CERT_NEXT_UPDATE_LOCATION_PROP_ID

#define CERT_NEXT_UPDATE_LOCATION_PROP_ID   10

Definition at line 2843 of file wincrypt.h.

◆ CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID

#define CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID   77

Definition at line 2884 of file wincrypt.h.

◆ CERT_NON_REPUDIATION_KEY_USAGE

#define CERT_NON_REPUDIATION_KEY_USAGE   0x40

Definition at line 314 of file wincrypt.h.

◆ CERT_OCSP_CACHE_PREFIX_PROP_ID

#define CERT_OCSP_CACHE_PREFIX_PROP_ID   75

Definition at line 2882 of file wincrypt.h.

◆ CERT_OCSP_RESPONSE_PROP_ID

#define CERT_OCSP_RESPONSE_PROP_ID   70

Definition at line 2877 of file wincrypt.h.

◆ CERT_OFFLINE_CRL_SIGN_KEY_USAGE

#define CERT_OFFLINE_CRL_SIGN_KEY_USAGE   0x02

Definition at line 319 of file wincrypt.h.

◆ CERT_OID_NAME_STR

#define CERT_OID_NAME_STR   2

Definition at line 3643 of file wincrypt.h.

◆ CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG

#define CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG   0x1

Definition at line 2743 of file wincrypt.h.

◆ CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG

#define CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG   0x8

Definition at line 2746 of file wincrypt.h.

◆ CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG

#define CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG   0x2

Definition at line 2744 of file wincrypt.h.

◆ CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG

#define CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG   0x1

Definition at line 2749 of file wincrypt.h.

◆ CERT_PHYSICAL_STORE_REMOVE_OPEN_DISABLE_FLAG

#define CERT_PHYSICAL_STORE_REMOVE_OPEN_DISABLE_FLAG   0x4

Definition at line 2745 of file wincrypt.h.

◆ CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG

#define CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG   0x01

Definition at line 2581 of file wincrypt.h.

◆ CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG

#define CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG   0x08

Definition at line 2584 of file wincrypt.h.

◆ CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG

#define CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG   0x20

Definition at line 2586 of file wincrypt.h.

◆ CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG

#define CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG   0x10

Definition at line 2585 of file wincrypt.h.

◆ CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG

#define CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG   0x02

Definition at line 2582 of file wincrypt.h.

◆ CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG

#define CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG   0x04

Definition at line 2583 of file wincrypt.h.

◆ CERT_PUBKEY_ALG_PARA_PROP_ID

#define CERT_PUBKEY_ALG_PARA_PROP_ID   22

Definition at line 2855 of file wincrypt.h.

◆ CERT_PUBKEY_HASH_RESERVED_PROP_ID

#define CERT_PUBKEY_HASH_RESERVED_PROP_ID   8

Definition at line 2840 of file wincrypt.h.

◆ CERT_PVK_FILE_PROP_ID

#define CERT_PVK_FILE_PROP_ID   12

Definition at line 2845 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_CERT

#define CERT_QUERY_CONTENT_CERT   1

Definition at line 3689 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_CERT_PAIR

#define CERT_QUERY_CONTENT_CERT_PAIR   13

Definition at line 3701 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_CRL

#define CERT_QUERY_CONTENT_CRL   3

Definition at line 3691 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_CTL

#define CERT_QUERY_CONTENT_CTL   2

Definition at line 3690 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_ALL

#define CERT_QUERY_CONTENT_FLAG_ALL
Value:
#define CERT_QUERY_CONTENT_FLAG_CTL
Definition: wincrypt.h:3704
#define CERT_QUERY_CONTENT_FLAG_CRL
Definition: wincrypt.h:3705
#define CERT_QUERY_CONTENT_FLAG_CERT
Definition: wincrypt.h:3703
#define CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED
Definition: wincrypt.h:3716
#define CERT_QUERY_CONTENT_FLAG_CERT_PAIR
Definition: wincrypt.h:3722
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT
Definition: wincrypt.h:3708
#define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED
Definition: wincrypt.h:3714
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE
Definition: wincrypt.h:3706
#define CERT_QUERY_CONTENT_FLAG_PKCS10
Definition: wincrypt.h:3720
#define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED
Definition: wincrypt.h:3718
#define CERT_QUERY_CONTENT_FLAG_PFX
Definition: wincrypt.h:3721
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL
Definition: wincrypt.h:3712
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL
Definition: wincrypt.h:3710

Definition at line 3724 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_CERT

#define CERT_QUERY_CONTENT_FLAG_CERT   (1 << CERT_QUERY_CONTENT_CERT)

Definition at line 3703 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_CERT_PAIR

#define CERT_QUERY_CONTENT_FLAG_CERT_PAIR   (1 << CERT_QUERY_CONTENT_CERT_PAIR)

Definition at line 3722 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_CRL

#define CERT_QUERY_CONTENT_FLAG_CRL   (1 << CERT_QUERY_CONTENT_CRL)

Definition at line 3705 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_CTL

#define CERT_QUERY_CONTENT_FLAG_CTL   (1 << CERT_QUERY_CONTENT_CTL)

Definition at line 3704 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_PFX

#define CERT_QUERY_CONTENT_FLAG_PFX   (1 << CERT_QUERY_CONTENT_PFX)

Definition at line 3721 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_PKCS10

#define CERT_QUERY_CONTENT_FLAG_PKCS10   (1 << CERT_QUERY_CONTENT_PKCS10)

Definition at line 3720 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED

#define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED    (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED)

Definition at line 3714 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED

#define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED    (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED)

Definition at line 3718 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED

#define CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED    (1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED)

Definition at line 3716 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT

#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT    (1 << CERT_QUERY_CONTENT_SERIALIZED_CERT)

Definition at line 3708 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL

#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL    (1 << CERT_QUERY_CONTENT_SERIALIZED_CRL)

Definition at line 3712 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL

#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL    (1 << CERT_QUERY_CONTENT_SERIALIZED_CTL)

Definition at line 3710 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE

#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE    (1 << CERT_QUERY_CONTENT_SERIALIZED_STORE)

Definition at line 3706 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_PFX

#define CERT_QUERY_CONTENT_PFX   12

Definition at line 3700 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_PKCS10

#define CERT_QUERY_CONTENT_PKCS10   11

Definition at line 3699 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_PKCS7_SIGNED

#define CERT_QUERY_CONTENT_PKCS7_SIGNED   8

Definition at line 3696 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED

#define CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED   10

Definition at line 3698 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_PKCS7_UNSIGNED

#define CERT_QUERY_CONTENT_PKCS7_UNSIGNED   9

Definition at line 3697 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_SERIALIZED_CERT

#define CERT_QUERY_CONTENT_SERIALIZED_CERT   5

Definition at line 3693 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_SERIALIZED_CRL

#define CERT_QUERY_CONTENT_SERIALIZED_CRL   7

Definition at line 3695 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_SERIALIZED_CTL

#define CERT_QUERY_CONTENT_SERIALIZED_CTL   6

Definition at line 3694 of file wincrypt.h.

◆ CERT_QUERY_CONTENT_SERIALIZED_STORE

#define CERT_QUERY_CONTENT_SERIALIZED_STORE   4

Definition at line 3692 of file wincrypt.h.

◆ CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED

#define CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED   3

Definition at line 3741 of file wincrypt.h.

◆ CERT_QUERY_FORMAT_BASE64_ENCODED

#define CERT_QUERY_FORMAT_BASE64_ENCODED   2

Definition at line 3740 of file wincrypt.h.

◆ CERT_QUERY_FORMAT_BINARY

#define CERT_QUERY_FORMAT_BINARY   1

Definition at line 3739 of file wincrypt.h.

◆ CERT_QUERY_FORMAT_FLAG_ALL

#define CERT_QUERY_FORMAT_FLAG_ALL
Value:
#define CERT_QUERY_FORMAT_FLAG_BINARY
Definition: wincrypt.h:3743
#define CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED
Definition: wincrypt.h:3746
#define CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED
Definition: wincrypt.h:3744

Definition at line 3749 of file wincrypt.h.

◆ CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED

#define CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED    (1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED)

Definition at line 3746 of file wincrypt.h.

◆ CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED

#define CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED    (1 << CERT_QUERY_FORMAT_BASE64_ENCODED)

Definition at line 3744 of file wincrypt.h.

◆ CERT_QUERY_FORMAT_FLAG_BINARY

#define CERT_QUERY_FORMAT_FLAG_BINARY   (1 << CERT_QUERY_FORMAT_BINARY)

Definition at line 3743 of file wincrypt.h.

◆ CERT_QUERY_OBJECT_BLOB

#define CERT_QUERY_OBJECT_BLOB   2

Definition at line 3687 of file wincrypt.h.

◆ CERT_QUERY_OBJECT_FILE

#define CERT_QUERY_OBJECT_FILE   1

Definition at line 3686 of file wincrypt.h.

◆ CERT_RDN_ANY_TYPE

#define CERT_RDN_ANY_TYPE   0

Definition at line 2923 of file wincrypt.h.

◆ CERT_RDN_BMP_STRING

#define CERT_RDN_BMP_STRING   12

Definition at line 2938 of file wincrypt.h.

◆ CERT_RDN_DISABLE_CHECK_TYPE_FLAG

#define CERT_RDN_DISABLE_CHECK_TYPE_FLAG   0x4000000

Definition at line 2945 of file wincrypt.h.

◆ CERT_RDN_DISABLE_IE4_UTF8_FLAG

#define CERT_RDN_DISABLE_IE4_UTF8_FLAG   0x0100000

Definition at line 2947 of file wincrypt.h.

◆ CERT_RDN_ENABLE_T61_UNICODE_FLAG

#define CERT_RDN_ENABLE_T61_UNICODE_FLAG   0x80000000

Definition at line 2944 of file wincrypt.h.

◆ CERT_RDN_ENABLE_UTF8_UNICODE_FLAG

#define CERT_RDN_ENABLE_UTF8_UNICODE_FLAG   0x2000000

Definition at line 2946 of file wincrypt.h.

◆ CERT_RDN_ENCODED_BLOB

#define CERT_RDN_ENCODED_BLOB   1

Definition at line 2924 of file wincrypt.h.

◆ CERT_RDN_FLAGS_MASK

#define CERT_RDN_FLAGS_MASK   0xff000000

Definition at line 2943 of file wincrypt.h.

◆ CERT_RDN_GENERAL_STRING

#define CERT_RDN_GENERAL_STRING   10

Definition at line 2935 of file wincrypt.h.

◆ CERT_RDN_GRAPHIC_STRING

#define CERT_RDN_GRAPHIC_STRING   8

Definition at line 2932 of file wincrypt.h.

◆ CERT_RDN_IA5_STRING

#define CERT_RDN_IA5_STRING   7

Definition at line 2931 of file wincrypt.h.

◆ CERT_RDN_INT4_STRING

#define CERT_RDN_INT4_STRING   11

Definition at line 2937 of file wincrypt.h.

◆ CERT_RDN_ISO646_STRING

#define CERT_RDN_ISO646_STRING   9

Definition at line 2934 of file wincrypt.h.

◆ CERT_RDN_NUMERIC_STRING

#define CERT_RDN_NUMERIC_STRING   3

Definition at line 2926 of file wincrypt.h.

◆ CERT_RDN_OCTET_STRING

#define CERT_RDN_OCTET_STRING   2

Definition at line 2925 of file wincrypt.h.

◆ CERT_RDN_PRINTABLE_STRING

#define CERT_RDN_PRINTABLE_STRING   4

Definition at line 2927 of file wincrypt.h.

◆ CERT_RDN_T61_STRING

#define CERT_RDN_T61_STRING   5

Definition at line 2929 of file wincrypt.h.

◆ CERT_RDN_TELETEX_STRING

#define CERT_RDN_TELETEX_STRING   5

Definition at line 2928 of file wincrypt.h.

◆ CERT_RDN_TYPE_MASK

#define CERT_RDN_TYPE_MASK   0x000000ff

Definition at line 2922 of file wincrypt.h.

◆ CERT_RDN_UNICODE_STRING

#define CERT_RDN_UNICODE_STRING   12

Definition at line 2939 of file wincrypt.h.

◆ CERT_RDN_UNIVERSAL_STRING

#define CERT_RDN_UNIVERSAL_STRING   11

Definition at line 2936 of file wincrypt.h.

◆ CERT_RDN_UTF8_STRING

#define CERT_RDN_UTF8_STRING   13

Definition at line 2940 of file wincrypt.h.

◆ CERT_RDN_VIDEOTEX_STRING

#define CERT_RDN_VIDEOTEX_STRING   6

Definition at line 2930 of file wincrypt.h.

◆ CERT_RDN_VISIBLE_STRING

#define CERT_RDN_VISIBLE_STRING   9

Definition at line 2933 of file wincrypt.h.

◆ CERT_REGISTRY_STORE_CLIENT_GPT_FLAG

#define CERT_REGISTRY_STORE_CLIENT_GPT_FLAG   0x80000000

Definition at line 2642 of file wincrypt.h.

◆ CERT_REGISTRY_STORE_LM_GPT_FLAG

#define CERT_REGISTRY_STORE_LM_GPT_FLAG   0x01000000

Definition at line 2641 of file wincrypt.h.

◆ CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG

#define CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG   0x00080000

Definition at line 2640 of file wincrypt.h.

◆ CERT_REGISTRY_STORE_REMOTE_FLAG

#define CERT_REGISTRY_STORE_REMOTE_FLAG   0x00010000

Definition at line 2637 of file wincrypt.h.

◆ CERT_REGISTRY_STORE_ROAMING_FLAG

#define CERT_REGISTRY_STORE_ROAMING_FLAG   0x00040000

Definition at line 2639 of file wincrypt.h.

◆ CERT_REGISTRY_STORE_SERIALIZED_FLAG

#define CERT_REGISTRY_STORE_SERIALIZED_FLAG   0x00020000

Definition at line 2638 of file wincrypt.h.

◆ CERT_RENEWAL_PROP_ID

#define CERT_RENEWAL_PROP_ID   64

Definition at line 2871 of file wincrypt.h.

◆ CERT_REQUEST_ORIGINATOR_PROP_ID

#define CERT_REQUEST_ORIGINATOR_PROP_ID   71

Definition at line 2878 of file wincrypt.h.

◆ CERT_REQUEST_V1

#define CERT_REQUEST_V1   0

Definition at line 2819 of file wincrypt.h.

◆ CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID

#define CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID   83

Definition at line 2890 of file wincrypt.h.

◆ CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID

#define CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID   84

Definition at line 2891 of file wincrypt.h.

◆ CERT_RSA_PUBLIC_KEY_OBJID

#define CERT_RSA_PUBLIC_KEY_OBJID   szOID_RSA_RSA

Definition at line 3169 of file wincrypt.h.

◆ CERT_SET_KEY_CONTEXT_PROP_ID

#define CERT_SET_KEY_CONTEXT_PROP_ID   0x00000001

Definition at line 3755 of file wincrypt.h.

◆ CERT_SET_KEY_PROV_HANDLE_PROP_ID

#define CERT_SET_KEY_PROV_HANDLE_PROP_ID   0x00000001

Definition at line 3754 of file wincrypt.h.

◆ CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG

#define CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG   0x80000000

Definition at line 2919 of file wincrypt.h.

◆ CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG

#define CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG   0x40000000

Definition at line 2918 of file wincrypt.h.

◆ CERT_SHA1_HASH_PROP_ID

#define CERT_SHA1_HASH_PROP_ID   3

Definition at line 2834 of file wincrypt.h.

◆ CERT_SIGNATURE_HASH_PROP_ID

#define CERT_SIGNATURE_HASH_PROP_ID   15

Definition at line 2848 of file wincrypt.h.

◆ CERT_SIMPLE_NAME_STR

#define CERT_SIMPLE_NAME_STR   1

Definition at line 3642 of file wincrypt.h.

◆ CERT_SMART_CARD_DATA_PROP_ID

#define CERT_SMART_CARD_DATA_PROP_ID   16

Definition at line 2849 of file wincrypt.h.

◆ CERT_SMART_CARD_ROOT_INFO_PROP_ID

#define CERT_SMART_CARD_ROOT_INFO_PROP_ID   76

Definition at line 2883 of file wincrypt.h.

◆ CERT_SOURCE_LOCATION_PROP_ID

#define CERT_SOURCE_LOCATION_PROP_ID   72

Definition at line 2879 of file wincrypt.h.

◆ CERT_SOURCE_URL_PROP_ID

#define CERT_SOURCE_URL_PROP_ID   73

Definition at line 2880 of file wincrypt.h.

◆ CERT_STORE_ADD_ALWAYS

#define CERT_STORE_ADD_ALWAYS   4

Definition at line 2654 of file wincrypt.h.

◆ CERT_STORE_ADD_NEW

#define CERT_STORE_ADD_NEW   1

Definition at line 2651 of file wincrypt.h.

◆ CERT_STORE_ADD_NEWER

#define CERT_STORE_ADD_NEWER   6

Definition at line 2656 of file wincrypt.h.

◆ CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES

#define CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES   7

Definition at line 2657 of file wincrypt.h.

◆ CERT_STORE_ADD_REPLACE_EXISTING

#define CERT_STORE_ADD_REPLACE_EXISTING   3

Definition at line 2653 of file wincrypt.h.

◆ CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES

#define CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES   5

Definition at line 2655 of file wincrypt.h.

◆ CERT_STORE_ADD_USE_EXISTING

#define CERT_STORE_ADD_USE_EXISTING   2

Definition at line 2652 of file wincrypt.h.

◆ CERT_STORE_ALL_CONTEXT_FLAG

#define CERT_STORE_ALL_CONTEXT_FLAG   ~0U

Definition at line 3124 of file wincrypt.h.

◆ CERT_STORE_BACKUP_RESTORE_FLAG

#define CERT_STORE_BACKUP_RESTORE_FLAG   0x00000800

Definition at line 2631 of file wincrypt.h.

◆ CERT_STORE_BASE_CRL_FLAG

#define CERT_STORE_BASE_CRL_FLAG   0x00000100

Definition at line 3622 of file wincrypt.h.

◆ CERT_STORE_CERTIFICATE_CONTEXT

#define CERT_STORE_CERTIFICATE_CONTEXT   1

Definition at line 3121 of file wincrypt.h.

◆ CERT_STORE_CERTIFICATE_CONTEXT_FLAG

#define CERT_STORE_CERTIFICATE_CONTEXT_FLAG    (1 << CERT_STORE_CERTIFICATE_CONTEXT)

Definition at line 3125 of file wincrypt.h.

◆ CERT_STORE_CREATE_NEW_FLAG

#define CERT_STORE_CREATE_NEW_FLAG   0x00002000

Definition at line 2633 of file wincrypt.h.

◆ CERT_STORE_CRL_CONTEXT

#define CERT_STORE_CRL_CONTEXT   2

Definition at line 3122 of file wincrypt.h.

◆ CERT_STORE_CRL_CONTEXT_FLAG

#define CERT_STORE_CRL_CONTEXT_FLAG   (1 << CERT_STORE_CRL_CONTEXT)

Definition at line 3127 of file wincrypt.h.

◆ CERT_STORE_CTL_CONTEXT

#define CERT_STORE_CTL_CONTEXT   3

Definition at line 3123 of file wincrypt.h.

◆ CERT_STORE_CTL_CONTEXT_FLAG

#define CERT_STORE_CTL_CONTEXT_FLAG   (1 << CERT_STORE_CTL_CONTEXT)

Definition at line 3128 of file wincrypt.h.

◆ CERT_STORE_CTRL_AUTO_RESYNC

#define CERT_STORE_CTRL_AUTO_RESYNC   4

Definition at line 2970 of file wincrypt.h.

◆ CERT_STORE_CTRL_CANCEL_NOTIFY

#define CERT_STORE_CTRL_CANCEL_NOTIFY   5

Definition at line 2971 of file wincrypt.h.

◆ CERT_STORE_CTRL_COMMIT

#define CERT_STORE_CTRL_COMMIT   3

Definition at line 2969 of file wincrypt.h.

◆ CERT_STORE_CTRL_COMMIT_CLEAR_FLAG

#define CERT_STORE_CTRL_COMMIT_CLEAR_FLAG   0x2

Definition at line 2974 of file wincrypt.h.

◆ CERT_STORE_CTRL_COMMIT_FORCE_FLAG

#define CERT_STORE_CTRL_COMMIT_FORCE_FLAG   0x1

Definition at line 2973 of file wincrypt.h.

◆ CERT_STORE_CTRL_NOTIFY_CHANGE

#define CERT_STORE_CTRL_NOTIFY_CHANGE   2

Definition at line 2968 of file wincrypt.h.

◆ CERT_STORE_CTRL_RESYNC

#define CERT_STORE_CTRL_RESYNC   1

Definition at line 2967 of file wincrypt.h.

◆ CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG

#define CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG   0x00000004

Definition at line 2623 of file wincrypt.h.

◆ CERT_STORE_DELETE_FLAG

#define CERT_STORE_DELETE_FLAG   0x00000010

Definition at line 2624 of file wincrypt.h.

◆ CERT_STORE_DELTA_CRL_FLAG

#define CERT_STORE_DELTA_CRL_FLAG   0x00000200

Definition at line 3623 of file wincrypt.h.

◆ CERT_STORE_ENUM_ARCHIVED_FLAG

#define CERT_STORE_ENUM_ARCHIVED_FLAG   0x00000200

Definition at line 2629 of file wincrypt.h.

◆ CERT_STORE_LOCALIZED_NAME_PROP_ID

#define CERT_STORE_LOCALIZED_NAME_PROP_ID   0x1000

Definition at line 2977 of file wincrypt.h.

◆ CERT_STORE_MANIFOLD_FLAG

#define CERT_STORE_MANIFOLD_FLAG   0x00000100

Definition at line 2628 of file wincrypt.h.

◆ CERT_STORE_MAXIMUM_ALLOWED_FLAG

#define CERT_STORE_MAXIMUM_ALLOWED_FLAG   0x00001000

Definition at line 2632 of file wincrypt.h.

◆ CERT_STORE_NO_CRL_FLAG

#define CERT_STORE_NO_CRL_FLAG   0x00010000

Definition at line 3619 of file wincrypt.h.

◆ CERT_STORE_NO_CRYPT_RELEASE_FLAG

#define CERT_STORE_NO_CRYPT_RELEASE_FLAG   0x00000001

Definition at line 2621 of file wincrypt.h.

◆ CERT_STORE_NO_ISSUER_FLAG

#define CERT_STORE_NO_ISSUER_FLAG   0x00020000

Definition at line 3620 of file wincrypt.h.

◆ CERT_STORE_OPEN_EXISTING_FLAG

#define CERT_STORE_OPEN_EXISTING_FLAG   0x00004000

Definition at line 2634 of file wincrypt.h.

◆ CERT_STORE_PROV_CLOSE_FUNC

#define CERT_STORE_PROV_CLOSE_FUNC   0

Definition at line 2716 of file wincrypt.h.

◆ CERT_STORE_PROV_COLLECTION

#define CERT_STORE_PROV_COLLECTION   ((LPCSTR)11)

Definition at line 2465 of file wincrypt.h.

◆ CERT_STORE_PROV_CONTROL_FUNC

#define CERT_STORE_PROV_CONTROL_FUNC   13

Definition at line 2729 of file wincrypt.h.

◆ CERT_STORE_PROV_DELETE_CERT_FUNC

#define CERT_STORE_PROV_DELETE_CERT_FUNC   3

Definition at line 2719 of file wincrypt.h.

◆ CERT_STORE_PROV_DELETE_CRL_FUNC

#define CERT_STORE_PROV_DELETE_CRL_FUNC   7

Definition at line 2723 of file wincrypt.h.

◆ CERT_STORE_PROV_DELETE_CTL_FUNC

#define CERT_STORE_PROV_DELETE_CTL_FUNC   11

Definition at line 2727 of file wincrypt.h.

◆ CERT_STORE_PROV_DELETED_FLAG

#define CERT_STORE_PROV_DELETED_FLAG   0x2

Definition at line 2710 of file wincrypt.h.

◆ CERT_STORE_PROV_EXTERNAL_FLAG

#define CERT_STORE_PROV_EXTERNAL_FLAG   0x1

Definition at line 2709 of file wincrypt.h.

◆ CERT_STORE_PROV_FILE

#define CERT_STORE_PROV_FILE   ((LPCSTR)3)

Definition at line 2456 of file wincrypt.h.

◆ CERT_STORE_PROV_FILENAME_A

#define CERT_STORE_PROV_FILENAME_A   ((LPCSTR)7)

Definition at line 2460 of file wincrypt.h.

◆ CERT_STORE_PROV_FILENAME_W

#define CERT_STORE_PROV_FILENAME_W   ((LPCSTR)8)

Definition at line 2461 of file wincrypt.h.

◆ CERT_STORE_PROV_FIND_CERT_FUNC

#define CERT_STORE_PROV_FIND_CERT_FUNC   14

Definition at line 2730 of file wincrypt.h.

◆ CERT_STORE_PROV_FIND_CRL_FUNC

#define CERT_STORE_PROV_FIND_CRL_FUNC   17

Definition at line 2733 of file wincrypt.h.

◆ CERT_STORE_PROV_FIND_CTL_FUNC

#define CERT_STORE_PROV_FIND_CTL_FUNC   20

Definition at line 2736 of file wincrypt.h.

◆ CERT_STORE_PROV_FREE_FIND_CERT_FUNC

#define CERT_STORE_PROV_FREE_FIND_CERT_FUNC   15

Definition at line 2731 of file wincrypt.h.

◆ CERT_STORE_PROV_FREE_FIND_CRL_FUNC

#define CERT_STORE_PROV_FREE_FIND_CRL_FUNC   18

Definition at line 2734 of file wincrypt.h.

◆ CERT_STORE_PROV_FREE_FIND_CTL_FUNC

#define CERT_STORE_PROV_FREE_FIND_CTL_FUNC   21

Definition at line 2737 of file wincrypt.h.

◆ CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC

#define CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC   16

Definition at line 2732 of file wincrypt.h.

◆ CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC

#define CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC   19

Definition at line 2735 of file wincrypt.h.

◆ CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC

#define CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC   22

Definition at line 2738 of file wincrypt.h.

◆ CERT_STORE_PROV_LDAP

#define CERT_STORE_PROV_LDAP   CERT_STORE_PROV_LDAP_W

Definition at line 2474 of file wincrypt.h.

◆ CERT_STORE_PROV_LDAP_W

#define CERT_STORE_PROV_LDAP_W   ((LPCSTR)16)

Definition at line 2473 of file wincrypt.h.

◆ CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG

#define CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG   0x10

Definition at line 2713 of file wincrypt.h.

◆ CERT_STORE_PROV_MEMORY

#define CERT_STORE_PROV_MEMORY   ((LPCSTR)2)

Definition at line 2455 of file wincrypt.h.

◆ CERT_STORE_PROV_MSG

#define CERT_STORE_PROV_MSG   ((LPCSTR)1)

Definition at line 2454 of file wincrypt.h.

◆ CERT_STORE_PROV_NO_PERSIST_FLAG

#define CERT_STORE_PROV_NO_PERSIST_FLAG   0x4

Definition at line 2711 of file wincrypt.h.

◆ CERT_STORE_PROV_PHYSICAL

#define CERT_STORE_PROV_PHYSICAL   CERT_STORE_PROV_PHYSICAL_W

Definition at line 2470 of file wincrypt.h.

◆ CERT_STORE_PROV_PHYSICAL_W

#define CERT_STORE_PROV_PHYSICAL_W   ((LPCSTR)14)

Definition at line 2469 of file wincrypt.h.

◆ CERT_STORE_PROV_PKCS7

#define CERT_STORE_PROV_PKCS7   ((LPCSTR)5)

Definition at line 2458 of file wincrypt.h.

◆ CERT_STORE_PROV_READ_CERT_FUNC

#define CERT_STORE_PROV_READ_CERT_FUNC   1

Definition at line 2717 of file wincrypt.h.

◆ CERT_STORE_PROV_READ_CRL_FUNC

#define CERT_STORE_PROV_READ_CRL_FUNC   5

Definition at line 2721 of file wincrypt.h.

◆ CERT_STORE_PROV_READ_CTL_FUNC

#define CERT_STORE_PROV_READ_CTL_FUNC   9

Definition at line 2725 of file wincrypt.h.

◆ CERT_STORE_PROV_REG

#define CERT_STORE_PROV_REG   ((LPCSTR)4)

Definition at line 2457 of file wincrypt.h.

◆ CERT_STORE_PROV_SERIALIZED

#define CERT_STORE_PROV_SERIALIZED   ((LPCSTR)6)

Definition at line 2459 of file wincrypt.h.

◆ CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC

#define CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC   4

Definition at line 2720 of file wincrypt.h.

◆ CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC

#define CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC   8

Definition at line 2724 of file wincrypt.h.

◆ CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC

#define CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC   12

Definition at line 2728 of file wincrypt.h.

◆ CERT_STORE_PROV_SMART_CARD

#define CERT_STORE_PROV_SMART_CARD   CERT_STORE_PROV_SMART_CARD_W

Definition at line 2472 of file wincrypt.h.

◆ CERT_STORE_PROV_SMART_CARD_W

#define CERT_STORE_PROV_SMART_CARD_W   ((LPCSTR)15)

Definition at line 2471 of file wincrypt.h.

◆ CERT_STORE_PROV_SYSTEM

#define CERT_STORE_PROV_SYSTEM   CERT_STORE_PROV_SYSTEM_W

Definition at line 2464 of file wincrypt.h.

◆ CERT_STORE_PROV_SYSTEM_A

#define CERT_STORE_PROV_SYSTEM_A   ((LPCSTR)9)

Definition at line 2462 of file wincrypt.h.

◆ CERT_STORE_PROV_SYSTEM_REGISTRY

#define CERT_STORE_PROV_SYSTEM_REGISTRY   CERT_STORE_PROV_SYSTEM_REGISTRY_W

Definition at line 2468 of file wincrypt.h.

◆ CERT_STORE_PROV_SYSTEM_REGISTRY_A

#define CERT_STORE_PROV_SYSTEM_REGISTRY_A   ((LPCSTR)12)

Definition at line 2466 of file wincrypt.h.

◆ CERT_STORE_PROV_SYSTEM_REGISTRY_W

#define CERT_STORE_PROV_SYSTEM_REGISTRY_W   ((LPCSTR)13)

Definition at line 2467 of file wincrypt.h.

◆ CERT_STORE_PROV_SYSTEM_STORE_FLAG

#define CERT_STORE_PROV_SYSTEM_STORE_FLAG   0x8

Definition at line 2712 of file wincrypt.h.

◆ CERT_STORE_PROV_SYSTEM_W

#define CERT_STORE_PROV_SYSTEM_W   ((LPCSTR)10)

Definition at line 2463 of file wincrypt.h.

◆ CERT_STORE_PROV_WRITE_ADD_FLAG

#define CERT_STORE_PROV_WRITE_ADD_FLAG   0x1

Definition at line 3118 of file wincrypt.h.

◆ CERT_STORE_PROV_WRITE_CERT_FUNC

#define CERT_STORE_PROV_WRITE_CERT_FUNC   2

Definition at line 2718 of file wincrypt.h.

◆ CERT_STORE_PROV_WRITE_CRL_FUNC

#define CERT_STORE_PROV_WRITE_CRL_FUNC   6

Definition at line 2722 of file wincrypt.h.

◆ CERT_STORE_PROV_WRITE_CTL_FUNC

#define CERT_STORE_PROV_WRITE_CTL_FUNC   10

Definition at line 2726 of file wincrypt.h.

◆ CERT_STORE_READONLY_FLAG

#define CERT_STORE_READONLY_FLAG   0x00008000

Definition at line 2635 of file wincrypt.h.

◆ CERT_STORE_REVOCATION_FLAG

#define CERT_STORE_REVOCATION_FLAG   0x00000004

Definition at line 3618 of file wincrypt.h.

◆ CERT_STORE_SAVE_AS_PKCS7

#define CERT_STORE_SAVE_AS_PKCS7   2

Definition at line 2794 of file wincrypt.h.

◆ CERT_STORE_SAVE_AS_STORE

#define CERT_STORE_SAVE_AS_STORE   1

Definition at line 2793 of file wincrypt.h.

◆ CERT_STORE_SAVE_TO_FILE

#define CERT_STORE_SAVE_TO_FILE   1

Definition at line 2796 of file wincrypt.h.

◆ CERT_STORE_SAVE_TO_FILENAME

#define CERT_STORE_SAVE_TO_FILENAME   CERT_STORE_SAVE_TO_FILENAME_W

Definition at line 2800 of file wincrypt.h.

◆ CERT_STORE_SAVE_TO_FILENAME_A

#define CERT_STORE_SAVE_TO_FILENAME_A   3

Definition at line 2798 of file wincrypt.h.

◆ CERT_STORE_SAVE_TO_FILENAME_W

#define CERT_STORE_SAVE_TO_FILENAME_W   4

Definition at line 2799 of file wincrypt.h.

◆ CERT_STORE_SAVE_TO_MEMORY

#define CERT_STORE_SAVE_TO_MEMORY   2

Definition at line 2797 of file wincrypt.h.

◆ CERT_STORE_SET_LOCALIZED_NAME_FLAG

#define CERT_STORE_SET_LOCALIZED_NAME_FLAG   0x00000002

Definition at line 2622 of file wincrypt.h.

◆ CERT_STORE_SHARE_CONTEXT_FLAG

#define CERT_STORE_SHARE_CONTEXT_FLAG   0x00000080

Definition at line 2627 of file wincrypt.h.

◆ CERT_STORE_SHARE_STORE_FLAG

#define CERT_STORE_SHARE_STORE_FLAG   0x00000040

Definition at line 2626 of file wincrypt.h.

◆ CERT_STORE_SIGNATURE_FLAG

#define CERT_STORE_SIGNATURE_FLAG   0x00000001

Definition at line 3616 of file wincrypt.h.

◆ CERT_STORE_TIME_VALIDITY_FLAG

#define CERT_STORE_TIME_VALIDITY_FLAG   0x00000002

Definition at line 3617 of file wincrypt.h.

◆ CERT_STORE_UNSAFE_PHYSICAL_FLAG

#define CERT_STORE_UNSAFE_PHYSICAL_FLAG   0x00000020

Definition at line 2625 of file wincrypt.h.

◆ CERT_STORE_UPDATE_KEYID_FLAG

#define CERT_STORE_UPDATE_KEYID_FLAG   0x00000400

Definition at line 2630 of file wincrypt.h.

◆ CERT_STRONG_SIGN_ENABLE_CRL_CHECK

#define CERT_STRONG_SIGN_ENABLE_CRL_CHECK   0x1

Definition at line 4265 of file wincrypt.h.

◆ CERT_STRONG_SIGN_ENABLE_OCSP_CHECK

#define CERT_STRONG_SIGN_ENABLE_OCSP_CHECK   0x2

Definition at line 4266 of file wincrypt.h.

◆ CERT_STRONG_SIGN_OID_INFO_CHOICE

#define CERT_STRONG_SIGN_OID_INFO_CHOICE   2

Definition at line 4263 of file wincrypt.h.

◆ CERT_STRONG_SIGN_SERIALIZED_INFO_CHOICE

#define CERT_STRONG_SIGN_SERIALIZED_INFO_CHOICE   1

Definition at line 4262 of file wincrypt.h.

◆ CERT_SUBJECT_INFO_ACCESS_PROP_ID

#define CERT_SUBJECT_INFO_ACCESS_PROP_ID   80

Definition at line 2887 of file wincrypt.h.

◆ CERT_SUBJECT_NAME_MD5_HASH_PROP_ID

#define CERT_SUBJECT_NAME_MD5_HASH_PROP_ID   29

Definition at line 2862 of file wincrypt.h.

◆ CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID

#define CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID   25

Definition at line 2858 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_CURRENT_SERVICE

#define CERT_SYSTEM_STORE_CURRENT_SERVICE    (CERT_SYSTEM_STORE_CURRENT_SERVICE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)

Definition at line 2532 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_CURRENT_SERVICE_ID

#define CERT_SYSTEM_STORE_CURRENT_SERVICE_ID   4

Definition at line 2516 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_CURRENT_USER

Definition at line 2528 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY

#define CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY    (CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)

Definition at line 2538 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID

#define CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID   7

Definition at line 2521 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_CURRENT_USER_ID

#define CERT_SYSTEM_STORE_CURRENT_USER_ID   1

Definition at line 2512 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_LOCAL_MACHINE

#define CERT_SYSTEM_STORE_LOCAL_MACHINE    (CERT_SYSTEM_STORE_LOCAL_MACHINE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)

Definition at line 2530 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE

#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE    (CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)

Definition at line 2542 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID

#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID   9

Definition at line 2525 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY

#define CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY    (CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)

Definition at line 2540 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID

#define CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID   8

Definition at line 2523 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_LOCAL_MACHINE_ID

#define CERT_SYSTEM_STORE_LOCAL_MACHINE_ID   2

Definition at line 2514 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_LOCATION_MASK

#define CERT_SYSTEM_STORE_LOCATION_MASK   0x00ff0000

Definition at line 2507 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_LOCATION_SHIFT

#define CERT_SYSTEM_STORE_LOCATION_SHIFT   16

Definition at line 2508 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_MASK

#define CERT_SYSTEM_STORE_MASK   0xffff0000

Definition at line 2786 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_RELOCATE_FLAG

#define CERT_SYSTEM_STORE_RELOCATE_FLAG   0x80000000

Definition at line 2787 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_SERVICES

Definition at line 2534 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_SERVICES_ID

#define CERT_SYSTEM_STORE_SERVICES_ID   5

Definition at line 2517 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_USERS

Definition at line 2536 of file wincrypt.h.

◆ CERT_SYSTEM_STORE_USERS_ID

#define CERT_SYSTEM_STORE_USERS_ID   6

Definition at line 2519 of file wincrypt.h.

◆ CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID

#define CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID   0x00040000

Definition at line 1005 of file wincrypt.h.

◆ CERT_TRUST_CTL_IS_NOT_TIME_VALID

#define CERT_TRUST_CTL_IS_NOT_TIME_VALID   0x00020000

Definition at line 1004 of file wincrypt.h.

◆ CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE

#define CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE   0x00080000

Definition at line 1006 of file wincrypt.h.

◆ CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED

#define CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED   0x00001000

Definition at line 1017 of file wincrypt.h.

◆ CERT_TRUST_HAS_EXACT_MATCH_ISSUER

#define CERT_TRUST_HAS_EXACT_MATCH_ISSUER   0x00000001

Definition at line 1008 of file wincrypt.h.

◆ CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT

#define CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT   0x00008000

Definition at line 997 of file wincrypt.h.

◆ CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY

#define CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY   0x00000200

Definition at line 1014 of file wincrypt.h.

◆ CERT_TRUST_HAS_KEY_MATCH_ISSUER

#define CERT_TRUST_HAS_KEY_MATCH_ISSUER   0x00000002

Definition at line 1009 of file wincrypt.h.

◆ CERT_TRUST_HAS_NAME_MATCH_ISSUER

#define CERT_TRUST_HAS_NAME_MATCH_ISSUER   0x00000004

Definition at line 1010 of file wincrypt.h.

◆ CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT

#define CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT   0x00002000

Definition at line 995 of file wincrypt.h.

◆ CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT

#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT   0x00004000

Definition at line 996 of file wincrypt.h.

◆ CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT

#define CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT   0x08000000

Definition at line 1001 of file wincrypt.h.

◆ CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT

#define CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT   0x00001000

Definition at line 994 of file wincrypt.h.

◆ CERT_TRUST_HAS_PREFERRED_ISSUER

#define CERT_TRUST_HAS_PREFERRED_ISSUER   0x00000100

Definition at line 1013 of file wincrypt.h.

◆ CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS

#define CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS   0x00000400

Definition at line 1015 of file wincrypt.h.

◆ CERT_TRUST_INVALID_BASIC_CONSTRAINTS

#define CERT_TRUST_INVALID_BASIC_CONSTRAINTS   0x00000400

Definition at line 992 of file wincrypt.h.

◆ CERT_TRUST_INVALID_EXTENSION

#define CERT_TRUST_INVALID_EXTENSION   0x00000100

Definition at line 990 of file wincrypt.h.

◆ CERT_TRUST_INVALID_NAME_CONSTRAINTS

#define CERT_TRUST_INVALID_NAME_CONSTRAINTS   0x00000800

Definition at line 993 of file wincrypt.h.

◆ CERT_TRUST_INVALID_POLICY_CONSTRAINTS

#define CERT_TRUST_INVALID_POLICY_CONSTRAINTS   0x00000200

Definition at line 991 of file wincrypt.h.

◆ CERT_TRUST_IS_COMPLEX_CHAIN

#define CERT_TRUST_IS_COMPLEX_CHAIN   0x00010000

Definition at line 1019 of file wincrypt.h.

◆ CERT_TRUST_IS_CYCLIC

#define CERT_TRUST_IS_CYCLIC   0x00000080

Definition at line 989 of file wincrypt.h.

◆ CERT_TRUST_IS_EXPLICIT_DISTRUST

#define CERT_TRUST_IS_EXPLICIT_DISTRUST   0x04000000

Definition at line 1000 of file wincrypt.h.

◆ CERT_TRUST_IS_NOT_SIGNATURE_VALID

#define CERT_TRUST_IS_NOT_SIGNATURE_VALID   0x00000008

Definition at line 985 of file wincrypt.h.

◆ CERT_TRUST_IS_NOT_TIME_NESTED

#define CERT_TRUST_IS_NOT_TIME_NESTED   0x00000002

Definition at line 983 of file wincrypt.h.

◆ CERT_TRUST_IS_NOT_TIME_VALID

#define CERT_TRUST_IS_NOT_TIME_VALID   0x00000001

Definition at line 982 of file wincrypt.h.

◆ CERT_TRUST_IS_NOT_VALID_FOR_USAGE

#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE   0x00000010

Definition at line 986 of file wincrypt.h.

◆ CERT_TRUST_IS_OFFLINE_REVOCATION

#define CERT_TRUST_IS_OFFLINE_REVOCATION   0x01000000

Definition at line 998 of file wincrypt.h.

◆ CERT_TRUST_IS_PARTIAL_CHAIN

#define CERT_TRUST_IS_PARTIAL_CHAIN   0x00010000

Definition at line 1003 of file wincrypt.h.

◆ CERT_TRUST_IS_PEER_TRUSTED

#define CERT_TRUST_IS_PEER_TRUSTED   0x00000800

Definition at line 1016 of file wincrypt.h.

◆ CERT_TRUST_IS_REVOKED

#define CERT_TRUST_IS_REVOKED   0x00000004

Definition at line 984 of file wincrypt.h.

◆ CERT_TRUST_IS_SELF_SIGNED

#define CERT_TRUST_IS_SELF_SIGNED   0x00000008

Definition at line 1011 of file wincrypt.h.

◆ CERT_TRUST_IS_UNTRUSTED_ROOT

#define CERT_TRUST_IS_UNTRUSTED_ROOT   0x00000020

Definition at line 987 of file wincrypt.h.

◆ CERT_TRUST_NO_ERROR

#define CERT_TRUST_NO_ERROR   0x00000000

Definition at line 981 of file wincrypt.h.

◆ CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY

#define CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY   0x02000000

Definition at line 999 of file wincrypt.h.

◆ CERT_TRUST_PUB_ALLOW_END_USER_TRUST

#define CERT_TRUST_PUB_ALLOW_END_USER_TRUST   0x00000000

Definition at line 2613 of file wincrypt.h.

◆ CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST

#define CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST   0x00000002

Definition at line 2615 of file wincrypt.h.

◆ CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST

#define CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST   0x00000001

Definition at line 2614 of file wincrypt.h.

◆ CERT_TRUST_PUB_ALLOW_TRUST_MASK

#define CERT_TRUST_PUB_ALLOW_TRUST_MASK   0x00000003

Definition at line 2616 of file wincrypt.h.

◆ CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG

#define CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG   0x00000100

Definition at line 2617 of file wincrypt.h.

◆ CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG

#define CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG   0x00000200

Definition at line 2618 of file wincrypt.h.

◆ CERT_TRUST_REVOCATION_STATUS_UNKNOWN

#define CERT_TRUST_REVOCATION_STATUS_UNKNOWN   0x00000040

Definition at line 988 of file wincrypt.h.

◆ CERT_UNICODE_IS_RDN_ATTRS_FLAG

#define CERT_UNICODE_IS_RDN_ATTRS_FLAG   0x1

Definition at line 2953 of file wincrypt.h.

◆ CERT_V1

#define CERT_V1   0

Definition at line 2803 of file wincrypt.h.

◆ CERT_V2

#define CERT_V2   1

Definition at line 2804 of file wincrypt.h.

◆ CERT_V3

#define CERT_V3   2

Definition at line 2805 of file wincrypt.h.

◆ CERT_VERIFY_ALLOW_MORE_USAGE_FLAG

#define CERT_VERIFY_ALLOW_MORE_USAGE_FLAG   0x8

Definition at line 957 of file wincrypt.h.

◆ CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION

#define CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION   0x00000002

Definition at line 932 of file wincrypt.h.

◆ CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG

#define CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG   0x1

Definition at line 954 of file wincrypt.h.

◆ CERT_VERIFY_NO_TIME_CHECK_FLAG

#define CERT_VERIFY_NO_TIME_CHECK_FLAG   0x4

Definition at line 956 of file wincrypt.h.

◆ CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG

#define CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG   0x00000004

Definition at line 933 of file wincrypt.h.

◆ CERT_VERIFY_REV_CHAIN_FLAG

#define CERT_VERIFY_REV_CHAIN_FLAG   0x00000001

Definition at line 931 of file wincrypt.h.

◆ CERT_VERIFY_TRUSTED_SIGNERS_FLAG

#define CERT_VERIFY_TRUSTED_SIGNERS_FLAG   0x2

Definition at line 955 of file wincrypt.h.

◆ CERT_VERIFY_UPDATED_CTL_FLAG

#define CERT_VERIFY_UPDATED_CTL_FLAG   0x1

Definition at line 958 of file wincrypt.h.

◆ CERT_X500_NAME_STR

#define CERT_X500_NAME_STR   3

Definition at line 3644 of file wincrypt.h.

◆ CertAddEncodedCertificateToSystemStore

#define CertAddEncodedCertificateToSystemStore    WINELIB_NAME_AW(CertAddEncodedCertificateToSystemStore)

Definition at line 6630 of file wincrypt.h.

◆ CertGetNameString

#define CertGetNameString   WINELIB_NAME_AW(CertGetNameString)

Definition at line 6866 of file wincrypt.h.

◆ CertNameToStr

#define CertNameToStr   WINELIB_NAME_AW(CertNameToStr)

Definition at line 6878 of file wincrypt.h.

◆ CertOpenSystemStore

#define CertOpenSystemStore   WINELIB_NAME_AW(CertOpenSystemStore)

Definition at line 6483 of file wincrypt.h.

◆ CertRDNValueToStr

#define CertRDNValueToStr   WINELIB_NAME_AW(CertRDNValueToStr)

Definition at line 6872 of file wincrypt.h.

◆ CertStrToName

#define CertStrToName   WINELIB_NAME_AW(CertStrToName)

Definition at line 6886 of file wincrypt.h.

◆ CMC_ADD_ATTRIBUTES

#define CMC_ADD_ATTRIBUTES   ((LPCSTR)63)

Definition at line 3585 of file wincrypt.h.

◆ CMC_ADD_EXTENSIONS

#define CMC_ADD_EXTENSIONS   ((LPCSTR)62)

Definition at line 3584 of file wincrypt.h.

◆ CMC_DATA

#define CMC_DATA   ((LPCSTR)59)

Definition at line 3581 of file wincrypt.h.

◆ CMC_RESPONSE

#define CMC_RESPONSE   ((LPCSTR)60)

Definition at line 3582 of file wincrypt.h.

◆ CMC_STATUS

#define CMC_STATUS   ((LPCSTR)61)

Definition at line 3583 of file wincrypt.h.

◆ CMS_SIGNER_INFO

#define CMS_SIGNER_INFO   ((LPCSTR)501)

Definition at line 3595 of file wincrypt.h.

◆ CMSG_ALL_FLAGS

#define CMSG_ALL_FLAGS   ~0U

Definition at line 3851 of file wincrypt.h.

◆ CMSG_ATTR_CERT_COUNT_PARAM

#define CMSG_ATTR_CERT_COUNT_PARAM   31

Definition at line 4116 of file wincrypt.h.

◆ CMSG_ATTR_CERT_PARAM

#define CMSG_ATTR_CERT_PARAM   32

Definition at line 4117 of file wincrypt.h.

◆ CMSG_AUTHENTICATED_ATTRIBUTES_FLAG

#define CMSG_AUTHENTICATED_ATTRIBUTES_FLAG   0x00000008

Definition at line 4028 of file wincrypt.h.

◆ CMSG_BARE_CONTENT_FLAG

#define CMSG_BARE_CONTENT_FLAG   0x00000001

Definition at line 4025 of file wincrypt.h.

◆ CMSG_BARE_CONTENT_PARAM

#define CMSG_BARE_CONTENT_PARAM   3

Definition at line 4092 of file wincrypt.h.

◆ CMSG_CERT_COUNT_PARAM

#define CMSG_CERT_COUNT_PARAM   11

Definition at line 4100 of file wincrypt.h.

◆ CMSG_CERT_PARAM

#define CMSG_CERT_PARAM   12

Definition at line 4101 of file wincrypt.h.

◆ CMSG_CMS_ENCAPSULATED_CONTENT_FLAG

#define CMSG_CMS_ENCAPSULATED_CONTENT_FLAG   0x00000040

Definition at line 4031 of file wincrypt.h.

◆ CMSG_CMS_ENCAPSULATED_CTL_FLAG

#define CMSG_CMS_ENCAPSULATED_CTL_FLAG   0x00008000

Definition at line 4313 of file wincrypt.h.

◆ CMSG_CMS_RECIPIENT_COUNT_PARAM

#define CMSG_CMS_RECIPIENT_COUNT_PARAM   33

Definition at line 4118 of file wincrypt.h.

◆ CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM

#define CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM   35

Definition at line 4120 of file wincrypt.h.

◆ CMSG_CMS_RECIPIENT_INDEX_PARAM

#define CMSG_CMS_RECIPIENT_INDEX_PARAM   34

Definition at line 4119 of file wincrypt.h.

◆ CMSG_CMS_RECIPIENT_INFO_PARAM

#define CMSG_CMS_RECIPIENT_INFO_PARAM   36

Definition at line 4121 of file wincrypt.h.

◆ CMSG_CMS_SIGNER_INFO_PARAM

#define CMSG_CMS_SIGNER_INFO_PARAM   39

Definition at line 4124 of file wincrypt.h.

◆ CMSG_COMPUTED_HASH_PARAM

#define CMSG_COMPUTED_HASH_PARAM   22

Definition at line 4110 of file wincrypt.h.

◆ CMSG_CONTENT_PARAM

#define CMSG_CONTENT_PARAM   2

Definition at line 4091 of file wincrypt.h.

◆ CMSG_CONTENTS_OCTETS_FLAG

#define CMSG_CONTENTS_OCTETS_FLAG   0x00000010

Definition at line 4029 of file wincrypt.h.

◆ CMSG_CRL_COUNT_PARAM

#define CMSG_CRL_COUNT_PARAM   13

Definition at line 4102 of file wincrypt.h.

◆ CMSG_CRL_PARAM

#define CMSG_CRL_PARAM   14

Definition at line 4103 of file wincrypt.h.

◆ CMSG_CRYPT_RELEASE_CONTEXT_FLAG

#define CMSG_CRYPT_RELEASE_CONTEXT_FLAG   0x00008000

Definition at line 4032 of file wincrypt.h.

◆ CMSG_CTRL_ADD_ATTR_CERT

#define CMSG_CTRL_ADD_ATTR_CERT   14

Definition at line 4045 of file wincrypt.h.

◆ CMSG_CTRL_ADD_CERT

#define CMSG_CTRL_ADD_CERT   10

Definition at line 4041 of file wincrypt.h.

◆ CMSG_CTRL_ADD_CMS_SIGNER_INFO

#define CMSG_CTRL_ADD_CMS_SIGNER_INFO   20

Definition at line 4051 of file wincrypt.h.

◆ CMSG_CTRL_ADD_CRL

#define CMSG_CTRL_ADD_CRL   12

Definition at line 4043 of file wincrypt.h.

◆ CMSG_CTRL_ADD_SIGNER

#define CMSG_CTRL_ADD_SIGNER   6

Definition at line 4037 of file wincrypt.h.

◆ CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR

#define CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR   8

Definition at line 4039 of file wincrypt.h.

◆ CMSG_CTRL_DECRYPT

#define CMSG_CTRL_DECRYPT   2

Definition at line 4035 of file wincrypt.h.

◆ CMSG_CTRL_DEL_ATTR_CERT

#define CMSG_CTRL_DEL_ATTR_CERT   15

Definition at line 4046 of file wincrypt.h.

◆ CMSG_CTRL_DEL_CERT

#define CMSG_CTRL_DEL_CERT   11

Definition at line 4042 of file wincrypt.h.

◆ CMSG_CTRL_DEL_CRL

#define CMSG_CTRL_DEL_CRL   13

Definition at line 4044 of file wincrypt.h.

◆ CMSG_CTRL_DEL_SIGNER

#define CMSG_CTRL_DEL_SIGNER   7

Definition at line 4038 of file wincrypt.h.

◆ CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR

#define CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR   9

Definition at line 4040 of file wincrypt.h.

◆ CMSG_CTRL_KEY_AGREE_DECRYPT

#define CMSG_CTRL_KEY_AGREE_DECRYPT   17

Definition at line 4048 of file wincrypt.h.

◆ CMSG_CTRL_KEY_TRANS_DECRYPT

#define CMSG_CTRL_KEY_TRANS_DECRYPT   16

Definition at line 4047 of file wincrypt.h.

◆ CMSG_CTRL_MAIL_LIST_DECRYPT

#define CMSG_CTRL_MAIL_LIST_DECRYPT   18

Definition at line 4049 of file wincrypt.h.

◆ CMSG_CTRL_VERIFY_HASH

#define CMSG_CTRL_VERIFY_HASH   5

Definition at line 4036 of file wincrypt.h.

◆ CMSG_CTRL_VERIFY_SIGNATURE

#define CMSG_CTRL_VERIFY_SIGNATURE   1

Definition at line 4034 of file wincrypt.h.

◆ CMSG_CTRL_VERIFY_SIGNATURE_EX

#define CMSG_CTRL_VERIFY_SIGNATURE_EX   19

Definition at line 4050 of file wincrypt.h.

◆ CMSG_DATA

#define CMSG_DATA   1

Definition at line 3844 of file wincrypt.h.

◆ CMSG_DATA_FLAG

#define CMSG_DATA_FLAG   (1 << CMSG_DATA)

Definition at line 3852 of file wincrypt.h.

◆ CMSG_DETACHED_FLAG

#define CMSG_DETACHED_FLAG   0x00000004

Definition at line 4027 of file wincrypt.h.

◆ CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG

#define CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG   0x2

Definition at line 4317 of file wincrypt.h.

◆ CMSG_ENCODED_MESSAGE

#define CMSG_ENCODED_MESSAGE   29

Definition at line 4114 of file wincrypt.h.

◆ CMSG_ENCODED_SIGNER

#define CMSG_ENCODED_SIGNER   28

Definition at line 4113 of file wincrypt.h.

◆ CMSG_ENCODED_SORTED_CTL_FLAG

#define CMSG_ENCODED_SORTED_CTL_FLAG   0x1

Definition at line 4316 of file wincrypt.h.

◆ CMSG_ENCODING_TYPE_MASK

#define CMSG_ENCODING_TYPE_MASK   0xffff0000

Definition at line 2495 of file wincrypt.h.

◆ CMSG_ENCRYPT_PARAM

#define CMSG_ENCRYPT_PARAM   26

Definition at line 4111 of file wincrypt.h.

◆ CMSG_ENCRYPTED

#define CMSG_ENCRYPTED   6

Definition at line 3849 of file wincrypt.h.

◆ CMSG_ENCRYPTED_DIGEST

#define CMSG_ENCRYPTED_DIGEST   27

Definition at line 4112 of file wincrypt.h.

◆ CMSG_ENCRYPTED_FLAG

#define CMSG_ENCRYPTED_FLAG   (1 << CMSG_ENCRYPTED)

Definition at line 3856 of file wincrypt.h.

◆ CMSG_ENVELOPE_ALGORITHM_PARAM

#define CMSG_ENVELOPE_ALGORITHM_PARAM   15

Definition at line 4104 of file wincrypt.h.

◆ CMSG_ENVELOPED

#define CMSG_ENVELOPED   3

Definition at line 3846 of file wincrypt.h.

◆ CMSG_ENVELOPED_DATA_CMS_VERSION

#define CMSG_ENVELOPED_DATA_CMS_VERSION   CMSG_ENVELOPED_DATA_V2

Definition at line 4156 of file wincrypt.h.

◆ CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION

#define CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION   CMSG_ENVELOPED_DATA_V0

Definition at line 4155 of file wincrypt.h.

◆ CMSG_ENVELOPED_DATA_V0

#define CMSG_ENVELOPED_DATA_V0   0

Definition at line 4153 of file wincrypt.h.

◆ CMSG_ENVELOPED_DATA_V2

#define CMSG_ENVELOPED_DATA_V2   2

Definition at line 4154 of file wincrypt.h.

◆ CMSG_ENVELOPED_FLAG

#define CMSG_ENVELOPED_FLAG   (1 << CMSG_ENVELOPED)

Definition at line 3854 of file wincrypt.h.

◆ CMSG_ENVELOPED_RECIPIENT_V0

#define CMSG_ENVELOPED_RECIPIENT_V0   0

Definition at line 4204 of file wincrypt.h.

◆ CMSG_ENVELOPED_RECIPIENT_V2

#define CMSG_ENVELOPED_RECIPIENT_V2   2

Definition at line 4205 of file wincrypt.h.

◆ CMSG_ENVELOPED_RECIPIENT_V3

#define CMSG_ENVELOPED_RECIPIENT_V3   3

Definition at line 4206 of file wincrypt.h.

◆ CMSG_ENVELOPED_RECIPIENT_V4

#define CMSG_ENVELOPED_RECIPIENT_V4   4

Definition at line 4207 of file wincrypt.h.

◆ CMSG_HASH_ALGORITHM_PARAM

#define CMSG_HASH_ALGORITHM_PARAM   20

Definition at line 4108 of file wincrypt.h.

◆ CMSG_HASH_DATA_PARAM

#define CMSG_HASH_DATA_PARAM   21

Definition at line 4109 of file wincrypt.h.

◆ CMSG_HASHED

#define CMSG_HASHED   5

Definition at line 3848 of file wincrypt.h.

◆ CMSG_HASHED_DATA_CMS_VERSION

#define CMSG_HASHED_DATA_CMS_VERSION   CMSG_HASHED_DATA_V2

Definition at line 4151 of file wincrypt.h.

◆ CMSG_HASHED_DATA_PKCS_1_5_VERSION

#define CMSG_HASHED_DATA_PKCS_1_5_VERSION   CMSG_HASHED_DATA_V0

Definition at line 4150 of file wincrypt.h.

◆ CMSG_HASHED_DATA_V0

#define CMSG_HASHED_DATA_V0   0

Definition at line 4148 of file wincrypt.h.

◆ CMSG_HASHED_DATA_V2

#define CMSG_HASHED_DATA_V2   2

Definition at line 4149 of file wincrypt.h.

◆ CMSG_INDEFINITE_LENGTH

#define CMSG_INDEFINITE_LENGTH   0xffffffff

Definition at line 3813 of file wincrypt.h.

◆ CMSG_INNER_CONTENT_TYPE_PARAM

#define CMSG_INNER_CONTENT_TYPE_PARAM   4

Definition at line 4093 of file wincrypt.h.

◆ CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE

#define CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE   1

Definition at line 3946 of file wincrypt.h.

◆ CMSG_KEY_AGREE_ORIGINATOR_CERT

#define CMSG_KEY_AGREE_ORIGINATOR_CERT   1

Definition at line 4183 of file wincrypt.h.

◆ CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY

#define CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY   2

Definition at line 4184 of file wincrypt.h.

◆ CMSG_KEY_AGREE_RECIPIENT

#define CMSG_KEY_AGREE_RECIPIENT   2

Definition at line 3978 of file wincrypt.h.

◆ CMSG_KEY_AGREE_STATIC_KEY_CHOICE

#define CMSG_KEY_AGREE_STATIC_KEY_CHOICE   2

Definition at line 3947 of file wincrypt.h.

◆ CMSG_KEY_AGREE_VERSION

#define CMSG_KEY_AGREE_VERSION   CMSG_ENVELOPED_RECIPIENT_V3

Definition at line 4210 of file wincrypt.h.

◆ CMSG_KEY_TRANS_CMS_VERSION

#define CMSG_KEY_TRANS_CMS_VERSION   CMSG_ENVELOPED_RECIPIENT_V2

Definition at line 4209 of file wincrypt.h.

◆ CMSG_KEY_TRANS_PKCS_1_5_VERSION

#define CMSG_KEY_TRANS_PKCS_1_5_VERSION   CMSG_ENVELOPED_RECIPIENT_V0

Definition at line 4208 of file wincrypt.h.

◆ CMSG_KEY_TRANS_RECIPIENT

#define CMSG_KEY_TRANS_RECIPIENT   1

Definition at line 3977 of file wincrypt.h.

◆ CMSG_LENGTH_ONLY_FLAG

#define CMSG_LENGTH_ONLY_FLAG   0x00000002

Definition at line 4026 of file wincrypt.h.

◆ CMSG_MAIL_LIST_HANDLE_KEY_CHOICE

#define CMSG_MAIL_LIST_HANDLE_KEY_CHOICE   1

Definition at line 3965 of file wincrypt.h.

◆ CMSG_MAIL_LIST_RECIPIENT

#define CMSG_MAIL_LIST_RECIPIENT   3

Definition at line 3979 of file wincrypt.h.

◆ CMSG_MAIL_LIST_VERSION

#define CMSG_MAIL_LIST_VERSION   CMSG_ENVELOPED_RECIPIENT_V4

Definition at line 4211 of file wincrypt.h.

◆ CMSG_MAX_LENGTH_FLAG

#define CMSG_MAX_LENGTH_FLAG   0x00000020

Definition at line 4030 of file wincrypt.h.

◆ CMSG_OID_EXPORT_KEY_TRANS_FUNC

#define CMSG_OID_EXPORT_KEY_TRANS_FUNC   "CryptMsgDllExportKeyTrans"

Definition at line 2681 of file wincrypt.h.

◆ CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC

#define CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC   "CryptMsgDllGenContentEncryptKey"

Definition at line 2680 of file wincrypt.h.

◆ CMSG_OID_IMPORT_KEY_TRANS_FUNC

#define CMSG_OID_IMPORT_KEY_TRANS_FUNC   "CryptMsgDllImportKeyTrans"

Definition at line 2682 of file wincrypt.h.

◆ CMSG_RECIPIENT_COUNT_PARAM

#define CMSG_RECIPIENT_COUNT_PARAM   17

Definition at line 4105 of file wincrypt.h.

◆ CMSG_RECIPIENT_INDEX_PARAM

#define CMSG_RECIPIENT_INDEX_PARAM   18

Definition at line 4106 of file wincrypt.h.

◆ CMSG_RECIPIENT_INFO_PARAM

#define CMSG_RECIPIENT_INFO_PARAM   19

Definition at line 4107 of file wincrypt.h.

◆ CMSG_SIGNED

#define CMSG_SIGNED   2

Definition at line 3845 of file wincrypt.h.

◆ CMSG_SIGNED_AND_ENVELOPED

#define CMSG_SIGNED_AND_ENVELOPED   4

Definition at line 3847 of file wincrypt.h.

◆ CMSG_SIGNED_AND_ENVELOPED_FLAG

#define CMSG_SIGNED_AND_ENVELOPED_FLAG   (1 << CMSG_SIGNED_AND_ENVELOPED)

Definition at line 3855 of file wincrypt.h.

◆ CMSG_SIGNED_DATA_CMS_VERSION

#define CMSG_SIGNED_DATA_CMS_VERSION   CMSG_SIGNED_DATA_V3

Definition at line 4141 of file wincrypt.h.

◆ CMSG_SIGNED_DATA_PKCS_1_5_VERSION

#define CMSG_SIGNED_DATA_PKCS_1_5_VERSION   CMSG_SIGNED_DATA_V1

Definition at line 4140 of file wincrypt.h.

◆ CMSG_SIGNED_DATA_V1

#define CMSG_SIGNED_DATA_V1   1

Definition at line 4138 of file wincrypt.h.

◆ CMSG_SIGNED_DATA_V3

#define CMSG_SIGNED_DATA_V3   3

Definition at line 4139 of file wincrypt.h.

◆ CMSG_SIGNED_FLAG

#define CMSG_SIGNED_FLAG   (1 << CMSG_SIGNED)

Definition at line 3853 of file wincrypt.h.

◆ CMSG_SIGNER_AUTH_ATTR_PARAM

#define CMSG_SIGNER_AUTH_ATTR_PARAM   9

Definition at line 4098 of file wincrypt.h.

◆ CMSG_SIGNER_CERT_ID_PARAM

#define CMSG_SIGNER_CERT_ID_PARAM   38

Definition at line 4123 of file wincrypt.h.

◆ CMSG_SIGNER_CERT_INFO_PARAM

#define CMSG_SIGNER_CERT_INFO_PARAM   7

Definition at line 4096 of file wincrypt.h.

◆ CMSG_SIGNER_COUNT_PARAM

#define CMSG_SIGNER_COUNT_PARAM   5

Definition at line 4094 of file wincrypt.h.

◆ CMSG_SIGNER_HASH_ALGORITHM_PARAM

#define CMSG_SIGNER_HASH_ALGORITHM_PARAM   8

Definition at line 4097 of file wincrypt.h.

◆ CMSG_SIGNER_INFO_CMS_VERSION

#define CMSG_SIGNER_INFO_CMS_VERSION   CMSG_SIGNER_INFO_V3

Definition at line 4146 of file wincrypt.h.

◆ CMSG_SIGNER_INFO_PARAM

#define CMSG_SIGNER_INFO_PARAM   6

Definition at line 4095 of file wincrypt.h.

◆ CMSG_SIGNER_INFO_PKCS_1_5_VERSION

#define CMSG_SIGNER_INFO_PKCS_1_5_VERSION   CMSG_SIGNER_INFO_V1

Definition at line 4145 of file wincrypt.h.

◆ CMSG_SIGNER_INFO_V1

#define CMSG_SIGNER_INFO_V1   1

Definition at line 4143 of file wincrypt.h.

◆ CMSG_SIGNER_INFO_V3

#define CMSG_SIGNER_INFO_V3   3

Definition at line 4144 of file wincrypt.h.

◆ CMSG_SIGNER_ONLY_FLAG

#define CMSG_SIGNER_ONLY_FLAG   0x2

Definition at line 4309 of file wincrypt.h.

◆ CMSG_SIGNER_UNAUTH_ATTR_PARAM

#define CMSG_SIGNER_UNAUTH_ATTR_PARAM   10

Definition at line 4099 of file wincrypt.h.

◆ CMSG_TRUSTED_SIGNER_FLAG

#define CMSG_TRUSTED_SIGNER_FLAG   0x1

Definition at line 4308 of file wincrypt.h.

◆ CMSG_TYPE_PARAM

#define CMSG_TYPE_PARAM   1

Definition at line 4090 of file wincrypt.h.

◆ CMSG_UNPROTECTED_ATTR_PARAM

#define CMSG_UNPROTECTED_ATTR_PARAM   37

Definition at line 4122 of file wincrypt.h.

◆ CMSG_USE_SIGNER_INDEX_FLAG

#define CMSG_USE_SIGNER_INDEX_FLAG   0x4

Definition at line 4310 of file wincrypt.h.

◆ CMSG_VERIFY_SIGNER_CERT [1/2]

#define CMSG_VERIFY_SIGNER_CERT   2

Definition at line 4086 of file wincrypt.h.

◆ CMSG_VERIFY_SIGNER_CERT [2/2]

#define CMSG_VERIFY_SIGNER_CERT   2

Definition at line 4086 of file wincrypt.h.

◆ CMSG_VERIFY_SIGNER_CHAIN [1/2]

#define CMSG_VERIFY_SIGNER_CHAIN   3

Definition at line 4087 of file wincrypt.h.

◆ CMSG_VERIFY_SIGNER_CHAIN [2/2]

#define CMSG_VERIFY_SIGNER_CHAIN   3

Definition at line 4087 of file wincrypt.h.

◆ CMSG_VERIFY_SIGNER_NULL [1/2]

#define CMSG_VERIFY_SIGNER_NULL   4

Definition at line 4088 of file wincrypt.h.

◆ CMSG_VERIFY_SIGNER_NULL [2/2]

#define CMSG_VERIFY_SIGNER_NULL   4

Definition at line 4088 of file wincrypt.h.

◆ CMSG_VERIFY_SIGNER_PUBKEY [1/2]

#define CMSG_VERIFY_SIGNER_PUBKEY   1

Definition at line 4085 of file wincrypt.h.

◆ CMSG_VERIFY_SIGNER_PUBKEY [2/2]

#define CMSG_VERIFY_SIGNER_PUBKEY   1

Definition at line 4085 of file wincrypt.h.

◆ CMSG_VERSION_PARAM

#define CMSG_VERSION_PARAM   30

Definition at line 4115 of file wincrypt.h.

◆ CNG_RSA_PUBLIC_KEY_BLOB

#define CNG_RSA_PUBLIC_KEY_BLOB   ((LPCSTR)72)

Definition at line 3592 of file wincrypt.h.

◆ CONTEXT_OID_CAPI2_ANY

#define CONTEXT_OID_CAPI2_ANY   ((LPCSTR)5)

Definition at line 1880 of file wincrypt.h.

◆ CONTEXT_OID_CERTIFICATE

#define CONTEXT_OID_CERTIFICATE   ((LPCSTR)1)

Definition at line 1876 of file wincrypt.h.

◆ CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC

#define CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC   "ContextDllCreateObjectContext"

Definition at line 1870 of file wincrypt.h.

◆ CONTEXT_OID_CRL

#define CONTEXT_OID_CRL   ((LPCSTR)2)

Definition at line 1877 of file wincrypt.h.

◆ CONTEXT_OID_CTL

#define CONTEXT_OID_CTL   ((LPCSTR)3)

Definition at line 1878 of file wincrypt.h.

◆ CONTEXT_OID_PKCS7

#define CONTEXT_OID_PKCS7   ((LPCSTR)4)

Definition at line 1879 of file wincrypt.h.

◆ CREDENTIAL_OID_PASSWORD_CREDENTIALS

#define CREDENTIAL_OID_PASSWORD_CREDENTIALS    WINELIB_NAME_AW(CREDENTIAL_OID_PASSWORD_CREDENTIALS_)

Definition at line 1824 of file wincrypt.h.

◆ CREDENTIAL_OID_PASSWORD_CREDENTIALS_A

#define CREDENTIAL_OID_PASSWORD_CREDENTIALS_A   ((LPCSTR)1)

Definition at line 1822 of file wincrypt.h.

◆ CREDENTIAL_OID_PASSWORD_CREDENTIALS_W

#define CREDENTIAL_OID_PASSWORD_CREDENTIALS_W   ((LPCSTR)2)

Definition at line 1823 of file wincrypt.h.

◆ CRL_DIST_POINT_ERR_CRL_ISSUER_BIT

#define CRL_DIST_POINT_ERR_CRL_ISSUER_BIT   __MSABI_LONG(0x80000000)

Definition at line 553 of file wincrypt.h.

◆ CRL_DIST_POINT_ERR_INDEX_MASK

#define CRL_DIST_POINT_ERR_INDEX_MASK   0x7f

Definition at line 545 of file wincrypt.h.

◆ CRL_DIST_POINT_ERR_INDEX_SHIFT

#define CRL_DIST_POINT_ERR_INDEX_SHIFT   24

Definition at line 546 of file wincrypt.h.

◆ CRL_DIST_POINT_FULL_NAME

#define CRL_DIST_POINT_FULL_NAME   1

Definition at line 523 of file wincrypt.h.

◆ CRL_DIST_POINT_ISSUER_RDN_NAME

#define CRL_DIST_POINT_ISSUER_RDN_NAME   2

Definition at line 524 of file wincrypt.h.

◆ CRL_DIST_POINT_NO_NAME

#define CRL_DIST_POINT_NO_NAME   0

Definition at line 522 of file wincrypt.h.

◆ CRL_FIND_ANY

#define CRL_FIND_ANY   0

Definition at line 3074 of file wincrypt.h.

◆ CRL_FIND_EXISTING

#define CRL_FIND_EXISTING   2

Definition at line 3076 of file wincrypt.h.

◆ CRL_FIND_ISSUED_BY

#define CRL_FIND_ISSUED_BY   1

Definition at line 3075 of file wincrypt.h.

◆ CRL_FIND_ISSUED_BY_AKI_FLAG

#define CRL_FIND_ISSUED_BY_AKI_FLAG   0x1

Definition at line 3079 of file wincrypt.h.

◆ CRL_FIND_ISSUED_BY_BASE_FLAG

#define CRL_FIND_ISSUED_BY_BASE_FLAG   0x8

Definition at line 3082 of file wincrypt.h.

◆ CRL_FIND_ISSUED_BY_DELTA_FLAG

#define CRL_FIND_ISSUED_BY_DELTA_FLAG   0x4

Definition at line 3081 of file wincrypt.h.

◆ CRL_FIND_ISSUED_BY_SIGNATURE_FLAG

#define CRL_FIND_ISSUED_BY_SIGNATURE_FLAG   0x2

Definition at line 3080 of file wincrypt.h.

◆ CRL_FIND_ISSUED_FOR

#define CRL_FIND_ISSUED_FOR   3

Definition at line 3077 of file wincrypt.h.

◆ CRL_REASON_AFFILIATION_CHANGED

#define CRL_REASON_AFFILIATION_CHANGED   3

Definition at line 2960 of file wincrypt.h.

◆ CRL_REASON_AFFILIATION_CHANGED_FLAG

#define CRL_REASON_AFFILIATION_CHANGED_FLAG   0x10

Definition at line 535 of file wincrypt.h.

◆ CRL_REASON_CA_COMPROMISE

#define CRL_REASON_CA_COMPROMISE   2

Definition at line 2959 of file wincrypt.h.

◆ CRL_REASON_CA_COMPROMISE_FLAG

#define CRL_REASON_CA_COMPROMISE_FLAG   0x20

Definition at line 534 of file wincrypt.h.

◆ CRL_REASON_CERTIFICATE_HOLD

#define CRL_REASON_CERTIFICATE_HOLD   6

Definition at line 2963 of file wincrypt.h.

◆ CRL_REASON_CERTIFICATE_HOLD_FLAG

#define CRL_REASON_CERTIFICATE_HOLD_FLAG   0x02

Definition at line 538 of file wincrypt.h.

◆ CRL_REASON_CESSATION_OF_OPERATION

#define CRL_REASON_CESSATION_OF_OPERATION   5

Definition at line 2962 of file wincrypt.h.

◆ CRL_REASON_CESSATION_OF_OPERATION_FLAG

#define CRL_REASON_CESSATION_OF_OPERATION_FLAG   0x04

Definition at line 537 of file wincrypt.h.

◆ CRL_REASON_KEY_COMPROMISE

#define CRL_REASON_KEY_COMPROMISE   1

Definition at line 2958 of file wincrypt.h.

◆ CRL_REASON_KEY_COMPROMISE_FLAG

#define CRL_REASON_KEY_COMPROMISE_FLAG   0x40

Definition at line 533 of file wincrypt.h.

◆ CRL_REASON_REMOVE_FROM_CRL

#define CRL_REASON_REMOVE_FROM_CRL   8

Definition at line 2964 of file wincrypt.h.

◆ CRL_REASON_SUPERSEDED

#define CRL_REASON_SUPERSEDED   4

Definition at line 2961 of file wincrypt.h.

◆ CRL_REASON_SUPERSEDED_FLAG

#define CRL_REASON_SUPERSEDED_FLAG   0x08

Definition at line 536 of file wincrypt.h.

◆ CRL_REASON_UNSPECIFIED

#define CRL_REASON_UNSPECIFIED   0

Definition at line 2957 of file wincrypt.h.

◆ CRL_REASON_UNUSED_FLAG

#define CRL_REASON_UNUSED_FLAG   0x80

Definition at line 532 of file wincrypt.h.

◆ CRL_V1

#define CRL_V1   0

Definition at line 2825 of file wincrypt.h.

◆ CRL_V2

#define CRL_V2   1

Definition at line 2826 of file wincrypt.h.

◆ CROSS_CERT_DIST_POINT_ERR_INDEX_MASK

#define CROSS_CERT_DIST_POINT_ERR_INDEX_MASK   0xff

Definition at line 564 of file wincrypt.h.

◆ CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT

#define CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT   24

Definition at line 565 of file wincrypt.h.

◆ CRYPT_ACCUMULATIVE_TIMEOUT

#define CRYPT_ACCUMULATIVE_TIMEOUT   0x00000800

Definition at line 1902 of file wincrypt.h.

◆ CRYPT_ACQUIRE_CACHE_FLAG

#define CRYPT_ACQUIRE_CACHE_FLAG   0x00000001

Definition at line 3761 of file wincrypt.h.

◆ CRYPT_ACQUIRE_COMPARE_KEY_FLAG

#define CRYPT_ACQUIRE_COMPARE_KEY_FLAG   0x00000004

Definition at line 3763 of file wincrypt.h.

◆ CRYPT_ACQUIRE_SILENT_FLAG

#define CRYPT_ACQUIRE_SILENT_FLAG   0x00000040

Definition at line 3764 of file wincrypt.h.

◆ CRYPT_ACQUIRE_USE_PROV_INFO_FLAG

#define CRYPT_ACQUIRE_USE_PROV_INFO_FLAG   0x00000002

Definition at line 3762 of file wincrypt.h.

◆ CRYPT_AIA_RETRIEVAL

#define CRYPT_AIA_RETRIEVAL   0x00080000

Definition at line 1894 of file wincrypt.h.

◆ CRYPT_ARCHIVABLE

#define CRYPT_ARCHIVABLE   0x00004000

Definition at line 2417 of file wincrypt.h.

◆ CRYPT_ARCHIVE

#define CRYPT_ARCHIVE   0x0100

Definition at line 2407 of file wincrypt.h.

◆ CRYPT_ASN_ENCODING

#define CRYPT_ASN_ENCODING   0x00000001

Definition at line 2499 of file wincrypt.h.

◆ CRYPT_ASYNC_RETRIEVAL

#define CRYPT_ASYNC_RETRIEVAL   0x00000010

Definition at line 1886 of file wincrypt.h.

◆ CRYPT_CACHE_ONLY_RETRIEVAL

#define CRYPT_CACHE_ONLY_RETRIEVAL   0x00000002

Definition at line 1883 of file wincrypt.h.

◆ CRYPT_CHECK_FRESHNESS_TIME_VALIDITY

#define CRYPT_CHECK_FRESHNESS_TIME_VALIDITY   0x00000400

Definition at line 1901 of file wincrypt.h.

◆ CRYPT_CREATE_SALT

#define CRYPT_CREATE_SALT   0x00000004

Definition at line 2412 of file wincrypt.h.

◆ CRYPT_DECODE_ALLOC_FLAG

#define CRYPT_DECODE_ALLOC_FLAG   0x08000

Definition at line 3612 of file wincrypt.h.

◆ CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG

#define CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG   0x00008

Definition at line 3611 of file wincrypt.h.

◆ CRYPT_DECODE_NOCOPY_FLAG

#define CRYPT_DECODE_NOCOPY_FLAG   0x00001

Definition at line 3608 of file wincrypt.h.

◆ CRYPT_DECODE_SHARE_OID_STRING_FLAG

#define CRYPT_DECODE_SHARE_OID_STRING_FLAG   0x00004

Definition at line 3610 of file wincrypt.h.

◆ CRYPT_DECODE_TO_BE_SIGNED_FLAG

#define CRYPT_DECODE_TO_BE_SIGNED_FLAG   0x00002

Definition at line 3609 of file wincrypt.h.

◆ CRYPT_DECRYPT

#define CRYPT_DECRYPT   0x0002

Definition at line 2400 of file wincrypt.h.

◆ CRYPT_DEFAULT_OID

#define CRYPT_DEFAULT_OID   "DEFAULT"

Definition at line 2698 of file wincrypt.h.

◆ CRYPT_DELETE_DEFAULT

#define CRYPT_DELETE_DEFAULT   0x00000004

Definition at line 2282 of file wincrypt.h.

◆ CRYPT_DELETEKEYSET

#define CRYPT_DELETEKEYSET   0x00000010

Definition at line 2275 of file wincrypt.h.

◆ CRYPT_DESTROYKEY

#define CRYPT_DESTROYKEY   0x00000004

Definition at line 2421 of file wincrypt.h.

◆ CRYPT_DONT_CACHE_RESULT

#define CRYPT_DONT_CACHE_RESULT   0x00000008

Definition at line 1885 of file wincrypt.h.

◆ CRYPT_DONT_CHECK_TIME_VALIDITY

#define CRYPT_DONT_CHECK_TIME_VALIDITY   0x00000200

Definition at line 1900 of file wincrypt.h.

◆ CRYPT_DONT_VERIFY_SIGNATURE

#define CRYPT_DONT_VERIFY_SIGNATURE   0x00000100

Definition at line 1899 of file wincrypt.h.

◆ CRYPT_ENCODE_ALLOC_FLAG

#define CRYPT_ENCODE_ALLOC_FLAG   0x08000

Definition at line 3599 of file wincrypt.h.

◆ CRYPT_ENCODE_DECODE_NONE

#define CRYPT_ENCODE_DECODE_NONE   0

Definition at line 3516 of file wincrypt.h.

◆ CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG

#define CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG   0x00008

Definition at line 3598 of file wincrypt.h.

◆ CRYPT_ENCRYPT

#define CRYPT_ENCRYPT   0x0001

Definition at line 2399 of file wincrypt.h.

◆ CRYPT_ENCRYPT_ALG_OID_GROUP_ID

#define CRYPT_ENCRYPT_ALG_OID_GROUP_ID   2

Definition at line 1938 of file wincrypt.h.

◆ CRYPT_ENHKEY_USAGE_OID_GROUP_ID

#define CRYPT_ENHKEY_USAGE_OID_GROUP_ID   7

Definition at line 1943 of file wincrypt.h.

◆ CRYPT_EXPORT

#define CRYPT_EXPORT   0x0004

Definition at line 2401 of file wincrypt.h.

◆ CRYPT_EXPORT_KEY

#define CRYPT_EXPORT_KEY   0x0040

Definition at line 2405 of file wincrypt.h.

◆ CRYPT_EXPORTABLE

#define CRYPT_EXPORTABLE   0x00000001

Definition at line 2410 of file wincrypt.h.

◆ CRYPT_EXT_OR_ATTR_OID_GROUP_ID

#define CRYPT_EXT_OR_ATTR_OID_GROUP_ID   6

Definition at line 1942 of file wincrypt.h.

◆ CRYPT_FIND_MACHINE_KEYSET_FLAG

#define CRYPT_FIND_MACHINE_KEYSET_FLAG   0x00000002

Definition at line 3768 of file wincrypt.h.

◆ CRYPT_FIND_SILENT_KEYSET_FLAG

#define CRYPT_FIND_SILENT_KEYSET_FLAG   0x00000040

Definition at line 3769 of file wincrypt.h.

◆ CRYPT_FIND_USER_KEYSET_FLAG

#define CRYPT_FIND_USER_KEYSET_FLAG   0x00000001

Definition at line 3767 of file wincrypt.h.

◆ CRYPT_FIRST

#define CRYPT_FIRST   1

Definition at line 2264 of file wincrypt.h.

◆ CRYPT_FIRST_ALG_OID_GROUP_ID

#define CRYPT_FIRST_ALG_OID_GROUP_ID   CRYPT_HASH_ALG_OID_GROUP_ID

Definition at line 1948 of file wincrypt.h.

◆ CRYPT_FLAG_IPSEC

#define CRYPT_FLAG_IPSEC   0x0010

Definition at line 2111 of file wincrypt.h.

◆ CRYPT_FLAG_PCT1

#define CRYPT_FLAG_PCT1   0x0001

Definition at line 2107 of file wincrypt.h.

◆ CRYPT_FLAG_SIGNING

#define CRYPT_FLAG_SIGNING   0x0020

Definition at line 2112 of file wincrypt.h.

◆ CRYPT_FLAG_SSL2

#define CRYPT_FLAG_SSL2   0x0002

Definition at line 2108 of file wincrypt.h.

◆ CRYPT_FLAG_SSL3

#define CRYPT_FLAG_SSL3   0x0004

Definition at line 2109 of file wincrypt.h.

◆ CRYPT_FLAG_TLS1

#define CRYPT_FLAG_TLS1   0x0008

Definition at line 2110 of file wincrypt.h.

◆ CRYPT_FORMAT_COMMA

#define CRYPT_FORMAT_COMMA   0x1000

Definition at line 3681 of file wincrypt.h.

◆ CRYPT_FORMAT_CRLF

#define CRYPT_FORMAT_CRLF   CRYPT_FORMAT_RDN_CRLF

Definition at line 3683 of file wincrypt.h.

◆ CRYPT_FORMAT_OID

#define CRYPT_FORMAT_OID   0x0004

Definition at line 3675 of file wincrypt.h.

◆ CRYPT_FORMAT_RDN_CRLF

#define CRYPT_FORMAT_RDN_CRLF   0x0200

Definition at line 3677 of file wincrypt.h.

◆ CRYPT_FORMAT_RDN_REVERSE

#define CRYPT_FORMAT_RDN_REVERSE   0x0800

Definition at line 3679 of file wincrypt.h.

◆ CRYPT_FORMAT_RDN_SEMICOLON

#define CRYPT_FORMAT_RDN_SEMICOLON   0x0100

Definition at line 3676 of file wincrypt.h.

◆ CRYPT_FORMAT_RDN_UNQUOTE

#define CRYPT_FORMAT_RDN_UNQUOTE   0x0400

Definition at line 3678 of file wincrypt.h.

◆ CRYPT_FORMAT_SEMICOLON

#define CRYPT_FORMAT_SEMICOLON   CRYPT_FORMAT_RDN_SEMICOLON

Definition at line 3682 of file wincrypt.h.

◆ CRYPT_FORMAT_SIMPLE

#define CRYPT_FORMAT_SIMPLE   0x0001

Definition at line 3673 of file wincrypt.h.

◆ CRYPT_FORMAT_STR_MULTI_LINE

#define CRYPT_FORMAT_STR_MULTI_LINE   0x0001

Definition at line 3670 of file wincrypt.h.

◆ CRYPT_FORMAT_STR_NO_HEX

#define CRYPT_FORMAT_STR_NO_HEX   0x0010

Definition at line 3671 of file wincrypt.h.

◆ CRYPT_FORMAT_X509

#define CRYPT_FORMAT_X509   0x0002

Definition at line 3674 of file wincrypt.h.

◆ CRYPT_GET_INSTALLED_OID_FUNC_FLAG

#define CRYPT_GET_INSTALLED_OID_FUNC_FLAG   0x1

Definition at line 2703 of file wincrypt.h.

◆ CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE

#define CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE   0x00000008

Definition at line 3639 of file wincrypt.h.

◆ CRYPT_GET_URL_FROM_EXTENSION

#define CRYPT_GET_URL_FROM_EXTENSION   0x00000002

Definition at line 3637 of file wincrypt.h.

◆ CRYPT_GET_URL_FROM_PROPERTY

#define CRYPT_GET_URL_FROM_PROPERTY   0x00000001

Definition at line 3636 of file wincrypt.h.

◆ CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE

#define CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE   0x00000004

Definition at line 3638 of file wincrypt.h.

◆ CRYPT_HASH_ALG_OID_GROUP_ID

#define CRYPT_HASH_ALG_OID_GROUP_ID   1

Definition at line 1937 of file wincrypt.h.

◆ CRYPT_IMPL_HARDWARE

#define CRYPT_IMPL_HARDWARE   1

Definition at line 2267 of file wincrypt.h.

◆ CRYPT_IMPL_MIXED

#define CRYPT_IMPL_MIXED   3

Definition at line 2269 of file wincrypt.h.

◆ CRYPT_IMPL_SOFTWARE

#define CRYPT_IMPL_SOFTWARE   2

Definition at line 2268 of file wincrypt.h.

◆ CRYPT_IMPL_UNKNOWN

#define CRYPT_IMPL_UNKNOWN   4

Definition at line 2270 of file wincrypt.h.

◆ CRYPT_IMPORT_KEY

#define CRYPT_IMPORT_KEY   0x0080

Definition at line 2406 of file wincrypt.h.

◆ CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG

#define CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG   1

Definition at line 2700 of file wincrypt.h.

◆ CRYPT_INSTALL_OID_INFO_BEFORE_FLAG

#define CRYPT_INSTALL_OID_INFO_BEFORE_FLAG   1

Definition at line 2701 of file wincrypt.h.

◆ CRYPT_IPSEC_HMAC_KEY

#define CRYPT_IPSEC_HMAC_KEY   0x0100

Definition at line 100 of file wincrypt.h.

◆ CRYPT_KEEP_TIME_VALID

#define CRYPT_KEEP_TIME_VALID   0x00000080

Definition at line 1898 of file wincrypt.h.

◆ CRYPT_LAST_ALG_OID_GROUP_ID

#define CRYPT_LAST_ALG_OID_GROUP_ID   CRYPT_SIGN_ALG_OID_GROUP_ID

Definition at line 1949 of file wincrypt.h.

◆ CRYPT_LAST_OID_GROUP_ID

#define CRYPT_LAST_OID_GROUP_ID   9

Definition at line 1946 of file wincrypt.h.

◆ CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL

#define CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL   0x00040000

Definition at line 1893 of file wincrypt.h.

◆ CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE

#define CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE   0x00008000

Definition at line 1890 of file wincrypt.h.

◆ CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL

#define CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL   0x00002000

Definition at line 1888 of file wincrypt.h.

◆ CRYPT_LDAP_SIGN_RETRIEVAL

#define CRYPT_LDAP_SIGN_RETRIEVAL   0x00010000

Definition at line 1891 of file wincrypt.h.

◆ CRYPT_LITTLE_ENDIAN

#define CRYPT_LITTLE_ENDIAN   0x00000001

Definition at line 2425 of file wincrypt.h.

◆ CRYPT_MAC

#define CRYPT_MAC   0x0020

Definition at line 2404 of file wincrypt.h.

◆ CRYPT_MACHINE_DEFAULT

#define CRYPT_MACHINE_DEFAULT   0x00000001

Definition at line 2280 of file wincrypt.h.

◆ CRYPT_MACHINE_KEYSET

#define CRYPT_MACHINE_KEYSET   0x00000020

Definition at line 2276 of file wincrypt.h.

◆ CRYPT_MATCH_ANY_ENCODING_TYPE

#define CRYPT_MATCH_ANY_ENCODING_TYPE   0xffffffff

Definition at line 1593 of file wincrypt.h.

◆ CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG

#define CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG   0x00000001

Definition at line 1666 of file wincrypt.h.

◆ CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG

#define CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG   0x00000002

Definition at line 1667 of file wincrypt.h.

◆ CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG

#define CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG   0x00000004

Definition at line 1701 of file wincrypt.h.

◆ CRYPT_MESSAGE_KEYID_SIGNER_FLAG

#define CRYPT_MESSAGE_KEYID_SIGNER_FLAG   0x00000004

Definition at line 1668 of file wincrypt.h.

◆ CRYPT_MESSAGE_SILENT_KEYSET_FLAG

#define CRYPT_MESSAGE_SILENT_KEYSET_FLAG   0x00000008

Definition at line 1669 of file wincrypt.h.

◆ CRYPT_MODE_CBC

#define CRYPT_MODE_CBC   1

Definition at line 2394 of file wincrypt.h.

◆ CRYPT_MODE_CFB

#define CRYPT_MODE_CFB   4

Definition at line 2397 of file wincrypt.h.

◆ CRYPT_MODE_ECB

#define CRYPT_MODE_ECB   2

Definition at line 2395 of file wincrypt.h.

◆ CRYPT_MODE_OFB

#define CRYPT_MODE_OFB   3

Definition at line 2396 of file wincrypt.h.

◆ CRYPT_NDR_ENCODING

#define CRYPT_NDR_ENCODING   0x00000002

Definition at line 2500 of file wincrypt.h.

◆ CRYPT_NEWKEYSET

#define CRYPT_NEWKEYSET   0x00000008

Definition at line 2274 of file wincrypt.h.

◆ CRYPT_NEXT

#define CRYPT_NEXT   2

Definition at line 2265 of file wincrypt.h.

◆ CRYPT_NO_AUTH_RETRIEVAL

#define CRYPT_NO_AUTH_RETRIEVAL   0x00020000

Definition at line 1892 of file wincrypt.h.

◆ CRYPT_NO_SALT

#define CRYPT_NO_SALT   0x00000010

Definition at line 2414 of file wincrypt.h.

◆ CRYPT_NOHASHOID

#define CRYPT_NOHASHOID   0x00000001

Definition at line 2381 of file wincrypt.h.

◆ CRYPT_OAEP

#define CRYPT_OAEP   0x00000040

Definition at line 2422 of file wincrypt.h.

◆ CRYPT_OFFLINE_CHECK_RETRIEVAL

#define CRYPT_OFFLINE_CHECK_RETRIEVAL   0x00004000

Definition at line 1889 of file wincrypt.h.

◆ CRYPT_OID_CONVERT_PUBLIC_KEY_INFO_FUNC

#define CRYPT_OID_CONVERT_PUBLIC_KEY_INFO_FUNC   "CryptDllConvertPublicKeyInfo"

Definition at line 2677 of file wincrypt.h.

◆ CRYPT_OID_CREATE_COM_OBJECT_FUNC

#define CRYPT_OID_CREATE_COM_OBJECT_FUNC   "CryptDllCreateComObject"

Definition at line 2665 of file wincrypt.h.

◆ CRYPT_OID_DECODE_OBJECT_EX_FUNC

#define CRYPT_OID_DECODE_OBJECT_EX_FUNC   "CryptDllDecodeObjectEx"

Definition at line 2664 of file wincrypt.h.

◆ CRYPT_OID_DECODE_OBJECT_FUNC

#define CRYPT_OID_DECODE_OBJECT_FUNC   "CryptDllDecodeObject"

Definition at line 2662 of file wincrypt.h.

◆ CRYPT_OID_ENCODE_OBJECT_EX_FUNC

#define CRYPT_OID_ENCODE_OBJECT_EX_FUNC   "CryptDllEncodeObjectEx"

Definition at line 2663 of file wincrypt.h.

◆ CRYPT_OID_ENCODE_OBJECT_FUNC

#define CRYPT_OID_ENCODE_OBJECT_FUNC   "CryptDllEncodeObject"

Definition at line 2661 of file wincrypt.h.

◆ CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC

#define CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC   "CryptDllExportPrivateKeyInfoEx"

Definition at line 2673 of file wincrypt.h.

◆ CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC

#define CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC   "CryptDllExportPublicKeyInfoEx"

Definition at line 2671 of file wincrypt.h.

◆ CRYPT_OID_FIND_LOCALIZED_NAME_FUNC

#define CRYPT_OID_FIND_LOCALIZED_NAME_FUNC   "CryptDllFindLocalizedName"

Definition at line 2670 of file wincrypt.h.

◆ CRYPT_OID_FIND_OID_INFO_FUNC

#define CRYPT_OID_FIND_OID_INFO_FUNC   "CryptDllFindOIDInfo"

Definition at line 2669 of file wincrypt.h.

◆ CRYPT_OID_FORMAT_OBJECT_FUNC

#define CRYPT_OID_FORMAT_OBJECT_FUNC   "CryptDllFormatObject"

Definition at line 2668 of file wincrypt.h.

◆ CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC

#define CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC   "CryptDllImportPrivateKeyInfoEx"

Definition at line 2674 of file wincrypt.h.

◆ CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC

#define CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC   "CryptDllImportPublicKeyInfoEx"

Definition at line 2672 of file wincrypt.h.

◆ CRYPT_OID_INFO_ALGID_KEY

#define CRYPT_OID_INFO_ALGID_KEY   3

Definition at line 1957 of file wincrypt.h.

◆ CRYPT_OID_INFO_NAME_KEY

#define CRYPT_OID_INFO_NAME_KEY   2

Definition at line 1956 of file wincrypt.h.

◆ CRYPT_OID_INFO_OID_KEY

#define CRYPT_OID_INFO_OID_KEY   1

Definition at line 1955 of file wincrypt.h.

◆ CRYPT_OID_INFO_SIGN_KEY

#define CRYPT_OID_INFO_SIGN_KEY   4

Definition at line 1958 of file wincrypt.h.

◆ CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG

#define CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG   0x1

Definition at line 1951 of file wincrypt.h.

◆ CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG

#define CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG   0x4

Definition at line 1953 of file wincrypt.h.

◆ CRYPT_OID_OPEN_STORE_PROV_FUNC

#define CRYPT_OID_OPEN_STORE_PROV_FUNC   "CertDllOpenStoreProv"

Definition at line 2660 of file wincrypt.h.

◆ CRYPT_OID_REG_ENCODING_TYPE_PREFIX

#define CRYPT_OID_REG_ENCODING_TYPE_PREFIX   "EncodingType "

Definition at line 2685 of file wincrypt.h.

◆ CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A

#define CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A   "FuncName"

Definition at line 2697 of file wincrypt.h.

◆ CRYPT_OID_REGPATH

#define CRYPT_OID_REGPATH   "Software\\Microsoft\\Cryptography\\OID"

Definition at line 2684 of file wincrypt.h.

◆ CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG

#define CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG   0x2

Definition at line 1952 of file wincrypt.h.

◆ CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC

#define CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC    "CertDllVerifyCertificateChainPolicy"

Definition at line 2675 of file wincrypt.h.

◆ CRYPT_OID_VERIFY_CTL_USAGE_FUNC

#define CRYPT_OID_VERIFY_CTL_USAGE_FUNC   "CertDllVerifyCTLUsage"

Definition at line 2667 of file wincrypt.h.

◆ CRYPT_OID_VERIFY_REVOCATION_FUNC

#define CRYPT_OID_VERIFY_REVOCATION_FUNC   "CertDllVerifyRevocation"

Definition at line 2666 of file wincrypt.h.

◆ CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION

#define CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION   ((LPCSTR)1)

Definition at line 1775 of file wincrypt.h.

◆ CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL

#define CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL   ((LPCSTR)2)

Definition at line 1776 of file wincrypt.h.

◆ CRYPT_PASSWORD_CREDENTIALS

#define CRYPT_PASSWORD_CREDENTIALS   WINELIB_NAME_AW(CRYPT_PASSWORD_CREDENTIALS)

Definition at line 1838 of file wincrypt.h.

◆ CRYPT_POLICY_OID_GROUP_ID

#define CRYPT_POLICY_OID_GROUP_ID   8

Definition at line 1944 of file wincrypt.h.

◆ CRYPT_PREGEN

#define CRYPT_PREGEN   0x00000040

Definition at line 2415 of file wincrypt.h.

◆ CRYPT_PSTORE

#define CRYPT_PSTORE   0x00000002

Definition at line 2328 of file wincrypt.h.

◆ CRYPT_PUBKEY_ALG_OID_GROUP_ID

#define CRYPT_PUBKEY_ALG_OID_GROUP_ID   3

Definition at line 1939 of file wincrypt.h.

◆ CRYPT_RC2_128BIT_VERSION

#define CRYPT_RC2_128BIT_VERSION   58

Definition at line 796 of file wincrypt.h.

◆ CRYPT_RC2_40BIT_VERSION

#define CRYPT_RC2_40BIT_VERSION   160

Definition at line 793 of file wincrypt.h.

◆ CRYPT_RC2_56BIT_VERSION

#define CRYPT_RC2_56BIT_VERSION   52

Definition at line 794 of file wincrypt.h.

◆ CRYPT_RC2_64BIT_VERSION

#define CRYPT_RC2_64BIT_VERSION   120

Definition at line 795 of file wincrypt.h.

◆ CRYPT_RDN_ATTR_OID_GROUP_ID

#define CRYPT_RDN_ATTR_OID_GROUP_ID   5

Definition at line 1941 of file wincrypt.h.

◆ CRYPT_READ

#define CRYPT_READ   0x0008

Definition at line 2402 of file wincrypt.h.

◆ CRYPT_REGISTER_FIRST_INDEX

#define CRYPT_REGISTER_FIRST_INDEX   0

Definition at line 2705 of file wincrypt.h.

◆ CRYPT_REGISTER_LAST_INDEX

#define CRYPT_REGISTER_LAST_INDEX   0xffffffff

Definition at line 2706 of file wincrypt.h.

◆ CRYPT_RETRIEVE_MULTIPLE_OBJECTS

#define CRYPT_RETRIEVE_MULTIPLE_OBJECTS   0x00000001

Definition at line 1882 of file wincrypt.h.

◆ CRYPT_SEC_DESCR

#define CRYPT_SEC_DESCR   0x00000001

Definition at line 2327 of file wincrypt.h.

◆ CRYPT_SERVER

#define CRYPT_SERVER   0x00000400

Definition at line 2416 of file wincrypt.h.

◆ CRYPT_SIGN_ALG_OID_GROUP_ID

#define CRYPT_SIGN_ALG_OID_GROUP_ID   4

Definition at line 1940 of file wincrypt.h.

◆ CRYPT_SILENT

#define CRYPT_SILENT   0x00000040

Definition at line 2277 of file wincrypt.h.

◆ CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG

#define CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG   0x10000

Definition at line 3600 of file wincrypt.h.

◆ CRYPT_SSL2_FALLBACK

#define CRYPT_SSL2_FALLBACK   0x00000002

Definition at line 2420 of file wincrypt.h.

◆ CRYPT_STICKY_CACHE_RETRIEVAL

#define CRYPT_STICKY_CACHE_RETRIEVAL   0x00001000

Definition at line 1887 of file wincrypt.h.

◆ CRYPT_STRING_ANY

#define CRYPT_STRING_ANY   0x00000007

Definition at line 3138 of file wincrypt.h.

◆ CRYPT_STRING_BASE64

#define CRYPT_STRING_BASE64   0x00000001

Definition at line 3132 of file wincrypt.h.

◆ CRYPT_STRING_BASE64_ANY

#define CRYPT_STRING_BASE64_ANY   0x00000006

Definition at line 3137 of file wincrypt.h.

◆ CRYPT_STRING_BASE64HEADER

#define CRYPT_STRING_BASE64HEADER   0x00000000

Definition at line 3131 of file wincrypt.h.

◆ CRYPT_STRING_BASE64REQUESTHEADER

#define CRYPT_STRING_BASE64REQUESTHEADER   0x00000003

Definition at line 3134 of file wincrypt.h.

◆ CRYPT_STRING_BASE64URI

#define CRYPT_STRING_BASE64URI   0x0000000d

Definition at line 3144 of file wincrypt.h.

◆ CRYPT_STRING_BASE64X509CRLHEADER

#define CRYPT_STRING_BASE64X509CRLHEADER   0x00000009

Definition at line 3140 of file wincrypt.h.

◆ CRYPT_STRING_BINARY

#define CRYPT_STRING_BINARY   0x00000002

Definition at line 3133 of file wincrypt.h.

◆ CRYPT_STRING_HASHDATA

#define CRYPT_STRING_HASHDATA   0x10000000

Definition at line 3147 of file wincrypt.h.

◆ CRYPT_STRING_HEX

#define CRYPT_STRING_HEX   0x00000004

Definition at line 3135 of file wincrypt.h.

◆ CRYPT_STRING_HEX_ANY

#define CRYPT_STRING_HEX_ANY   0x00000008

Definition at line 3139 of file wincrypt.h.

◆ CRYPT_STRING_HEXADDR

#define CRYPT_STRING_HEXADDR   0x0000000a

Definition at line 3141 of file wincrypt.h.

◆ CRYPT_STRING_HEXASCII

#define CRYPT_STRING_HEXASCII   0x00000005

Definition at line 3136 of file wincrypt.h.

◆ CRYPT_STRING_HEXASCIIADDR

#define CRYPT_STRING_HEXASCIIADDR   0x0000000b

Definition at line 3142 of file wincrypt.h.

◆ CRYPT_STRING_HEXRAW

#define CRYPT_STRING_HEXRAW   0x0000000c

Definition at line 3143 of file wincrypt.h.

◆ CRYPT_STRING_NOCR

#define CRYPT_STRING_NOCR   0x80000000

Definition at line 3150 of file wincrypt.h.

◆ CRYPT_STRING_NOCRLF

#define CRYPT_STRING_NOCRLF   0x40000000

Definition at line 3149 of file wincrypt.h.

◆ CRYPT_STRING_PERCENTESCAPE

#define CRYPT_STRING_PERCENTESCAPE   0x08000000

Definition at line 3146 of file wincrypt.h.

◆ CRYPT_STRING_STRICT

#define CRYPT_STRING_STRICT   0x20000000

Definition at line 3148 of file wincrypt.h.

◆ CRYPT_TEMPLATE_OID_GROUP_ID

#define CRYPT_TEMPLATE_OID_GROUP_ID   9

Definition at line 1945 of file wincrypt.h.

◆ CRYPT_TYPE2_FORMAT

#define CRYPT_TYPE2_FORMAT   0x00000002

Definition at line 2382 of file wincrypt.h.

◆ CRYPT_UI_PROMPT

#define CRYPT_UI_PROMPT   0x00000004

Definition at line 2329 of file wincrypt.h.

◆ CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG

#define CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG    CERT_RDN_DISABLE_IE4_UTF8_FLAG

Definition at line 3613 of file wincrypt.h.

◆ CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG

#define CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG    CERT_RDN_DISABLE_CHECK_TYPE_FLAG

Definition at line 3605 of file wincrypt.h.

◆ CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG

#define CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG    CERT_RDN_ENABLE_T61_UNICODE_FLAG

Definition at line 3601 of file wincrypt.h.

◆ CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG

#define CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG    CERT_RDN_ENABLE_UTF8_UNICODE_FLAG

Definition at line 3603 of file wincrypt.h.

◆ CRYPT_UPDATE_KEY

#define CRYPT_UPDATE_KEY   0x00000008

Definition at line 2413 of file wincrypt.h.

◆ CRYPT_USER_DEFAULT

#define CRYPT_USER_DEFAULT   0x00000002

Definition at line 2281 of file wincrypt.h.

◆ CRYPT_USER_KEYSET

#define CRYPT_USER_KEYSET   0x00001000

Definition at line 4320 of file wincrypt.h.

◆ CRYPT_USER_PROTECTED

#define CRYPT_USER_PROTECTED   0x00000002

Definition at line 2411 of file wincrypt.h.

◆ CRYPT_USERDATA

#define CRYPT_USERDATA   0x00000001

Definition at line 4336 of file wincrypt.h.

◆ CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT

#define CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT   2

Definition at line 3632 of file wincrypt.h.

◆ CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN

#define CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN   3

Definition at line 3633 of file wincrypt.h.

◆ CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL

#define CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL   4

Definition at line 3634 of file wincrypt.h.

◆ CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY

#define CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY   1

Definition at line 3631 of file wincrypt.h.

◆ CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB

#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB   1

Definition at line 3626 of file wincrypt.h.

◆ CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT

#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT   2

Definition at line 3627 of file wincrypt.h.

◆ CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL

#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL   3

Definition at line 3628 of file wincrypt.h.

◆ CRYPT_VERIFY_CONTEXT_SIGNATURE

#define CRYPT_VERIFY_CONTEXT_SIGNATURE   0x00000020

Definition at line 1896 of file wincrypt.h.

◆ CRYPT_VERIFY_DATA_HASH

#define CRYPT_VERIFY_DATA_HASH   0x00000040

Definition at line 1897 of file wincrypt.h.

◆ CRYPT_VERIFYCONTEXT

#define CRYPT_VERIFYCONTEXT   0xF0000000

Definition at line 2273 of file wincrypt.h.

◆ CRYPT_WIRE_ONLY_RETRIEVAL

#define CRYPT_WIRE_ONLY_RETRIEVAL   0x00000004

Definition at line 1884 of file wincrypt.h.

◆ CRYPT_WRITE

#define CRYPT_WRITE   0x0010

Definition at line 2403 of file wincrypt.h.

◆ CRYPT_X931_FORMAT

#define CRYPT_X931_FORMAT   0x00000004

Definition at line 2383 of file wincrypt.h.

◆ CRYPT_X942_COUNTER_BYTE_LENGTH

#define CRYPT_X942_COUNTER_BYTE_LENGTH   4

Definition at line 776 of file wincrypt.h.

◆ CRYPT_X942_KEY_LENGTH_BYTE_LENGTH

#define CRYPT_X942_KEY_LENGTH_BYTE_LENGTH   4

Definition at line 777 of file wincrypt.h.

◆ CRYPT_X942_PUB_INFO_BYTE_LENGTH

#define CRYPT_X942_PUB_INFO_BYTE_LENGTH   (512/8)

Definition at line 778 of file wincrypt.h.

◆ CryptAcquireContext

#define CryptAcquireContext   WINELIB_NAME_AW(CryptAcquireContext)

Definition at line 6355 of file wincrypt.h.

◆ CryptBinaryToString

#define CryptBinaryToString   WINELIB_NAME_AW(CryptBinaryToString)

Definition at line 6413 of file wincrypt.h.

◆ CryptEnumProviders

#define CryptEnumProviders   WINELIB_NAME_AW(CryptEnumProviders)

Definition at line 6368 of file wincrypt.h.

◆ CryptEnumProviderTypes

#define CryptEnumProviderTypes   WINELIB_NAME_AW(CryptEnumProviderTypes)

Definition at line 6371 of file wincrypt.h.

◆ CryptGetDefaultProvider

#define CryptGetDefaultProvider   WINELIB_NAME_AW(CryptGetDefaultProvider)

Definition at line 6379 of file wincrypt.h.

◆ CRYPTPROTECT_AUDIT

#define CRYPTPROTECT_AUDIT   0x0010

Definition at line 2433 of file wincrypt.h.

◆ CRYPTPROTECT_LOCAL_MACHINE

#define CRYPTPROTECT_LOCAL_MACHINE   0x0004

Definition at line 2432 of file wincrypt.h.

◆ CRYPTPROTECT_PROMPT_ON_PROTECT

#define CRYPTPROTECT_PROMPT_ON_PROTECT   0x0001

Definition at line 2428 of file wincrypt.h.

◆ CRYPTPROTECT_PROMPT_ON_UNPROTECT

#define CRYPTPROTECT_PROMPT_ON_UNPROTECT   0x0002

Definition at line 2429 of file wincrypt.h.

◆ CRYPTPROTECT_UI_FORBIDDEN

#define CRYPTPROTECT_UI_FORBIDDEN   0x0001

Definition at line 2431 of file wincrypt.h.

◆ CRYPTPROTECT_VERIFY_PROTECTION

#define CRYPTPROTECT_VERIFY_PROTECTION   0x0040

Definition at line 2434 of file wincrypt.h.

◆ CRYPTPROTECTMEMORY_BLOCK_SIZE

#define CRYPTPROTECTMEMORY_BLOCK_SIZE   16

Definition at line 2437 of file wincrypt.h.

◆ CRYPTPROTECTMEMORY_CROSS_PROCESS

#define CRYPTPROTECTMEMORY_CROSS_PROCESS   0x0001

Definition at line 2439 of file wincrypt.h.

◆ CRYPTPROTECTMEMORY_SAME_LOGON

#define CRYPTPROTECTMEMORY_SAME_LOGON   0x0002

Definition at line 2440 of file wincrypt.h.

◆ CRYPTPROTECTMEMORY_SAME_PROCESS

#define CRYPTPROTECTMEMORY_SAME_PROCESS   0x0000

Definition at line 2438 of file wincrypt.h.

◆ CryptRetrieveObjectByUrl

#define CryptRetrieveObjectByUrl   WINELIB_NAME_AW(CryptRetrieveObjectByUrl)

Definition at line 7046 of file wincrypt.h.

◆ CryptSetProvider

#define CryptSetProvider   WINELIB_NAME_AW(CryptSetProvider)

Definition at line 6389 of file wincrypt.h.

◆ CryptSetProviderEx

#define CryptSetProviderEx   WINELIB_NAME_AW(CryptSetProviderEx)

Definition at line 6392 of file wincrypt.h.

◆ CryptSignHash

#define CryptSignHash   WINELIB_NAME_AW(CryptSignHash)

Definition at line 6396 of file wincrypt.h.

◆ CryptStringToBinary

#define CryptStringToBinary   WINELIB_NAME_AW(CryptStringToBinary)

Definition at line 6421 of file wincrypt.h.

◆ CryptVerifySignature

#define CryptVerifySignature   WINELIB_NAME_AW(CryptVerifySignature)

Definition at line 6399 of file wincrypt.h.

◆ CTL_FIND_ANY

#define CTL_FIND_ANY   0

Definition at line 3090 of file wincrypt.h.

◆ CTL_FIND_EXISTING

#define CTL_FIND_EXISTING   5

Definition at line 3095 of file wincrypt.h.

◆ CTL_FIND_MD5_HASH

#define CTL_FIND_MD5_HASH   2

Definition at line 3092 of file wincrypt.h.

◆ CTL_FIND_NO_LIST_ID_CBDATA

#define CTL_FIND_NO_LIST_ID_CBDATA   0xffffffff

Definition at line 3105 of file wincrypt.h.

◆ CTL_FIND_NO_SIGNER_PTR

#define CTL_FIND_NO_SIGNER_PTR   ((PCERT_INFO)-1)

Definition at line 3106 of file wincrypt.h.

◆ CTL_FIND_SAME_USAGE_FLAG

#define CTL_FIND_SAME_USAGE_FLAG   0x00000001

Definition at line 3107 of file wincrypt.h.

◆ CTL_FIND_SHA1_HASH

#define CTL_FIND_SHA1_HASH   1

Definition at line 3091 of file wincrypt.h.

◆ CTL_FIND_SUBJECT

#define CTL_FIND_SUBJECT   4

Definition at line 3094 of file wincrypt.h.

◆ CTL_FIND_USAGE

#define CTL_FIND_USAGE   3

Definition at line 3093 of file wincrypt.h.

◆ CTL_V1

#define CTL_V1   0

Definition at line 2829 of file wincrypt.h.

◆ CUR_BLOB_VERSION

#define CUR_BLOB_VERSION   2

Definition at line 2451 of file wincrypt.h.

◆ EXPORT_PRIVATE_KEYS

#define EXPORT_PRIVATE_KEYS   0x00000004

Definition at line 4333 of file wincrypt.h.

◆ GET_ALG_CLASS

#define GET_ALG_CLASS (   x)    (x & (7 << 13))

Definition at line 1962 of file wincrypt.h.

◆ GET_ALG_SID

#define GET_ALG_SID (   x)    (x & (511))

Definition at line 1964 of file wincrypt.h.

◆ GET_ALG_TYPE

#define GET_ALG_TYPE (   x)    (x & (15 << 9))

Definition at line 1963 of file wincrypt.h.

◆ GET_CERT_ALT_NAME_ENTRY_ERR_INDEX

#define GET_CERT_ALT_NAME_ENTRY_ERR_INDEX (   x)
Value:
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
#define CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK
Definition: wincrypt.h:369
#define CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT
Definition: wincrypt.h:370

Definition at line 373 of file wincrypt.h.

◆ GET_CERT_ALT_NAME_VALUE_ERR_INDEX

#define GET_CERT_ALT_NAME_VALUE_ERR_INDEX (   x)     ((x) & CERT_ALT_NAME_VALUE_ERR_INDEX_MASK)

Definition at line 376 of file wincrypt.h.

◆ GET_CERT_ENCODING_TYPE

#define GET_CERT_ENCODING_TYPE (   x)    ((x) & CERT_ENCODING_TYPE_MASK)

Definition at line 2496 of file wincrypt.h.

◆ GET_CMSG_ENCODING_TYPE

#define GET_CMSG_ENCODING_TYPE (   x)    ((x) & CMSG_ENCODING_TYPE_MASK)

Definition at line 2497 of file wincrypt.h.

◆ GET_CRL_DIST_POINT_ERR_INDEX

#define GET_CRL_DIST_POINT_ERR_INDEX (   x)     (((x) >> CRL_DIST_POINT_ERR_INDEX_SHIFT) & CRL_DIST_POINT_ERR_INDEX_MASK)

Definition at line 547 of file wincrypt.h.

◆ GET_CROSS_CERT_DIST_POINT_ERR_INDEX

#define GET_CROSS_CERT_DIST_POINT_ERR_INDEX (   x)
Value:
#define CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT
Definition: wincrypt.h:565
#define CROSS_CERT_DIST_POINT_ERR_INDEX_MASK
Definition: wincrypt.h:564

Definition at line 566 of file wincrypt.h.

◆ HCCE_CURRENT_USER

#define HCCE_CURRENT_USER   ((HCERTCHAINENGINE)NULL)

Definition at line 3773 of file wincrypt.h.

◆ HCCE_LOCAL_MACHINE

#define HCCE_LOCAL_MACHINE   ((HCERTCHAINENGINE)1)

Definition at line 3774 of file wincrypt.h.

◆ HP_ALGID

#define HP_ALGID   0x0001

Definition at line 2386 of file wincrypt.h.

◆ HP_HASHSIZE

#define HP_HASHSIZE   0x0004

Definition at line 2388 of file wincrypt.h.

◆ HP_HASHVAL

#define HP_HASHVAL   0x0002

Definition at line 2387 of file wincrypt.h.

◆ HP_HMAC_INFO

#define HP_HMAC_INFO   0x0005

Definition at line 2389 of file wincrypt.h.

◆ HP_TLS1PRF_LABEL

#define HP_TLS1PRF_LABEL   0x0006

Definition at line 2390 of file wincrypt.h.

◆ HP_TLS1PRF_SEED

#define HP_TLS1PRF_SEED   0x0007

Definition at line 2391 of file wincrypt.h.

◆ IS_CERT_EXCLUDED_SUBTREE

#define IS_CERT_EXCLUDED_SUBTREE (   x)    ((x) & CERT_EXCLUDED_SUBTREE_BIT)

Definition at line 602 of file wincrypt.h.

◆ IS_CERT_HASH_PROP_ID

#define IS_CERT_HASH_PROP_ID (   x)
Value:
#define CERT_MD5_HASH_PROP_ID
Definition: wincrypt.h:2836
#define CERT_SHA1_HASH_PROP_ID
Definition: wincrypt.h:2834
#define CERT_SIGNATURE_HASH_PROP_ID
Definition: wincrypt.h:2848

Definition at line 2898 of file wincrypt.h.

◆ IS_CERT_RDN_CHAR_STRING

#define IS_CERT_RDN_CHAR_STRING (   x)     (((x) & CERT_RDN_TYPE_MASK) >= CERT_RDN_NUMERIC_STRING)

Definition at line 2949 of file wincrypt.h.

◆ IS_CHAIN_HASH_PROP_ID

#define IS_CHAIN_HASH_PROP_ID (   x)
Value:
#define CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID
Definition: wincrypt.h:2857
#define CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID
Definition: wincrypt.h:2858
#define CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID
Definition: wincrypt.h:2861
#define CERT_SUBJECT_NAME_MD5_HASH_PROP_ID
Definition: wincrypt.h:2862

Definition at line 2906 of file wincrypt.h.

◆ IS_CRL_DIST_POINT_ERR_CRL_ISSUER

#define IS_CRL_DIST_POINT_ERR_CRL_ISSUER (   x)     ((x) & CRL_DIST_POINT_ERR_CRL_ISSUER_BIT)

Definition at line 555 of file wincrypt.h.

◆ IS_PUBKEY_HASH_PROP_ID

#define IS_PUBKEY_HASH_PROP_ID (   x)

◆ KP_ADMIN_PIN

#define KP_ADMIN_PIN   31

Definition at line 2362 of file wincrypt.h.

◆ KP_ALGID

#define KP_ALGID   7

Definition at line 2338 of file wincrypt.h.

◆ KP_BLOCKLEN

#define KP_BLOCKLEN   8

Definition at line 2339 of file wincrypt.h.

◆ KP_CERTIFICATE

#define KP_CERTIFICATE   26

Definition at line 2357 of file wincrypt.h.

◆ KP_CLEAR_KEY

#define KP_CLEAR_KEY   27

Definition at line 2358 of file wincrypt.h.

◆ KP_CLIENT_RANDOM

#define KP_CLIENT_RANDOM   21

Definition at line 2352 of file wincrypt.h.

◆ KP_CMS_DH_KEY_INFO

#define KP_CMS_DH_KEY_INFO   38

Definition at line 2369 of file wincrypt.h.

◆ KP_CMS_KEY_INFO

#define KP_CMS_KEY_INFO   37

Definition at line 2368 of file wincrypt.h.

◆ KP_EFFECTIVE_KEYLEN

#define KP_EFFECTIVE_KEYLEN   19

Definition at line 2350 of file wincrypt.h.

◆ KP_G

#define KP_G   12

Definition at line 2343 of file wincrypt.h.

◆ KP_GET_USE_COUNT

#define KP_GET_USE_COUNT   42

Definition at line 2373 of file wincrypt.h.

◆ KP_HIGHEST_VERSION

#define KP_HIGHEST_VERSION   41

Definition at line 2372 of file wincrypt.h.

◆ KP_INFO

#define KP_INFO   18

Definition at line 2349 of file wincrypt.h.

◆ KP_IV

#define KP_IV   1

Definition at line 2332 of file wincrypt.h.

◆ KP_KEYEXCHANGE_PIN

#define KP_KEYEXCHANGE_PIN   32

Definition at line 2363 of file wincrypt.h.

◆ KP_KEYLEN

#define KP_KEYLEN   9

Definition at line 2340 of file wincrypt.h.

◆ KP_KEYVAL

#define KP_KEYVAL   30

Definition at line 2361 of file wincrypt.h.

◆ KP_MODE

#define KP_MODE   4

Definition at line 2335 of file wincrypt.h.

◆ KP_MODE_BITS

#define KP_MODE_BITS   5

Definition at line 2336 of file wincrypt.h.

◆ KP_OAEP_PARAMS

#define KP_OAEP_PARAMS   36

Definition at line 2367 of file wincrypt.h.

◆ KP_P

#define KP_P   11

Definition at line 2342 of file wincrypt.h.

◆ KP_PADDING

#define KP_PADDING   3

Definition at line 2334 of file wincrypt.h.

◆ KP_PERMISSIONS

#define KP_PERMISSIONS   6

Definition at line 2337 of file wincrypt.h.

◆ KP_PRECOMP_MD5

#define KP_PRECOMP_MD5   24

Definition at line 2355 of file wincrypt.h.

◆ KP_PRECOMP_SHA

#define KP_PRECOMP_SHA   25

Definition at line 2356 of file wincrypt.h.

◆ KP_PREHASH

#define KP_PREHASH   34

Definition at line 2365 of file wincrypt.h.

◆ KP_PUB_EX_LEN

#define KP_PUB_EX_LEN   28

Definition at line 2359 of file wincrypt.h.

◆ KP_PUB_EX_VAL

#define KP_PUB_EX_VAL   29

Definition at line 2360 of file wincrypt.h.

◆ KP_PUB_PARAMS

#define KP_PUB_PARAMS   39

Definition at line 2370 of file wincrypt.h.

◆ KP_Q

#define KP_Q   13

Definition at line 2344 of file wincrypt.h.

◆ KP_RA

#define KP_RA   16

Definition at line 2347 of file wincrypt.h.

◆ KP_RB

#define KP_RB   17

Definition at line 2348 of file wincrypt.h.

◆ KP_ROUNDS

#define KP_ROUNDS   35

Definition at line 2366 of file wincrypt.h.

◆ KP_RP

#define KP_RP   23

Definition at line 2354 of file wincrypt.h.

◆ KP_SALT

#define KP_SALT   2

Definition at line 2333 of file wincrypt.h.

◆ KP_SALT_EX

#define KP_SALT_EX   10

Definition at line 2341 of file wincrypt.h.

◆ KP_SCHANNEL_ALG

#define KP_SCHANNEL_ALG   20

Definition at line 2351 of file wincrypt.h.

◆ KP_SERVER_RANDOM

#define KP_SERVER_RANDOM   22

Definition at line 2353 of file wincrypt.h.

◆ KP_SIGNATURE_PIN

#define KP_SIGNATURE_PIN   33

Definition at line 2364 of file wincrypt.h.

◆ KP_VERIFY_PARAMS

#define KP_VERIFY_PARAMS   40

Definition at line 2371 of file wincrypt.h.

◆ KP_X

#define KP_X   14

Definition at line 2345 of file wincrypt.h.

◆ KP_Y

#define KP_Y   15

Definition at line 2346 of file wincrypt.h.

◆ MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG

#define MICROSOFT_ROOT_CERT_CHAIN_POLICY_CHECK_APPLICATION_ROOT_FLAG   0x00020000

Definition at line 1113 of file wincrypt.h.

◆ MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG [1/2]

#define MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG   0x00010000

Definition at line 1154 of file wincrypt.h.

◆ MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG [2/2]

#define MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG   0x00010000

Definition at line 1154 of file wincrypt.h.

◆ MS_DEF_DH_SCHANNEL_PROV

#define MS_DEF_DH_SCHANNEL_PROV   WINELIB_NAME_AW(MS_DEF_DH_SCHANNEL_PROV_)

Definition at line 2205 of file wincrypt.h.

◆ MS_DEF_DH_SCHANNEL_PROV_A

#define MS_DEF_DH_SCHANNEL_PROV_A   "Microsoft DH SChannel Cryptographic Provider"

Definition at line 2197 of file wincrypt.h.

◆ MS_DEF_DSS_DH_PROV

#define MS_DEF_DSS_DH_PROV   WINELIB_NAME_AW(MS_DEF_DSS_DH_PROV_)

Definition at line 2184 of file wincrypt.h.

◆ MS_DEF_DSS_DH_PROV_A

#define MS_DEF_DSS_DH_PROV_A   "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"

Definition at line 2175 of file wincrypt.h.

◆ MS_DEF_DSS_PROV

#define MS_DEF_DSS_PROV   WINELIB_NAME_AW(MS_DEF_DSS_PROV_)

Definition at line 2173 of file wincrypt.h.

◆ MS_DEF_DSS_PROV_A

#define MS_DEF_DSS_PROV_A   "Microsoft Base DSS Cryptographic Provider"

Definition at line 2165 of file wincrypt.h.

◆ MS_DEF_PROV

#define MS_DEF_PROV   WINELIB_NAME_AW(MS_DEF_PROV_)

Definition at line 2123 of file wincrypt.h.

◆ MS_DEF_PROV_A

#define MS_DEF_PROV_A   "Microsoft Base Cryptographic Provider v1.0"

Definition at line 2115 of file wincrypt.h.

◆ MS_DEF_RSA_SCHANNEL_PROV

#define MS_DEF_RSA_SCHANNEL_PROV   WINELIB_NAME_AW(MS_DEF_RSA_SCHANNEL_PROV_)

Definition at line 2163 of file wincrypt.h.

◆ MS_DEF_RSA_SCHANNEL_PROV_A

#define MS_DEF_RSA_SCHANNEL_PROV_A   "Microsoft RSA SChannel Cryptographic Provider"

Definition at line 2155 of file wincrypt.h.

◆ MS_DEF_RSA_SIG_PROV

#define MS_DEF_RSA_SIG_PROV   WINELIB_NAME_AW(MS_DEF_RSA_SIG_PROV_)

Definition at line 2153 of file wincrypt.h.

◆ MS_DEF_RSA_SIG_PROV_A

#define MS_DEF_RSA_SIG_PROV_A   "Microsoft RSA Signature Cryptographic Provider"

Definition at line 2145 of file wincrypt.h.

◆ MS_ENH_DSS_DH_PROV

#define MS_ENH_DSS_DH_PROV   WINELIB_NAME_AW(MS_ENH_DSS_DH_PROV_)

Definition at line 2195 of file wincrypt.h.

◆ MS_ENH_DSS_DH_PROV_A

#define MS_ENH_DSS_DH_PROV_A   "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"

Definition at line 2186 of file wincrypt.h.

◆ MS_ENH_RSA_AES_PROV

#define MS_ENH_RSA_AES_PROV   WINELIB_NAME_AW(MS_ENH_RSA_AES_PROV_)

Definition at line 2225 of file wincrypt.h.

◆ MS_ENH_RSA_AES_PROV_A

#define MS_ENH_RSA_AES_PROV_A   "Microsoft Enhanced RSA and AES Cryptographic Provider"

Definition at line 2217 of file wincrypt.h.

◆ MS_ENH_RSA_AES_PROV_XP

#define MS_ENH_RSA_AES_PROV_XP   WINELIB_NAME_AW(MS_ENH_RSA_AES_PROV_XP_)

Definition at line 2236 of file wincrypt.h.

◆ MS_ENH_RSA_AES_PROV_XP_A

#define MS_ENH_RSA_AES_PROV_XP_A   "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"

Definition at line 2227 of file wincrypt.h.

◆ MS_ENHANCED_PROV

#define MS_ENHANCED_PROV   WINELIB_NAME_AW(MS_ENHANCED_PROV_)

Definition at line 2133 of file wincrypt.h.

◆ MS_ENHANCED_PROV_A

#define MS_ENHANCED_PROV_A   "Microsoft Enhanced Cryptographic Provider v1.0"

Definition at line 2125 of file wincrypt.h.

◆ MS_SCARD_PROV

#define MS_SCARD_PROV   WINELIB_NAME_AW(MS_SCARD_PROV_)

Definition at line 2215 of file wincrypt.h.

◆ MS_SCARD_PROV_A

#define MS_SCARD_PROV_A   "Microsoft Base Smart Card Cryptographic Provider"

Definition at line 2207 of file wincrypt.h.

◆ MS_STRONG_PROV

#define MS_STRONG_PROV   WINELIB_NAME_AW(MS_STRONG_PROV_)

Definition at line 2143 of file wincrypt.h.

◆ MS_STRONG_PROV_A

#define MS_STRONG_PROV_A   "Microsoft Strong Cryptographic Provider"

Definition at line 2135 of file wincrypt.h.

◆ NETSCAPE_SIGN_CA_CERT_TYPE

#define NETSCAPE_SIGN_CA_CERT_TYPE   0x01

Definition at line 3514 of file wincrypt.h.

◆ NETSCAPE_SIGN_CERT_TYPE

#define NETSCAPE_SIGN_CERT_TYPE   0x10

Definition at line 3511 of file wincrypt.h.

◆ NETSCAPE_SMIME_CA_CERT_TYPE

#define NETSCAPE_SMIME_CA_CERT_TYPE   0x02

Definition at line 3513 of file wincrypt.h.

◆ NETSCAPE_SMIME_CERT_TYPE

#define NETSCAPE_SMIME_CERT_TYPE   0x20

Definition at line 3510 of file wincrypt.h.

◆ NETSCAPE_SSL_CA_CERT_TYPE

#define NETSCAPE_SSL_CA_CERT_TYPE   0x04

Definition at line 3512 of file wincrypt.h.

◆ NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE

#define NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE   0x80

Definition at line 3508 of file wincrypt.h.

◆ NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE

#define NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE   0x40

Definition at line 3509 of file wincrypt.h.

◆ OCSP_BASIC_BY_KEY_RESPONDER_ID

#define OCSP_BASIC_BY_KEY_RESPONDER_ID   2

Definition at line 714 of file wincrypt.h.

◆ OCSP_BASIC_BY_NAME_RESPONDER_ID

#define OCSP_BASIC_BY_NAME_RESPONDER_ID   1

Definition at line 713 of file wincrypt.h.

◆ OCSP_BASIC_GOOD_CERT_STATUS

#define OCSP_BASIC_GOOD_CERT_STATUS   0

Definition at line 696 of file wincrypt.h.

◆ OCSP_BASIC_RESPONSE

#define OCSP_BASIC_RESPONSE   ((LPCSTR)69)

Definition at line 3591 of file wincrypt.h.

◆ OCSP_BASIC_RESPONSE_V1

#define OCSP_BASIC_RESPONSE_V1   0

Definition at line 712 of file wincrypt.h.

◆ OCSP_BASIC_REVOKED_CERT_STATUS

#define OCSP_BASIC_REVOKED_CERT_STATUS   1

Definition at line 697 of file wincrypt.h.

◆ OCSP_BASIC_SIGNED_RESPONSE

#define OCSP_BASIC_SIGNED_RESPONSE   ((LPCSTR)68)

Definition at line 3590 of file wincrypt.h.

◆ OCSP_BASIC_UNKNOWN_CERT_STATUS

#define OCSP_BASIC_UNKNOWN_CERT_STATUS   2

Definition at line 698 of file wincrypt.h.

◆ OCSP_INTERNAL_ERROR_RESPONSE

#define OCSP_INTERNAL_ERROR_RESPONSE   2

Definition at line 673 of file wincrypt.h.

◆ OCSP_MALFORMED_REQUEST_RESPONSE

#define OCSP_MALFORMED_REQUEST_RESPONSE   1

Definition at line 672 of file wincrypt.h.

◆ OCSP_REQUEST

#define OCSP_REQUEST   ((LPCSTR)66)

Definition at line 3588 of file wincrypt.h.

◆ OCSP_REQUEST_V1

#define OCSP_REQUEST_V1   0

Definition at line 660 of file wincrypt.h.

◆ OCSP_RESPONSE

#define OCSP_RESPONSE   ((LPCSTR)67)

Definition at line 3589 of file wincrypt.h.

◆ OCSP_SIG_REQUIRED_RESPONSE

#define OCSP_SIG_REQUIRED_RESPONSE   5

Definition at line 675 of file wincrypt.h.

◆ OCSP_SIGNED_REQUEST

#define OCSP_SIGNED_REQUEST   ((LPCSTR)65)

Definition at line 3587 of file wincrypt.h.

◆ OCSP_SUCCESSFUL_RESPONSE

#define OCSP_SUCCESSFUL_RESPONSE   0

Definition at line 671 of file wincrypt.h.

◆ OCSP_TRY_LATER_RESPONSE

#define OCSP_TRY_LATER_RESPONSE   3

Definition at line 674 of file wincrypt.h.

◆ OCSP_UNAUTHORIZED_RESPONSE

#define OCSP_UNAUTHORIZED_RESPONSE   6

Definition at line 676 of file wincrypt.h.

◆ OPAQUEKEYBLOB

#define OPAQUEKEYBLOB   0x9

Definition at line 2447 of file wincrypt.h.

◆ PCRYPT_PASSWORD_CREDENTIALS

#define PCRYPT_PASSWORD_CREDENTIALS   WINELIB_NAME_AW(PCRYPT_PASSWORD_CREDENTIALS)

Definition at line 1839 of file wincrypt.h.

◆ PKCS12_ALLOW_OVERWRITE_KEY

#define PKCS12_ALLOW_OVERWRITE_KEY   0x00004000

Definition at line 4326 of file wincrypt.h.

◆ PKCS12_ALWAYS_CNG_KSP

#define PKCS12_ALWAYS_CNG_KSP   0x00000200

Definition at line 4323 of file wincrypt.h.

◆ PKCS12_EXPORT_RESERVED_MASK

#define PKCS12_EXPORT_RESERVED_MASK   0xffff0000

Definition at line 4334 of file wincrypt.h.

◆ PKCS12_IMPORT_RESERVED_MASK

#define PKCS12_IMPORT_RESERVED_MASK   0xffff0000

Definition at line 4329 of file wincrypt.h.

◆ PKCS12_IMPORT_SILENT

#define PKCS12_IMPORT_SILENT   0x00000040

Definition at line 4321 of file wincrypt.h.

◆ PKCS12_NO_PERSIST_KEY

#define PKCS12_NO_PERSIST_KEY   0x00008000

Definition at line 4327 of file wincrypt.h.

◆ PKCS12_ONLY_CERTIFICATES

#define PKCS12_ONLY_CERTIFICATES   0x00000400

Definition at line 4324 of file wincrypt.h.

◆ PKCS12_ONLY_NOT_ENCRYPTED_CERTIFICATES

#define PKCS12_ONLY_NOT_ENCRYPTED_CERTIFICATES   0x00000800

Definition at line 4325 of file wincrypt.h.

◆ PKCS12_PREFER_CNG_KSP

#define PKCS12_PREFER_CNG_KSP   0x00000100

Definition at line 4322 of file wincrypt.h.

◆ PKCS12_VIRTUAL_ISOLATION_KEY

#define PKCS12_VIRTUAL_ISOLATION_KEY   0x00010000

Definition at line 4328 of file wincrypt.h.

◆ PKCS5_PADDING

#define PKCS5_PADDING   1

Definition at line 2376 of file wincrypt.h.

◆ PKCS7_SIGNER_INFO

#define PKCS7_SIGNER_INFO   ((LPCSTR)500)

Definition at line 3594 of file wincrypt.h.

◆ PKCS_7_ASN_ENCODING

#define PKCS_7_ASN_ENCODING   0x00010000

Definition at line 2503 of file wincrypt.h.

◆ PKCS_7_NDR_ENCODING

#define PKCS_7_NDR_ENCODING   0x00020000

Definition at line 2504 of file wincrypt.h.

◆ PKCS_ATTRIBUTE

#define PKCS_ATTRIBUTE   ((LPCSTR)22)

Definition at line 3539 of file wincrypt.h.

◆ PKCS_ATTRIBUTES

#define PKCS_ATTRIBUTES   ((LPCSTR)48)

Definition at line 3570 of file wincrypt.h.

◆ PKCS_CONTENT_INFO

#define PKCS_CONTENT_INFO   ((LPCSTR)33)

Definition at line 3552 of file wincrypt.h.

◆ PKCS_CONTENT_INFO_SEQUENCE_OF_ANY

#define PKCS_CONTENT_INFO_SEQUENCE_OF_ANY   ((LPCSTR)23)

Definition at line 3540 of file wincrypt.h.

◆ PKCS_CTL

#define PKCS_CTL   ((LPCSTR)37)

Definition at line 3556 of file wincrypt.h.

◆ PKCS_ENCRYPTED_PRIVATE_KEY_INFO

#define PKCS_ENCRYPTED_PRIVATE_KEY_INFO   ((LPCSTR)45)

Definition at line 3565 of file wincrypt.h.

◆ PKCS_PRIVATE_KEY_INFO

#define PKCS_PRIVATE_KEY_INFO   ((LPCSTR)44)

Definition at line 3564 of file wincrypt.h.

◆ PKCS_RC2_CBC_PARAMETERS

#define PKCS_RC2_CBC_PARAMETERS   ((LPCSTR)41)

Definition at line 3561 of file wincrypt.h.

◆ PKCS_RSA_PRIVATE_KEY

#define PKCS_RSA_PRIVATE_KEY   ((LPCSTR)43)

Definition at line 3563 of file wincrypt.h.

◆ PKCS_SMIME_CAPABILITIES

#define PKCS_SMIME_CAPABILITIES   ((LPCSTR)42)

Definition at line 3562 of file wincrypt.h.

◆ PKCS_SORTED_CTL

#define PKCS_SORTED_CTL   ((LPCSTR)49)

Definition at line 3571 of file wincrypt.h.

◆ PKCS_TIME_REQUEST

#define PKCS_TIME_REQUEST   ((LPCSTR)18)

Definition at line 3535 of file wincrypt.h.

◆ PKCS_UTC_TIME

#define PKCS_UTC_TIME   ((LPCSTR)17)

Definition at line 3534 of file wincrypt.h.

◆ PLAINTEXTKEYBLOB

#define PLAINTEXTKEYBLOB   0x8

Definition at line 2446 of file wincrypt.h.

◆ PP_ADMIN_PIN

#define PP_ADMIN_PIN   31

Definition at line 2310 of file wincrypt.h.

◆ PP_CHANGE_PASSWORD

#define PP_CHANGE_PASSWORD   7

Definition at line 2292 of file wincrypt.h.

◆ PP_CLIENT_HWND

#define PP_CLIENT_HWND   1

Definition at line 2285 of file wincrypt.h.

◆ PP_CONTAINER

#define PP_CONTAINER   6

Definition at line 2291 of file wincrypt.h.

◆ PP_CONTEXT_INFO

#define PP_CONTEXT_INFO   11

Definition at line 2295 of file wincrypt.h.

◆ PP_CRYPT_COUNT_KEY_USE

#define PP_CRYPT_COUNT_KEY_USE   41

Definition at line 2320 of file wincrypt.h.

◆ PP_DELETEKEY

#define PP_DELETEKEY   24

Definition at line 2306 of file wincrypt.h.

◆ PP_ENUMALGS

#define PP_ENUMALGS   1

Definition at line 2286 of file wincrypt.h.

◆ PP_ENUMALGS_EX

#define PP_ENUMALGS_EX   22

Definition at line 2305 of file wincrypt.h.

◆ PP_ENUMCONTAINERS

#define PP_ENUMCONTAINERS   2

Definition at line 2287 of file wincrypt.h.

◆ PP_ENUMELECTROOTS

#define PP_ENUMELECTROOTS   26

Definition at line 2308 of file wincrypt.h.

◆ PP_ENUMEX_SIGNING_PROT

#define PP_ENUMEX_SIGNING_PROT   40

Definition at line 2319 of file wincrypt.h.

◆ PP_ENUMMANDROOTS

#define PP_ENUMMANDROOTS   25

Definition at line 2307 of file wincrypt.h.

◆ PP_IMPTYPE

#define PP_IMPTYPE   3

Definition at line 2288 of file wincrypt.h.

◆ PP_KEY_TYPE_SUBTYPE

#define PP_KEY_TYPE_SUBTYPE   10

Definition at line 2294 of file wincrypt.h.

◆ PP_KEYEXCHANGE_ALG

#define PP_KEYEXCHANGE_ALG   14

Definition at line 2298 of file wincrypt.h.

◆ PP_KEYEXCHANGE_KEYSIZE

#define PP_KEYEXCHANGE_KEYSIZE   12

Definition at line 2296 of file wincrypt.h.

◆ PP_KEYEXCHANGE_PIN

#define PP_KEYEXCHANGE_PIN   32

Definition at line 2311 of file wincrypt.h.

◆ PP_KEYSET_SEC_DESCR

#define PP_KEYSET_SEC_DESCR   8

Definition at line 2293 of file wincrypt.h.

◆ PP_KEYSET_TYPE

#define PP_KEYSET_TYPE   27

Definition at line 2309 of file wincrypt.h.

◆ PP_KEYSPEC

#define PP_KEYSPEC   39

Definition at line 2318 of file wincrypt.h.

◆ PP_KEYSTORAGE

#define PP_KEYSTORAGE   17

Definition at line 2301 of file wincrypt.h.

◆ PP_KEYX_KEYSIZE_INC

#define PP_KEYX_KEYSIZE_INC   35

Definition at line 2314 of file wincrypt.h.

◆ PP_NAME

#define PP_NAME   4

Definition at line 2289 of file wincrypt.h.

◆ PP_PROVTYPE

#define PP_PROVTYPE   16

Definition at line 2300 of file wincrypt.h.

◆ PP_ROOT_CERTSTORE

#define PP_ROOT_CERTSTORE   46

Definition at line 2324 of file wincrypt.h.

◆ PP_SESSION_KEYSIZE

#define PP_SESSION_KEYSIZE   20

Definition at line 2303 of file wincrypt.h.

◆ PP_SGC_INFO

#define PP_SGC_INFO   37

Definition at line 2316 of file wincrypt.h.

◆ PP_SIG_KEYSIZE_INC

#define PP_SIG_KEYSIZE_INC   34

Definition at line 2313 of file wincrypt.h.

◆ PP_SIGNATURE_ALG

#define PP_SIGNATURE_ALG   15

Definition at line 2299 of file wincrypt.h.

◆ PP_SIGNATURE_KEYSIZE

#define PP_SIGNATURE_KEYSIZE   13

Definition at line 2297 of file wincrypt.h.

◆ PP_SIGNATURE_PIN

#define PP_SIGNATURE_PIN   33

Definition at line 2312 of file wincrypt.h.

◆ PP_SMARTCARD_GUID

#define PP_SMARTCARD_GUID   45

Definition at line 2323 of file wincrypt.h.

◆ PP_SMARTCARD_READER

#define PP_SMARTCARD_READER   43

Definition at line 2322 of file wincrypt.h.

◆ PP_SYM_KEYSIZE

#define PP_SYM_KEYSIZE   19

Definition at line 2302 of file wincrypt.h.

◆ PP_UI_PROMPT

#define PP_UI_PROMPT   21

Definition at line 2304 of file wincrypt.h.

◆ PP_UNIQUE_CONTAINER

#define PP_UNIQUE_CONTAINER   36

Definition at line 2315 of file wincrypt.h.

◆ PP_USE_HARDWARE_RNG

#define PP_USE_HARDWARE_RNG   38

Definition at line 2317 of file wincrypt.h.

◆ PP_USER_CERTSTORE

#define PP_USER_CERTSTORE   42

Definition at line 2321 of file wincrypt.h.

◆ PP_VERSION

#define PP_VERSION   5

Definition at line 2290 of file wincrypt.h.

◆ PRIVATEKEYBLOB

#define PRIVATEKEYBLOB   0x7

Definition at line 2445 of file wincrypt.h.

◆ PROV_DH_SCHANNEL

#define PROV_DH_SCHANNEL   18

Definition at line 2255 of file wincrypt.h.

◆ PROV_DSS

#define PROV_DSS   3

Definition at line 2245 of file wincrypt.h.

◆ PROV_DSS_DH

#define PROV_DSS_DH   13

Definition at line 2250 of file wincrypt.h.

◆ PROV_EC_ECDSA_FULL

#define PROV_EC_ECDSA_FULL   16

Definition at line 2253 of file wincrypt.h.

◆ PROV_EC_ECDSA_SIG

#define PROV_EC_ECDSA_SIG   14

Definition at line 2251 of file wincrypt.h.

◆ PROV_EC_ECNRA_FULL

#define PROV_EC_ECNRA_FULL   17

Definition at line 2254 of file wincrypt.h.

◆ PROV_EC_ECNRA_SIG

#define PROV_EC_ECNRA_SIG   15

Definition at line 2252 of file wincrypt.h.

◆ PROV_FORTEZZA

#define PROV_FORTEZZA   4

Definition at line 2246 of file wincrypt.h.

◆ PROV_INTEL_SEC

#define PROV_INTEL_SEC   22

Definition at line 2258 of file wincrypt.h.

◆ PROV_MS_EXCHANGE

#define PROV_MS_EXCHANGE   5

Definition at line 2247 of file wincrypt.h.

◆ PROV_REPLACE_OWF

#define PROV_REPLACE_OWF   23

Definition at line 2259 of file wincrypt.h.

◆ PROV_RNG

#define PROV_RNG   21

Definition at line 2257 of file wincrypt.h.

◆ PROV_RSA_AES

#define PROV_RSA_AES   24

Definition at line 2260 of file wincrypt.h.

◆ PROV_RSA_FULL

#define PROV_RSA_FULL   1

Definition at line 2243 of file wincrypt.h.

◆ PROV_RSA_SCHANNEL

#define PROV_RSA_SCHANNEL   12

Definition at line 2249 of file wincrypt.h.

◆ PROV_RSA_SIG

#define PROV_RSA_SIG   2

Definition at line 2244 of file wincrypt.h.

◆ PROV_SPYRUS_LYNKS

#define PROV_SPYRUS_LYNKS   20

Definition at line 2256 of file wincrypt.h.

◆ PROV_SSL

#define PROV_SSL   6

Definition at line 2248 of file wincrypt.h.

◆ PUBLICKEYBLOB

#define PUBLICKEYBLOB   0x6

Definition at line 2444 of file wincrypt.h.

◆ PUBLICKEYBLOBEX

#define PUBLICKEYBLOBEX   0xA

Definition at line 2448 of file wincrypt.h.

◆ RANDOM_PADDING

#define RANDOM_PADDING   2

Definition at line 2377 of file wincrypt.h.

◆ REPORT_NO_PRIVATE_KEY

#define REPORT_NO_PRIVATE_KEY   0x00000001

Definition at line 4331 of file wincrypt.h.

◆ REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY

#define REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY   0x00000002

Definition at line 4332 of file wincrypt.h.

◆ RSA_CSP_PUBLICKEYBLOB

#define RSA_CSP_PUBLICKEYBLOB   ((LPCSTR)19)

Definition at line 3536 of file wincrypt.h.

◆ SCHANNEL_ENC_KEY

#define SCHANNEL_ENC_KEY   1

Definition at line 89 of file wincrypt.h.

◆ SCHANNEL_MAC_KEY

#define SCHANNEL_MAC_KEY   0

Definition at line 88 of file wincrypt.h.

◆ SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC

#define SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC    "SchemeDllRetrieveEncodedObject"

Definition at line 1858 of file wincrypt.h.

◆ SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC

#define SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC    "SchemeDllRetrieveEncodedObjectW"

Definition at line 1860 of file wincrypt.h.

◆ SIMPLEBLOB

#define SIMPLEBLOB   0x1

Definition at line 2443 of file wincrypt.h.

◆ SORTED_CTL_EXT_COUNT_OFFSET

#define SORTED_CTL_EXT_COUNT_OFFSET   (1*4)

Definition at line 740 of file wincrypt.h.

◆ SORTED_CTL_EXT_FLAGS_OFFSET

#define SORTED_CTL_EXT_FLAGS_OFFSET   (0*4)

Definition at line 739 of file wincrypt.h.

◆ SORTED_CTL_EXT_HASH_BUCKET_OFFSET

#define SORTED_CTL_EXT_HASH_BUCKET_OFFSET   (3*4)

Definition at line 742 of file wincrypt.h.

◆ SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG

#define SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG   0x1

Definition at line 744 of file wincrypt.h.

◆ SORTED_CTL_EXT_MAX_COLLISION_OFFSET

#define SORTED_CTL_EXT_MAX_COLLISION_OFFSET   (2*4)

Definition at line 741 of file wincrypt.h.

◆ SYMMETRICWRAPKEYBLOB

#define SYMMETRICWRAPKEYBLOB   0xB

Definition at line 2449 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_COLLECTION

#define sz_CERT_STORE_PROV_COLLECTION   "Collection"

Definition at line 2483 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_FILENAME

#define sz_CERT_STORE_PROV_FILENAME   sz_CERT_STORE_PROV_FILENAME_W

Definition at line 2478 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_FILENAME_W

#define sz_CERT_STORE_PROV_FILENAME_W   "File"

Definition at line 2477 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_LDAP

#define sz_CERT_STORE_PROV_LDAP   sz_CERT_STORE_PROV_LDAP_W

Definition at line 2491 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_LDAP_W

#define sz_CERT_STORE_PROV_LDAP_W   "Ldap"

Definition at line 2490 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_MEMORY

#define sz_CERT_STORE_PROV_MEMORY   "Memory"

Definition at line 2476 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_PHYSICAL

#define sz_CERT_STORE_PROV_PHYSICAL   sz_CERT_STORE_PROV_PHYSICAL_W

Definition at line 2487 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_PHYSICAL_W

#define sz_CERT_STORE_PROV_PHYSICAL_W   "Physical"

Definition at line 2486 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_PKCS7

#define sz_CERT_STORE_PROV_PKCS7   "PKCS7"

Definition at line 2481 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_SERIALIZED

#define sz_CERT_STORE_PROV_SERIALIZED   "Serialized"

Definition at line 2482 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_SMART_CARD

#define sz_CERT_STORE_PROV_SMART_CARD   sz_CERT_STORE_PROV_SMART_CARD_W

Definition at line 2489 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_SMART_CARD_W

#define sz_CERT_STORE_PROV_SMART_CARD_W   "SmartCard"

Definition at line 2488 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_SYSTEM

#define sz_CERT_STORE_PROV_SYSTEM   sz_CERT_STORE_PROV_SYSTEM_W

Definition at line 2480 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_SYSTEM_REGISTRY

#define sz_CERT_STORE_PROV_SYSTEM_REGISTRY   sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W

Definition at line 2485 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W

#define sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W   "SystemRegistry"

Definition at line 2484 of file wincrypt.h.

◆ sz_CERT_STORE_PROV_SYSTEM_W

#define sz_CERT_STORE_PROV_SYSTEM_W   "System"

Definition at line 2479 of file wincrypt.h.

◆ szOID_ANSI_X942

#define szOID_ANSI_X942   "1.2.840.10046"

Definition at line 3211 of file wincrypt.h.

◆ szOID_ANSI_X942_DH

#define szOID_ANSI_X942_DH   "1.2.840.10046.2.1"

Definition at line 3212 of file wincrypt.h.

◆ szOID_ANY_APPLICATION_POLICY

#define szOID_ANY_APPLICATION_POLICY   "1.3.6.1.4.1.311.10.12.1"

Definition at line 3403 of file wincrypt.h.

◆ szOID_ANY_CERT_POLICY

#define szOID_ANY_CERT_POLICY   "2.5.29.32.0"

Definition at line 3354 of file wincrypt.h.

◆ szOID_APPLICATION_CERT_POLICIES

#define szOID_APPLICATION_CERT_POLICIES   "1.3.6.1.4.1.311.21.10"

Definition at line 3431 of file wincrypt.h.

◆ szOID_APPLICATION_POLICY_CONSTRAINTS

#define szOID_APPLICATION_POLICY_CONSTRAINTS   "1.3.6.1.4.1.311.21.12"

Definition at line 3433 of file wincrypt.h.

◆ szOID_APPLICATION_POLICY_MAPPINGS

#define szOID_APPLICATION_POLICY_MAPPINGS   "1.3.6.1.4.1.311.21.11"

Definition at line 3432 of file wincrypt.h.

◆ szOID_ARCHIVED_KEY_ATTR

#define szOID_ARCHIVED_KEY_ATTR   "1.3.6.1.4.1.311.21.13"

Definition at line 3434 of file wincrypt.h.

◆ szOID_ARCHIVED_KEY_CERT_HASH

#define szOID_ARCHIVED_KEY_CERT_HASH   "1.3.6.1.4.1.311.21.16"

Definition at line 3437 of file wincrypt.h.

◆ szOID_AUTHORITY_INFO_ACCESS

#define szOID_AUTHORITY_INFO_ACCESS   "1.3.6.1.5.5.7.1.1"

Definition at line 3446 of file wincrypt.h.

◆ szOID_AUTHORITY_KEY_IDENTIFIER

#define szOID_AUTHORITY_KEY_IDENTIFIER   "2.5.29.1"

Definition at line 3331 of file wincrypt.h.

◆ szOID_AUTHORITY_KEY_IDENTIFIER2

#define szOID_AUTHORITY_KEY_IDENTIFIER2   "2.5.29.35"

Definition at line 3356 of file wincrypt.h.

◆ szOID_AUTHORITY_REVOCATION_LIST

#define szOID_AUTHORITY_REVOCATION_LIST   "2.5.4.38"

Definition at line 3325 of file wincrypt.h.

◆ szOID_AUTO_ENROLL_CTL_USAGE

#define szOID_AUTO_ENROLL_CTL_USAGE   "1.3.6.1.4.1.311.20.1"

Definition at line 3410 of file wincrypt.h.

◆ szOID_BASIC_CONSTRAINTS

#define szOID_BASIC_CONSTRAINTS   "2.5.29.10"

Definition at line 3339 of file wincrypt.h.

◆ szOID_BASIC_CONSTRAINTS2

#define szOID_BASIC_CONSTRAINTS2   "2.5.29.19"

Definition at line 3345 of file wincrypt.h.

◆ szOID_BUSINESS_CATEGORY

#define szOID_BUSINESS_CATEGORY   "2.5.4.15"

Definition at line 3302 of file wincrypt.h.

◆ szOID_CA_CERTIFICATE

#define szOID_CA_CERTIFICATE   "2.5.4.37"

Definition at line 3324 of file wincrypt.h.

◆ szOID_CERT_EXTENSIONS

#define szOID_CERT_EXTENSIONS   "1.3.6.1.4.1.311.2.1.14"

Definition at line 3364 of file wincrypt.h.

◆ szOID_CERT_MANIFOLD

#define szOID_CERT_MANIFOLD   "1.3.6.1.4.1.311.20.3"

Definition at line 3419 of file wincrypt.h.

◆ szOID_CERT_POLICIES

#define szOID_CERT_POLICIES   "2.5.29.32"

Definition at line 3353 of file wincrypt.h.

◆ szOID_CERT_POLICIES_95

#define szOID_CERT_POLICIES_95   "2.5.29.3"

Definition at line 3333 of file wincrypt.h.

◆ szOID_CERTIFICATE_REVOCATION_LIST

#define szOID_CERTIFICATE_REVOCATION_LIST   "2.5.4.39"

Definition at line 3326 of file wincrypt.h.

◆ szOID_CERTIFICATE_TEMPLATE

#define szOID_CERTIFICATE_TEMPLATE   "1.3.6.1.4.1.311.21.7"

Definition at line 3428 of file wincrypt.h.

◆ szOID_CERTSRV_CA_VERSION

#define szOID_CERTSRV_CA_VERSION   "1.3.6.1.4.1.311.21.1"

Definition at line 3421 of file wincrypt.h.

◆ szOID_CERTSRV_CROSSCA_VERSION

#define szOID_CERTSRV_CROSSCA_VERSION   "1.3.6.1.4.1.311.21.22"

Definition at line 3442 of file wincrypt.h.

◆ szOID_CERTSRV_PREVIOUS_CERT_HASH

#define szOID_CERTSRV_PREVIOUS_CERT_HASH   "1.3.6.1.4.1.311.21.2"

Definition at line 3423 of file wincrypt.h.

◆ szOID_CMC

#define szOID_CMC   "1.3.6.1.5.5.7.7"

Definition at line 3459 of file wincrypt.h.

◆ szOID_CMC_ADD_EXTENSIONS

#define szOID_CMC_ADD_EXTENSIONS   "1.3.6.1.5.5.7.7.8"

Definition at line 3467 of file wincrypt.h.

◆ szOID_CMC_DATA_RETURN

#define szOID_CMC_DATA_RETURN   "1.3.6.1.5.5.7.7.4"

Definition at line 3463 of file wincrypt.h.

◆ szOID_CMC_DECRYPTED_POP

#define szOID_CMC_DECRYPTED_POP   "1.3.6.1.5.5.7.7.10"

Definition at line 3469 of file wincrypt.h.

◆ szOID_CMC_ENCRYPTED_POP

#define szOID_CMC_ENCRYPTED_POP   "1.3.6.1.5.5.7.7.9"

Definition at line 3468 of file wincrypt.h.

◆ szOID_CMC_GET_CERT

#define szOID_CMC_GET_CERT   "1.3.6.1.5.5.7.7.15"

Definition at line 3471 of file wincrypt.h.

◆ szOID_CMC_GET_CRL

#define szOID_CMC_GET_CRL   "1.3.6.1.5.5.7.7.16"

Definition at line 3472 of file wincrypt.h.

◆ szOID_CMC_ID_POP_LINK_RANDOM

#define szOID_CMC_ID_POP_LINK_RANDOM   "1.3.6.1.5.5.7.7.22"

Definition at line 3477 of file wincrypt.h.

◆ szOID_CMC_ID_POP_LINK_WITNESS

#define szOID_CMC_ID_POP_LINK_WITNESS   "1.3.6.1.5.5.7.7.23"

Definition at line 3478 of file wincrypt.h.

◆ szOID_CMC_IDENTIFICATION

#define szOID_CMC_IDENTIFICATION   "1.3.6.1.5.5.7.7.2"

Definition at line 3461 of file wincrypt.h.

◆ szOID_CMC_IDENTITY_PROOF

#define szOID_CMC_IDENTITY_PROOF   "1.3.6.1.5.5.7.7.3"

Definition at line 3462 of file wincrypt.h.

◆ szOID_CMC_LRA_POP_WITNESS

#define szOID_CMC_LRA_POP_WITNESS   "1.3.6.1.5.5.7.7.11"

Definition at line 3470 of file wincrypt.h.

◆ szOID_CMC_QUERY_PENDING

#define szOID_CMC_QUERY_PENDING   "1.3.6.1.5.5.7.7.21"

Definition at line 3476 of file wincrypt.h.

◆ szOID_CMC_RECIPIENT_NONCE

#define szOID_CMC_RECIPIENT_NONCE   "1.3.6.1.5.5.7.7.7"

Definition at line 3466 of file wincrypt.h.

◆ szOID_CMC_REG_INFO

#define szOID_CMC_REG_INFO   "1.3.6.1.5.5.7.7.18"

Definition at line 3474 of file wincrypt.h.

◆ szOID_CMC_RESPONSE_INFO

#define szOID_CMC_RESPONSE_INFO   "1.3.6.1.5.5.7.7.19"

Definition at line 3475 of file wincrypt.h.

◆ szOID_CMC_REVOKE_REQUEST

#define szOID_CMC_REVOKE_REQUEST   "1.3.6.1.5.5.7.7.17"

Definition at line 3473 of file wincrypt.h.

◆ szOID_CMC_SENDER_NONCE

#define szOID_CMC_SENDER_NONCE   "1.3.6.1.5.5.7.7.6"

Definition at line 3465 of file wincrypt.h.

◆ szOID_CMC_STATUS_INFO

#define szOID_CMC_STATUS_INFO   "1.3.6.1.5.5.7.7.1"

Definition at line 3460 of file wincrypt.h.

◆ szOID_CMC_TRANSACTION_ID

#define szOID_CMC_TRANSACTION_ID   "1.3.6.1.5.5.7.7.5"

Definition at line 3464 of file wincrypt.h.

◆ szOID_COMMON_NAME

#define szOID_COMMON_NAME   "2.5.4.3"

Definition at line 3290 of file wincrypt.h.

◆ szOID_COUNTRY_NAME

#define szOID_COUNTRY_NAME   "2.5.4.6"

Definition at line 3293 of file wincrypt.h.

◆ szOID_CRL_DIST_POINTS

#define szOID_CRL_DIST_POINTS   "2.5.29.31"

Definition at line 3352 of file wincrypt.h.

◆ szOID_CRL_NEXT_PUBLISH

#define szOID_CRL_NEXT_PUBLISH   "1.3.6.1.4.1.311.21.4"

Definition at line 3425 of file wincrypt.h.

◆ szOID_CRL_NUMBER

#define szOID_CRL_NUMBER   "2.5.29.20"

Definition at line 3346 of file wincrypt.h.

◆ szOID_CRL_REASON_CODE

#define szOID_CRL_REASON_CODE   "2.5.29.21"

Definition at line 3347 of file wincrypt.h.

◆ szOID_CRL_SELF_CDP

#define szOID_CRL_SELF_CDP   "1.3.6.1.4.1.311.21.14"

Definition at line 3435 of file wincrypt.h.

◆ szOID_CRL_VIRTUAL_BASE

#define szOID_CRL_VIRTUAL_BASE   "1.3.6.1.4.1.311.21.3"

Definition at line 3424 of file wincrypt.h.

◆ szOID_CROSS_CERT_DIST_POINTS

#define szOID_CROSS_CERT_DIST_POINTS   "1.3.6.1.4.1.311.10.9.1"

Definition at line 3400 of file wincrypt.h.

◆ szOID_CROSS_CERTIFICATE_PAIR

#define szOID_CROSS_CERTIFICATE_PAIR   "2.5.4.40"

Definition at line 3327 of file wincrypt.h.

◆ szOID_CT_PKI_DATA

#define szOID_CT_PKI_DATA   "1.3.6.1.5.5.7.12.2"

Definition at line 3479 of file wincrypt.h.

◆ szOID_CT_PKI_RESPONSE

#define szOID_CT_PKI_RESPONSE   "1.3.6.1.5.5.7.12.3"

Definition at line 3480 of file wincrypt.h.

◆ szOID_CTL

#define szOID_CTL   "1.3.6.1.4.1.311.10.1"

Definition at line 3401 of file wincrypt.h.

◆ szOID_DELTA_CRL_INDICATOR

#define szOID_DELTA_CRL_INDICATOR   "2.5.29.27"

Definition at line 3349 of file wincrypt.h.

◆ szOID_DESCRIPTION

#define szOID_DESCRIPTION   "2.5.4.13"

Definition at line 3300 of file wincrypt.h.

◆ szOID_DESTINATION_INDICATOR

#define szOID_DESTINATION_INDICATOR   "2.5.4.27"

Definition at line 3314 of file wincrypt.h.

◆ szOID_DEVICE_SERIAL_NUMBER

#define szOID_DEVICE_SERIAL_NUMBER   "2.5.4.5"

Definition at line 3292 of file wincrypt.h.

◆ szOID_DN_QUALIFIER

#define szOID_DN_QUALIFIER   "2.5.4.46"

Definition at line 3330 of file wincrypt.h.

◆ szOID_DOMAIN_COMPONENT

#define szOID_DOMAIN_COMPONENT   "0.9.2342.19200300.100.1.25"

Definition at line 3361 of file wincrypt.h.

◆ szOID_DRM

#define szOID_DRM   "1.3.6.1.4.1.311.10.5.1"

Definition at line 3388 of file wincrypt.h.

◆ szOID_DRM_INDIVIDUALIZATION

#define szOID_DRM_INDIVIDUALIZATION   "1.3.6.1.4.1.311.10.5.2"

Definition at line 3391 of file wincrypt.h.

◆ szOID_DS

#define szOID_DS   "2.5"

Definition at line 3222 of file wincrypt.h.

◆ szOID_DS_EMAIL_REPLICATION

#define szOID_DS_EMAIL_REPLICATION   "1.3.6.1.4.1.311.21.19"

Definition at line 3439 of file wincrypt.h.

◆ szOID_DSALG

#define szOID_DSALG   "2.5.8"

Definition at line 3223 of file wincrypt.h.

◆ szOID_DSALG_CRPT

#define szOID_DSALG_CRPT   "2.5.8.1"

Definition at line 3224 of file wincrypt.h.

◆ szOID_DSALG_HASH

#define szOID_DSALG_HASH   "2.5.8.2"

Definition at line 3225 of file wincrypt.h.

◆ szOID_DSALG_RSA

#define szOID_DSALG_RSA   "2.5.8.1.1"

Definition at line 3227 of file wincrypt.h.

◆ szOID_DSALG_SIGN

#define szOID_DSALG_SIGN   "2.5.8.3"

Definition at line 3226 of file wincrypt.h.

◆ szOID_ECC_CURVE_P256

#define szOID_ECC_CURVE_P256   "1.2.840.10045.3.1.7"

Definition at line 3217 of file wincrypt.h.

◆ szOID_ECC_CURVE_P384

#define szOID_ECC_CURVE_P384   "1.3.132.0.34"

Definition at line 3263 of file wincrypt.h.

◆ szOID_ECC_CURVE_P521

#define szOID_ECC_CURVE_P521   "1.3.132.0.35"

Definition at line 3264 of file wincrypt.h.

◆ szOID_ECC_PUBLIC_KEY

#define szOID_ECC_PUBLIC_KEY   "1.2.840.10045.2.1"

Definition at line 3216 of file wincrypt.h.

◆ szOID_ECDSA_SHA256

#define szOID_ECDSA_SHA256   "1.2.840.10045.4.3.2"

Definition at line 3219 of file wincrypt.h.

◆ szOID_ECDSA_SHA384

#define szOID_ECDSA_SHA384   "1.2.840.10045.4.3.3"

Definition at line 3220 of file wincrypt.h.

◆ szOID_ECDSA_SHA512

#define szOID_ECDSA_SHA512   "1.2.840.10045.4.3.4"

Definition at line 3221 of file wincrypt.h.

◆ szOID_ECDSA_SPECIFIED

#define szOID_ECDSA_SPECIFIED   "1.2.840.10045.4.3"

Definition at line 3218 of file wincrypt.h.

◆ szOID_EFS_RECOVERY

#define szOID_EFS_RECOVERY   "1.3.6.1.4.1.311.10.3.4.1"

Definition at line 3375 of file wincrypt.h.

◆ szOID_EMBEDDED_NT_CRYPTO

#define szOID_EMBEDDED_NT_CRYPTO   "1.3.6.1.4.1.311.10.3.8"

Definition at line 3379 of file wincrypt.h.

◆ szOID_ENCRYPTED_KEY_HASH

#define szOID_ENCRYPTED_KEY_HASH   "1.3.6.1.4.1.311.21.21"

Definition at line 3441 of file wincrypt.h.

◆ szOID_ENHANCED_KEY_USAGE

#define szOID_ENHANCED_KEY_USAGE   "2.5.29.37"

Definition at line 3358 of file wincrypt.h.

◆ szOID_ENROLL_CERTTYPE_EXTENSION

#define szOID_ENROLL_CERTTYPE_EXTENSION   "1.3.6.1.4.1.311.20.2"

Definition at line 3411 of file wincrypt.h.

◆ szOID_ENROLLMENT_AGENT

#define szOID_ENROLLMENT_AGENT   "1.3.6.1.4.1.311.20.2.1"

Definition at line 3412 of file wincrypt.h.

◆ szOID_ENROLLMENT_CSP_PROVIDER

#define szOID_ENROLLMENT_CSP_PROVIDER   "1.3.6.1.4.1.311.13.2.2"

Definition at line 3406 of file wincrypt.h.

◆ szOID_ENROLLMENT_NAME_VALUE_PAIR

#define szOID_ENROLLMENT_NAME_VALUE_PAIR   "1.3.6.1.4.1.311.13.2.1"

Definition at line 3405 of file wincrypt.h.

◆ szOID_ENTERPRISE_OID_ROOT

#define szOID_ENTERPRISE_OID_ROOT   "1.3.6.1.4.1.311.21.8"

Definition at line 3429 of file wincrypt.h.

◆ szOID_FACSIMILE_TELEPHONE_NUMBER

#define szOID_FACSIMILE_TELEPHONE_NUMBER   "2.5.4.23"

Definition at line 3310 of file wincrypt.h.

◆ szOID_FRESHEST_CRL

#define szOID_FRESHEST_CRL   "2.5.29.46"

Definition at line 3359 of file wincrypt.h.

◆ szOID_GIVEN_NAME

#define szOID_GIVEN_NAME   "2.5.4.42"

Definition at line 3328 of file wincrypt.h.

◆ szOID_INFOSEC

#define szOID_INFOSEC   "2.16.840.1.101.2.1"

Definition at line 3265 of file wincrypt.h.

◆ szOID_INFOSEC_mosaicConfidentiality

#define szOID_INFOSEC_mosaicConfidentiality   "2.16.840.1.101.2.1.1.4"

Definition at line 3269 of file wincrypt.h.

◆ szOID_INFOSEC_mosaicIntegrity

#define szOID_INFOSEC_mosaicIntegrity   "2.16.840.1.101.2.1.1.6"

Definition at line 3271 of file wincrypt.h.

◆ szOID_INFOSEC_mosaicKeyManagement

#define szOID_INFOSEC_mosaicKeyManagement   "2.16.840.1.101.2.1.1.10"

Definition at line 3275 of file wincrypt.h.

◆ szOID_INFOSEC_mosaicKMandSig

#define szOID_INFOSEC_mosaicKMandSig   "2.16.840.1.101.2.1.1.12"

Definition at line 3277 of file wincrypt.h.

◆ szOID_INFOSEC_mosaicKMandUpdSig

#define szOID_INFOSEC_mosaicKMandUpdSig   "2.16.840.1.101.2.1.1.20"

Definition at line 3285 of file wincrypt.h.

◆ szOID_INFOSEC_mosaicSignature

#define szOID_INFOSEC_mosaicSignature   "2.16.840.1.101.2.1.1.2"

Definition at line 3267 of file wincrypt.h.

◆ szOID_INFOSEC_mosaicTokenProtection

#define szOID_INFOSEC_mosaicTokenProtection   "2.16.840.1.101.2.1.1.8"

Definition at line 3273 of file wincrypt.h.

◆ szOID_INFOSEC_mosaicUpdatedSig

#define szOID_INFOSEC_mosaicUpdatedSig   "2.16.840.1.101.2.1.1.19"

Definition at line 3284 of file wincrypt.h.

◆ szOID_INFOSEC_mosaicUpdateInteg

#define szOID_INFOSEC_mosaicUpdateInteg   "2.16.840.1.101.2.1.1.21"

Definition at line 3286 of file wincrypt.h.

◆ szOID_INFOSEC_sdnsConfidentiality

#define szOID_INFOSEC_sdnsConfidentiality   "2.16.840.1.101.2.1.1.3"

Definition at line 3268 of file wincrypt.h.

◆ szOID_INFOSEC_sdnsIntegrity

#define szOID_INFOSEC_sdnsIntegrity   "2.16.840.1.101.2.1.1.5"

Definition at line 3270 of file wincrypt.h.

◆ szOID_INFOSEC_sdnsKeyManagement

#define szOID_INFOSEC_sdnsKeyManagement   "2.16.840.1.101.2.1.1.9"

Definition at line 3274 of file wincrypt.h.

◆ szOID_INFOSEC_sdnsKMandSig

#define szOID_INFOSEC_sdnsKMandSig   "2.16.840.1.101.2.1.1.11"

Definition at line 3276 of file wincrypt.h.

◆ szOID_INFOSEC_sdnsSignature

#define szOID_INFOSEC_sdnsSignature   "2.16.840.1.101.2.1.1.1"

Definition at line 3266 of file wincrypt.h.

◆ szOID_INFOSEC_sdnsTokenProtection

#define szOID_INFOSEC_sdnsTokenProtection   "2.16.840.1.101.2.1.1.7"

Definition at line 3272 of file wincrypt.h.

◆ szOID_INFOSEC_SuiteAConfidentiality

#define szOID_INFOSEC_SuiteAConfidentiality   "2.16.840.1.101.2.1.1.14"

Definition at line 3279 of file wincrypt.h.

◆ szOID_INFOSEC_SuiteAIntegrity

#define szOID_INFOSEC_SuiteAIntegrity   "2.16.840.1.101.2.1.1.15"

Definition at line 3280 of file wincrypt.h.

◆ szOID_INFOSEC_SuiteAKeyManagement

#define szOID_INFOSEC_SuiteAKeyManagement   "2.16.840.1.101.2.1.1.17"

Definition at line 3282 of file wincrypt.h.

◆ szOID_INFOSEC_SuiteAKMandSig

#define szOID_INFOSEC_SuiteAKMandSig   "2.16.840.1.101.2.1.1.18"

Definition at line 3283 of file wincrypt.h.

◆ szOID_INFOSEC_SuiteASignature

#define szOID_INFOSEC_SuiteASignature   "2.16.840.1.101.2.1.1.13"

Definition at line 3278 of file wincrypt.h.

◆ szOID_INFOSEC_SuiteATokenProtection

#define szOID_INFOSEC_SuiteATokenProtection   "2.16.840.1.101.2.1.1.16"

Definition at line 3281 of file wincrypt.h.

◆ szOID_INHIBIT_ANY_POLICY

#define szOID_INHIBIT_ANY_POLICY   "2.5.29.54"

Definition at line 3360 of file wincrypt.h.

◆ szOID_INITIALS

#define szOID_INITIALS   "2.5.4.43"

Definition at line 3329 of file wincrypt.h.

◆ szOID_INTERNATIONAL_ISDN_NUMBER

#define szOID_INTERNATIONAL_ISDN_NUMBER   "2.5.4.25"

Definition at line 3312 of file wincrypt.h.

◆ szOID_IPSEC_KP_IKE_INTERMEDIATE

#define szOID_IPSEC_KP_IKE_INTERMEDIATE   "1.3.6.1.5.5.8.2.2"

Definition at line 3484 of file wincrypt.h.

◆ szOID_ISSUED_CERT_HASH

#define szOID_ISSUED_CERT_HASH   "1.3.6.1.4.1.311.21.17"

Definition at line 3438 of file wincrypt.h.

◆ szOID_ISSUER_ALT_NAME

#define szOID_ISSUER_ALT_NAME   "2.5.29.8"

Definition at line 3337 of file wincrypt.h.

◆ szOID_ISSUER_ALT_NAME2

#define szOID_ISSUER_ALT_NAME2   "2.5.29.18"

Definition at line 3344 of file wincrypt.h.

◆ szOID_ISSUING_DIST_POINT

#define szOID_ISSUING_DIST_POINT   "2.5.29.28"

Definition at line 3350 of file wincrypt.h.

◆ szOID_KEY_ATTRIBUTES

#define szOID_KEY_ATTRIBUTES   "2.5.29.2"

Definition at line 3332 of file wincrypt.h.

◆ szOID_KEY_USAGE

#define szOID_KEY_USAGE   "2.5.29.15"

Definition at line 3341 of file wincrypt.h.

◆ szOID_KEY_USAGE_RESTRICTION

#define szOID_KEY_USAGE_RESTRICTION   "2.5.29.4"

Definition at line 3334 of file wincrypt.h.

◆ szOID_KEYID_RDN

#define szOID_KEYID_RDN   "1.3.6.1.4.1.311.10.7.1"

Definition at line 3443 of file wincrypt.h.

◆ szOID_KP_CA_EXCHANGE

#define szOID_KP_CA_EXCHANGE   "1.3.6.1.4.1.311.21.5"

Definition at line 3426 of file wincrypt.h.

◆ szOID_KP_CTL_USAGE_SIGNING

#define szOID_KP_CTL_USAGE_SIGNING   "1.3.6.1.4.1.311.10.3.1"

Definition at line 3366 of file wincrypt.h.

◆ szOID_KP_DOCUMENT_SIGNING

#define szOID_KP_DOCUMENT_SIGNING   "1.3.6.1.4.1.311.10.3.12"

Definition at line 3383 of file wincrypt.h.

◆ szOID_KP_EFS

#define szOID_KP_EFS   "1.3.6.1.4.1.311.10.3.4"

Definition at line 3374 of file wincrypt.h.

◆ szOID_KP_KEY_RECOVERY

#define szOID_KP_KEY_RECOVERY   "1.3.6.1.4.1.311.10.3.11"

Definition at line 3382 of file wincrypt.h.

◆ szOID_KP_KEY_RECOVERY_AGENT

#define szOID_KP_KEY_RECOVERY_AGENT   "1.3.6.1.4.1.311.21.6"

Definition at line 3427 of file wincrypt.h.

◆ szOID_KP_LIFETIME_SIGNING

#define szOID_KP_LIFETIME_SIGNING   "1.3.6.1.4.1.311.10.3.13"

Definition at line 3384 of file wincrypt.h.

◆ szOID_KP_MOBILE_DEVICE_SOFTWARE

#define szOID_KP_MOBILE_DEVICE_SOFTWARE   "1.3.6.1.4.1.311.10.3.14"

Definition at line 3385 of file wincrypt.h.

◆ szOID_KP_QUALIFIED_SUBORDINATION

#define szOID_KP_QUALIFIED_SUBORDINATION   "1.3.6.1.4.1.311.10.3.10"

Definition at line 3381 of file wincrypt.h.

◆ szOID_KP_SMARTCARD_LOGON

#define szOID_KP_SMARTCARD_LOGON   "1.3.6.1.4.1.311.20.2.2"

Definition at line 3414 of file wincrypt.h.

◆ szOID_KP_TIME_STAMP_SIGNING

#define szOID_KP_TIME_STAMP_SIGNING   "1.3.6.1.4.1.311.10.3.2"

Definition at line 3367 of file wincrypt.h.

◆ szOID_LEGACY_POLICY_MAPPINGS

#define szOID_LEGACY_POLICY_MAPPINGS   "2.5.29.5"

Definition at line 3335 of file wincrypt.h.

◆ szOID_LICENSE_SERVER

#define szOID_LICENSE_SERVER   "1.3.6.1.4.1.311.10.6.2"

Definition at line 3397 of file wincrypt.h.

◆ szOID_LICENSES

#define szOID_LICENSES   "1.3.6.1.4.1.311.10.6.1"

Definition at line 3394 of file wincrypt.h.

◆ szOID_LOCAL_MACHINE_KEYSET

#define szOID_LOCAL_MACHINE_KEYSET   "1.3.6.1.4.1.311.17.2"

Definition at line 3409 of file wincrypt.h.

◆ szOID_LOCALITY_NAME

#define szOID_LOCALITY_NAME   "2.5.4.7"

Definition at line 3294 of file wincrypt.h.

◆ szOID_MEMBER

#define szOID_MEMBER   "2.5.4.31"

Definition at line 3318 of file wincrypt.h.

◆ szOID_NAME_CONSTRAINTS

#define szOID_NAME_CONSTRAINTS   "2.5.29.30"

Definition at line 3351 of file wincrypt.h.

◆ szOID_NETSCAPE

#define szOID_NETSCAPE   "2.16.840.1.113730"

Definition at line 3494 of file wincrypt.h.

◆ szOID_NETSCAPE_BASE_URL

#define szOID_NETSCAPE_BASE_URL   "2.16.840.1.113730.1.2"

Definition at line 3497 of file wincrypt.h.

◆ szOID_NETSCAPE_CA_POLICY_URL

#define szOID_NETSCAPE_CA_POLICY_URL   "2.16.840.1.113730.1.8"

Definition at line 3501 of file wincrypt.h.

◆ szOID_NETSCAPE_CA_REVOCATION_URL

#define szOID_NETSCAPE_CA_REVOCATION_URL   "2.16.840.1.113730.1.4"

Definition at line 3499 of file wincrypt.h.

◆ szOID_NETSCAPE_CERT_EXTENSION

#define szOID_NETSCAPE_CERT_EXTENSION   "2.16.840.1.113730.1"

Definition at line 3495 of file wincrypt.h.

◆ szOID_NETSCAPE_CERT_RENEWAL_URL

#define szOID_NETSCAPE_CERT_RENEWAL_URL   "2.16.840.1.113730.1.7"

Definition at line 3500 of file wincrypt.h.

◆ szOID_NETSCAPE_CERT_SEQUENCE

#define szOID_NETSCAPE_CERT_SEQUENCE   "2.16.840.1.113730.2.5"

Definition at line 3505 of file wincrypt.h.

◆ szOID_NETSCAPE_CERT_TYPE

#define szOID_NETSCAPE_CERT_TYPE   "2.16.840.1.113730.1.1"

Definition at line 3496 of file wincrypt.h.

◆ szOID_NETSCAPE_COMMENT

#define szOID_NETSCAPE_COMMENT   "2.16.840.1.113730.1.13"

Definition at line 3503 of file wincrypt.h.

◆ szOID_NETSCAPE_DATA_TYPE

#define szOID_NETSCAPE_DATA_TYPE   "2.16.840.1.113730.2"

Definition at line 3504 of file wincrypt.h.

◆ szOID_NETSCAPE_REVOCATION_URL

#define szOID_NETSCAPE_REVOCATION_URL   "2.16.840.1.113730.1.3"

Definition at line 3498 of file wincrypt.h.

◆ szOID_NETSCAPE_SSL_SERVER_NAME

#define szOID_NETSCAPE_SSL_SERVER_NAME   "2.16.840.1.113730.1.12"

Definition at line 3502 of file wincrypt.h.

◆ szOID_NEXT_UPDATE_LOCATION

#define szOID_NEXT_UPDATE_LOCATION   "1.3.6.1.4.1.311.10.2"

Definition at line 3365 of file wincrypt.h.

◆ szOID_NIST_sha256

#define szOID_NIST_sha256   "2.16.840.1.101.3.4.2.1"

Definition at line 3287 of file wincrypt.h.

◆ szOID_NIST_sha384

#define szOID_NIST_sha384   "2.16.840.1.101.3.4.2.2"

Definition at line 3288 of file wincrypt.h.

◆ szOID_NIST_sha512

#define szOID_NIST_sha512   "2.16.840.1.101.3.4.2.3"

Definition at line 3289 of file wincrypt.h.

◆ szOID_NT5_CRYPTO

#define szOID_NT5_CRYPTO   "1.3.6.1.4.1.311.10.3.6"

Definition at line 3377 of file wincrypt.h.

◆ szOID_NT_PRINCIPAL_NAME

#define szOID_NT_PRINCIPAL_NAME   "1.3.6.1.4.1.311.20.2.3"

Definition at line 3417 of file wincrypt.h.

◆ szOID_OEM_WHQL_CRYPTO

#define szOID_OEM_WHQL_CRYPTO   "1.3.6.1.4.1.311.10.3.7"

Definition at line 3378 of file wincrypt.h.

◆ szOID_OIW

#define szOID_OIW   "1.3.14"

Definition at line 3228 of file wincrypt.h.

◆ szOID_OIWDIR

#define szOID_OIWDIR   "1.3.14.7.2"

Definition at line 3257 of file wincrypt.h.

◆ szOID_OIWDIR_CRPT

#define szOID_OIWDIR_CRPT   "1.3.14.7.2.1"

Definition at line 3258 of file wincrypt.h.

◆ szOID_OIWDIR_HASH

#define szOID_OIWDIR_HASH   "1.3.14.7.2.2"

Definition at line 3259 of file wincrypt.h.

◆ szOID_OIWDIR_md2

#define szOID_OIWDIR_md2   "1.3.14.7.2.2.1"

Definition at line 3261 of file wincrypt.h.

◆ szOID_OIWDIR_md2RSA

#define szOID_OIWDIR_md2RSA   "1.3.14.7.2.3.1"

Definition at line 3262 of file wincrypt.h.

◆ szOID_OIWDIR_SIGN

#define szOID_OIWDIR_SIGN   "1.3.14.7.2.3"

Definition at line 3260 of file wincrypt.h.

◆ szOID_OIWSEC

#define szOID_OIWSEC   "1.3.14.3.2"

Definition at line 3229 of file wincrypt.h.

◆ szOID_OIWSEC_desCBC

#define szOID_OIWSEC_desCBC   "1.3.14.3.2.7"

Definition at line 3234 of file wincrypt.h.

◆ szOID_OIWSEC_desCFB

#define szOID_OIWSEC_desCFB   "1.3.14.3.2.9"

Definition at line 3236 of file wincrypt.h.

◆ szOID_OIWSEC_desECB

#define szOID_OIWSEC_desECB   "1.3.14.3.2.6"

Definition at line 3233 of file wincrypt.h.

◆ szOID_OIWSEC_desEDE

#define szOID_OIWSEC_desEDE   "1.3.14.3.2.17"

Definition at line 3244 of file wincrypt.h.

◆ szOID_OIWSEC_desMAC

#define szOID_OIWSEC_desMAC   "1.3.14.3.2.10"

Definition at line 3237 of file wincrypt.h.

◆ szOID_OIWSEC_desOFB

#define szOID_OIWSEC_desOFB   "1.3.14.3.2.8"

Definition at line 3235 of file wincrypt.h.

◆ szOID_OIWSEC_dhCommMod

#define szOID_OIWSEC_dhCommMod   "1.3.14.3.2.16"

Definition at line 3243 of file wincrypt.h.

◆ szOID_OIWSEC_dsa

#define szOID_OIWSEC_dsa   "1.3.14.3.2.12"

Definition at line 3239 of file wincrypt.h.

◆ szOID_OIWSEC_dsaComm

#define szOID_OIWSEC_dsaComm   "1.3.14.3.2.20"

Definition at line 3247 of file wincrypt.h.

◆ szOID_OIWSEC_dsaCommSHA

#define szOID_OIWSEC_dsaCommSHA   "1.3.14.3.2.21"

Definition at line 3248 of file wincrypt.h.

◆ szOID_OIWSEC_dsaCommSHA1

#define szOID_OIWSEC_dsaCommSHA1   "1.3.14.3.2.28"

Definition at line 3255 of file wincrypt.h.

◆ szOID_OIWSEC_dsaSHA1

#define szOID_OIWSEC_dsaSHA1   "1.3.14.3.2.27"

Definition at line 3254 of file wincrypt.h.

◆ szOID_OIWSEC_keyHashSeal

#define szOID_OIWSEC_keyHashSeal   "1.3.14.3.2.23"

Definition at line 3250 of file wincrypt.h.

◆ szOID_OIWSEC_md2RSASign

#define szOID_OIWSEC_md2RSASign   "1.3.14.3.2.24"

Definition at line 3251 of file wincrypt.h.

◆ szOID_OIWSEC_md4RSA

#define szOID_OIWSEC_md4RSA   "1.3.14.3.2.2"

Definition at line 3230 of file wincrypt.h.

◆ szOID_OIWSEC_md4RSA2

#define szOID_OIWSEC_md4RSA2   "1.3.14.3.2.4"

Definition at line 3232 of file wincrypt.h.

◆ szOID_OIWSEC_md5RSA

#define szOID_OIWSEC_md5RSA   "1.3.14.3.2.3"

Definition at line 3231 of file wincrypt.h.

◆ szOID_OIWSEC_md5RSASign

#define szOID_OIWSEC_md5RSASign   "1.3.14.3.2.25"

Definition at line 3252 of file wincrypt.h.

◆ szOID_OIWSEC_mdc2

#define szOID_OIWSEC_mdc2   "1.3.14.3.2.19"

Definition at line 3246 of file wincrypt.h.

◆ szOID_OIWSEC_mdc2RSA

#define szOID_OIWSEC_mdc2RSA   "1.3.14.3.2.14"

Definition at line 3241 of file wincrypt.h.

◆ szOID_OIWSEC_rsaSign

#define szOID_OIWSEC_rsaSign   "1.3.14.3.2.11"

Definition at line 3238 of file wincrypt.h.

◆ szOID_OIWSEC_rsaXchg

#define szOID_OIWSEC_rsaXchg   "1.3.14.3.2.22"

Definition at line 3249 of file wincrypt.h.

◆ szOID_OIWSEC_sha

#define szOID_OIWSEC_sha   "1.3.14.3.2.18"

Definition at line 3245 of file wincrypt.h.

◆ szOID_OIWSEC_sha1

#define szOID_OIWSEC_sha1   "1.3.14.3.2.26"

Definition at line 3253 of file wincrypt.h.

◆ szOID_OIWSEC_sha1RSASign

#define szOID_OIWSEC_sha1RSASign   "1.3.14.3.2.29"

Definition at line 3256 of file wincrypt.h.

◆ szOID_OIWSEC_shaDSA

#define szOID_OIWSEC_shaDSA   "1.3.14.3.2.13"

Definition at line 3240 of file wincrypt.h.

◆ szOID_OIWSEC_shaRSA

#define szOID_OIWSEC_shaRSA   "1.3.14.3.2.15"

Definition at line 3242 of file wincrypt.h.

◆ szOID_ORGANIZATION_NAME

#define szOID_ORGANIZATION_NAME   "2.5.4.10"

Definition at line 3297 of file wincrypt.h.

◆ szOID_ORGANIZATIONAL_UNIT_NAME

#define szOID_ORGANIZATIONAL_UNIT_NAME   "2.5.4.11"

Definition at line 3298 of file wincrypt.h.

◆ szOID_OS_VERSION

#define szOID_OS_VERSION   "1.3.6.1.4.1.311.13.2.3"

Definition at line 3407 of file wincrypt.h.

◆ szOID_OWNER

#define szOID_OWNER   "2.5.4.32"

Definition at line 3319 of file wincrypt.h.

◆ szOID_PHYSICAL_DELIVERY_OFFICE_NAME

#define szOID_PHYSICAL_DELIVERY_OFFICE_NAME   "2.5.4.19"

Definition at line 3306 of file wincrypt.h.

◆ szOID_PKCS

#define szOID_PKCS   "1.2.840.113549.1"

Definition at line 3154 of file wincrypt.h.

◆ szOID_PKCS_1

#define szOID_PKCS_1   "1.2.840.113549.1.1"

Definition at line 3157 of file wincrypt.h.

◆ szOID_PKCS_10

#define szOID_PKCS_10   "1.2.840.113549.1.10"

Definition at line 3166 of file wincrypt.h.

◆ szOID_PKCS_11

#define szOID_PKCS_11   "1.2.840.113549.1.12"

Definition at line 3167 of file wincrypt.h.

◆ szOID_PKCS_12_FRIENDLY_NAME_ATTR

#define szOID_PKCS_12_FRIENDLY_NAME_ATTR   "1.2.840.113549.1.9.20"

Definition at line 3362 of file wincrypt.h.

◆ szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR

#define szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR   "1.3.6.1.4.1.311.17.1"

Definition at line 3408 of file wincrypt.h.

◆ szOID_PKCS_12_LOCAL_KEY_ID

#define szOID_PKCS_12_LOCAL_KEY_ID   "1.2.840.113549.1.9.21"

Definition at line 3363 of file wincrypt.h.

◆ szOID_PKCS_2

#define szOID_PKCS_2   "1.2.840.113549.1.2"

Definition at line 3158 of file wincrypt.h.

◆ szOID_PKCS_3

#define szOID_PKCS_3   "1.2.840.113549.1.3"

Definition at line 3159 of file wincrypt.h.

◆ szOID_PKCS_4

#define szOID_PKCS_4   "1.2.840.113549.1.4"

Definition at line 3160 of file wincrypt.h.

◆ szOID_PKCS_5

#define szOID_PKCS_5   "1.2.840.113549.1.5"

Definition at line 3161 of file wincrypt.h.

◆ szOID_PKCS_6

#define szOID_PKCS_6   "1.2.840.113549.1.6"

Definition at line 3162 of file wincrypt.h.

◆ szOID_PKCS_7

#define szOID_PKCS_7   "1.2.840.113549.1.7"

Definition at line 3163 of file wincrypt.h.

◆ szOID_PKCS_8

#define szOID_PKCS_8   "1.2.840.113549.1.8"

Definition at line 3164 of file wincrypt.h.

◆ szOID_PKCS_9

#define szOID_PKCS_9   "1.2.840.113549.1.9"

Definition at line 3165 of file wincrypt.h.

◆ szOID_PKIX

#define szOID_PKIX   "1.3.6.1.5.5.7"

Definition at line 3444 of file wincrypt.h.

◆ szOID_PKIX_ACC_DESCR

#define szOID_PKIX_ACC_DESCR   "1.3.6.1.5.5.7.48"

Definition at line 3481 of file wincrypt.h.

◆ szOID_PKIX_CA_ISSUERS

#define szOID_PKIX_CA_ISSUERS   "1.3.6.1.5.5.7.48.2"

Definition at line 3483 of file wincrypt.h.

◆ szOID_PKIX_KP

#define szOID_PKIX_KP   "1.3.6.1.5.5.7.3"

Definition at line 3449 of file wincrypt.h.

◆ szOID_PKIX_KP_CLIENT_AUTH

#define szOID_PKIX_KP_CLIENT_AUTH   "1.3.6.1.5.5.7.3.2"

Definition at line 3451 of file wincrypt.h.

◆ szOID_PKIX_KP_CODE_SIGNING

#define szOID_PKIX_KP_CODE_SIGNING   "1.3.6.1.5.5.7.3.3"

Definition at line 3452 of file wincrypt.h.

◆ szOID_PKIX_KP_EMAIL_PROTECTION

#define szOID_PKIX_KP_EMAIL_PROTECTION   "1.3.6.1.5.5.7.3.4"

Definition at line 3453 of file wincrypt.h.

◆ szOID_PKIX_KP_IPSEC_END_SYSTEM

#define szOID_PKIX_KP_IPSEC_END_SYSTEM   "1.3.6.1.5.5.7.3.5"

Definition at line 3454 of file wincrypt.h.

◆ szOID_PKIX_KP_IPSEC_TUNNEL

#define szOID_PKIX_KP_IPSEC_TUNNEL   "1.3.6.1.5.5.7.3.6"

Definition at line 3455 of file wincrypt.h.

◆ szOID_PKIX_KP_IPSEC_USER

#define szOID_PKIX_KP_IPSEC_USER   "1.3.6.1.5.5.7.3.7"

Definition at line 3456 of file wincrypt.h.

◆ szOID_PKIX_KP_SERVER_AUTH

#define szOID_PKIX_KP_SERVER_AUTH   "1.3.6.1.5.5.7.3.1"

Definition at line 3450 of file wincrypt.h.

◆ szOID_PKIX_KP_TIMESTAMP_SIGNING

#define szOID_PKIX_KP_TIMESTAMP_SIGNING   "1.3.6.1.5.5.7.3.8"

Definition at line 3457 of file wincrypt.h.

◆ szOID_PKIX_NO_SIGNATURE

#define szOID_PKIX_NO_SIGNATURE   "1.3.6.1.5.5.7.6.2"

Definition at line 3458 of file wincrypt.h.

◆ szOID_PKIX_OCSP

#define szOID_PKIX_OCSP   "1.3.6.1.5.5.7.48.1"

Definition at line 3482 of file wincrypt.h.

◆ szOID_PKIX_OCSP_BASIC_SIGNED_RESPONSE

#define szOID_PKIX_OCSP_BASIC_SIGNED_RESPONSE   "1.3.6.1.5.5.7.48.1.1"

Definition at line 678 of file wincrypt.h.

◆ szOID_PKIX_PE

#define szOID_PKIX_PE   "1.3.6.1.5.5.7.1"

Definition at line 3445 of file wincrypt.h.

◆ szOID_PKIX_POLICY_QUALIFIER_CPS

#define szOID_PKIX_POLICY_QUALIFIER_CPS   "1.3.6.1.5.5.7.2.1"

Definition at line 3447 of file wincrypt.h.

◆ szOID_PKIX_POLICY_QUALIFIER_USERNOTICE

#define szOID_PKIX_POLICY_QUALIFIER_USERNOTICE   "1.3.6.1.5.5.7.2.2"

Definition at line 3448 of file wincrypt.h.

◆ szOID_POLICY_CONSTRAINTS

#define szOID_POLICY_CONSTRAINTS   "2.5.29.36"

Definition at line 3357 of file wincrypt.h.

◆ szOID_POLICY_MAPPINGS

#define szOID_POLICY_MAPPINGS   "2.5.29.33"

Definition at line 3355 of file wincrypt.h.

◆ szOID_POST_OFFICE_BOX

#define szOID_POST_OFFICE_BOX   "2.5.4.18"

Definition at line 3305 of file wincrypt.h.

◆ szOID_POSTAL_ADDRESS

#define szOID_POSTAL_ADDRESS   "2.5.4.16"

Definition at line 3303 of file wincrypt.h.

◆ szOID_POSTAL_CODE

#define szOID_POSTAL_CODE   "2.5.4.17"

Definition at line 3304 of file wincrypt.h.

◆ szOID_PREFERRED_DELIVERY_METHOD

#define szOID_PREFERRED_DELIVERY_METHOD   "2.5.4.28"

Definition at line 3315 of file wincrypt.h.

◆ szOID_PRESENTATION_ADDRESS

#define szOID_PRESENTATION_ADDRESS   "2.5.4.29"

Definition at line 3316 of file wincrypt.h.

◆ szOID_PRIVATEKEY_USAGE_PERIOD

#define szOID_PRIVATEKEY_USAGE_PERIOD   "2.5.29.16"

Definition at line 3342 of file wincrypt.h.

◆ szOID_PRODUCT_UPDATE

#define szOID_PRODUCT_UPDATE   "1.3.6.1.4.1.311.31.1"

Definition at line 3491 of file wincrypt.h.

◆ szOID_RDN_DUMMY_SIGNER

#define szOID_RDN_DUMMY_SIGNER   "1.3.6.1.4.1.311.21.9"

Definition at line 3430 of file wincrypt.h.

◆ szOID_REASON_CODE_HOLD

#define szOID_REASON_CODE_HOLD   "2.5.29.23"

Definition at line 3348 of file wincrypt.h.

◆ szOID_REGISTERED_ADDRESS

#define szOID_REGISTERED_ADDRESS   "2.5.4.26"

Definition at line 3313 of file wincrypt.h.

◆ szOID_REMOVE_CERTIFICATE

#define szOID_REMOVE_CERTIFICATE   "1.3.6.1.4.1.311.10.8.1"

Definition at line 3399 of file wincrypt.h.

◆ szOID_RENEWAL_CERTIFICATE

#define szOID_RENEWAL_CERTIFICATE   "1.3.6.1.4.1.311.13.1"

Definition at line 3404 of file wincrypt.h.

◆ szOID_REQUEST_CLIENT_INFO

#define szOID_REQUEST_CLIENT_INFO   "1.3.6.1.4.1.311.21.20"

Definition at line 3440 of file wincrypt.h.

◆ szOID_REQUIRE_CERT_CHAIN_POLICY

#define szOID_REQUIRE_CERT_CHAIN_POLICY   "1.3.6.1.4.1.311.21.15"

Definition at line 3436 of file wincrypt.h.

◆ szOID_ROLE_OCCUPANT

#define szOID_ROLE_OCCUPANT   "2.5.4.33"

Definition at line 3320 of file wincrypt.h.

◆ szOID_ROOT_LIST_SIGNER

#define szOID_ROOT_LIST_SIGNER   "1.3.6.1.4.1.311.10.3.9"

Definition at line 3380 of file wincrypt.h.

◆ szOID_RSA

#define szOID_RSA   "1.2.840.113549"

Definition at line 3153 of file wincrypt.h.

◆ szOID_RSA_certExtensions

#define szOID_RSA_certExtensions   "1.2.840.113549.1.9.14"

Definition at line 3197 of file wincrypt.h.

◆ szOID_RSA_challengePwd

#define szOID_RSA_challengePwd   "1.2.840.113549.1.9.7"

Definition at line 3194 of file wincrypt.h.

◆ szOID_RSA_contentType

#define szOID_RSA_contentType   "1.2.840.113549.1.9.3"

Definition at line 3190 of file wincrypt.h.

◆ szOID_RSA_counterSign

#define szOID_RSA_counterSign   "1.2.840.113549.1.9.6"

Definition at line 3193 of file wincrypt.h.

◆ szOID_RSA_data

#define szOID_RSA_data   "1.2.840.113549.1.7.1"

Definition at line 3181 of file wincrypt.h.

◆ szOID_RSA_DES_EDE3_CBC

#define szOID_RSA_DES_EDE3_CBC   "1.2.840.113549.3.7"

Definition at line 3209 of file wincrypt.h.

◆ szOID_RSA_DH

#define szOID_RSA_DH   "1.2.840.113549.1.3.1"

Definition at line 3180 of file wincrypt.h.

◆ szOID_RSA_digestedData

#define szOID_RSA_digestedData   "1.2.840.113549.1.7.5"

Definition at line 3185 of file wincrypt.h.

◆ szOID_RSA_emailAddr

#define szOID_RSA_emailAddr   "1.2.840.113549.1.9.1"

Definition at line 3188 of file wincrypt.h.

◆ szOID_RSA_ENCRYPT

#define szOID_RSA_ENCRYPT   "1.2.840.113549.3"

Definition at line 3156 of file wincrypt.h.

◆ szOID_RSA_encryptedData

#define szOID_RSA_encryptedData   "1.2.840.113549.1.7.6"

Definition at line 3187 of file wincrypt.h.

◆ szOID_RSA_envelopedData

#define szOID_RSA_envelopedData   "1.2.840.113549.1.7.3"

Definition at line 3183 of file wincrypt.h.

◆ szOID_RSA_extCertAttrs

#define szOID_RSA_extCertAttrs   "1.2.840.113549.1.9.9"

Definition at line 3196 of file wincrypt.h.

◆ szOID_RSA_HASH

#define szOID_RSA_HASH   "1.2.840.113549.2"

Definition at line 3155 of file wincrypt.h.

◆ szOID_RSA_hashedData

#define szOID_RSA_hashedData   "1.2.840.113549.1.7.5"

Definition at line 3186 of file wincrypt.h.

◆ szOID_RSA_MD2

#define szOID_RSA_MD2   "1.2.840.113549.2.2"

Definition at line 3204 of file wincrypt.h.

◆ szOID_RSA_MD2RSA

#define szOID_RSA_MD2RSA   "1.2.840.113549.1.1.2"

Definition at line 3172 of file wincrypt.h.

◆ szOID_RSA_MD4

#define szOID_RSA_MD4   "1.2.840.113549.2.4"

Definition at line 3205 of file wincrypt.h.

◆ szOID_RSA_MD4RSA

#define szOID_RSA_MD4RSA   "1.2.840.113549.1.1.3"

Definition at line 3173 of file wincrypt.h.

◆ szOID_RSA_MD5

#define szOID_RSA_MD5   "1.2.840.113549.2.5"

Definition at line 3206 of file wincrypt.h.

◆ szOID_RSA_MD5RSA

#define szOID_RSA_MD5RSA   "1.2.840.113549.1.1.4"

Definition at line 3174 of file wincrypt.h.

◆ szOID_RSA_messageDigest

#define szOID_RSA_messageDigest   "1.2.840.113549.1.9.4"

Definition at line 3191 of file wincrypt.h.

◆ szOID_RSA_preferSignedData

#define szOID_RSA_preferSignedData   "1.2.840.113549.1.9.15.1"

Definition at line 3199 of file wincrypt.h.

◆ szOID_RSA_RC2CBC

#define szOID_RSA_RC2CBC   "1.2.840.113549.3.2"

Definition at line 3207 of file wincrypt.h.

◆ szOID_RSA_RC4

#define szOID_RSA_RC4   "1.2.840.113549.3.4"

Definition at line 3208 of file wincrypt.h.

◆ szOID_RSA_RC5_CBCPad

#define szOID_RSA_RC5_CBCPad   "1.2.840.113549.3.9"

Definition at line 3210 of file wincrypt.h.

◆ szOID_RSA_RSA

#define szOID_RSA_RSA   "1.2.840.113549.1.1.1"

Definition at line 3168 of file wincrypt.h.

◆ szOID_RSA_SET0AEP_RSA

#define szOID_RSA_SET0AEP_RSA   "1.2.840.113549.1.1.6"

Definition at line 3176 of file wincrypt.h.

◆ szOID_RSA_SHA1RSA

#define szOID_RSA_SHA1RSA   "1.2.840.113549.1.1.5"

Definition at line 3175 of file wincrypt.h.

◆ szOID_RSA_SHA256RSA

#define szOID_RSA_SHA256RSA   "1.2.840.113549.1.1.11"

Definition at line 3177 of file wincrypt.h.

◆ szOID_RSA_SHA384RSA

#define szOID_RSA_SHA384RSA   "1.2.840.113549.1.1.12"

Definition at line 3178 of file wincrypt.h.

◆ szOID_RSA_SHA512RSA

#define szOID_RSA_SHA512RSA   "1.2.840.113549.1.1.13"

Definition at line 3179 of file wincrypt.h.

◆ szOID_RSA_signedData

#define szOID_RSA_signedData   "1.2.840.113549.1.7.2"

Definition at line 3182 of file wincrypt.h.

◆ szOID_RSA_signEnvData

#define szOID_RSA_signEnvData   "1.2.840.113549.1.7.4"

Definition at line 3184 of file wincrypt.h.

◆ szOID_RSA_signingTime

#define szOID_RSA_signingTime   "1.2.840.113549.1.9.5"

Definition at line 3192 of file wincrypt.h.

◆ szOID_RSA_SMIMEalg

#define szOID_RSA_SMIMEalg   "1.2.840.113549.1.9.16.3"

Definition at line 3200 of file wincrypt.h.

◆ szOID_RSA_SMIMEalgCMS3DESwrap

#define szOID_RSA_SMIMEalgCMS3DESwrap   "1.2.840.113549.1.9.16.3.6"

Definition at line 3202 of file wincrypt.h.

◆ szOID_RSA_SMIMEalgCMSRC2wrap

#define szOID_RSA_SMIMEalgCMSRC2wrap   "1.2.840.113549.1.9.16.3.7"

Definition at line 3203 of file wincrypt.h.

◆ szOID_RSA_SMIMEalgESDH

#define szOID_RSA_SMIMEalgESDH   "1.2.840.113549.1.9.16.3.5"

Definition at line 3201 of file wincrypt.h.

◆ szOID_RSA_SMIMECapabilities

#define szOID_RSA_SMIMECapabilities   "1.2.840.113549.1.9.15"

Definition at line 3198 of file wincrypt.h.

◆ szOID_RSA_unstructAddr

#define szOID_RSA_unstructAddr   "1.2.840.113549.1.9.9"

Definition at line 3195 of file wincrypt.h.

◆ szOID_RSA_unstructName

#define szOID_RSA_unstructName   "1.2.840.113549.1.9.2"

Definition at line 3189 of file wincrypt.h.

◆ szOID_SEARCH_GUIDE

#define szOID_SEARCH_GUIDE   "2.5.4.14"

Definition at line 3301 of file wincrypt.h.

◆ szOID_SEE_ALSO

#define szOID_SEE_ALSO   "2.5.4.34"

Definition at line 3321 of file wincrypt.h.

◆ szOID_SERIALIZED

#define szOID_SERIALIZED   "1.3.6.1.4.1.311.10.3.3.1"

Definition at line 3487 of file wincrypt.h.

◆ szOID_SERVER_GATED_CRYPTO

#define szOID_SERVER_GATED_CRYPTO   "1.3.6.1.4.1.311.10.3.3"

Definition at line 3369 of file wincrypt.h.

◆ szOID_SGC_NETSCAPE

#define szOID_SGC_NETSCAPE   "2.16.840.1.113730.4.1"

Definition at line 3372 of file wincrypt.h.

◆ szOID_SORTED_CTL

#define szOID_SORTED_CTL   "1.3.6.1.4.1.311.10.1.1"

Definition at line 3402 of file wincrypt.h.

◆ szOID_STATE_OR_PROVINCE_NAME

#define szOID_STATE_OR_PROVINCE_NAME   "2.5.4.8"

Definition at line 3295 of file wincrypt.h.

◆ szOID_STREET_ADDRESS

#define szOID_STREET_ADDRESS   "2.5.4.9"

Definition at line 3296 of file wincrypt.h.

◆ szOID_SUBJECT_ALT_NAME

#define szOID_SUBJECT_ALT_NAME   "2.5.29.7"

Definition at line 3336 of file wincrypt.h.

◆ szOID_SUBJECT_ALT_NAME2

#define szOID_SUBJECT_ALT_NAME2   "2.5.29.17"

Definition at line 3343 of file wincrypt.h.

◆ szOID_SUBJECT_DIR_ATTRS

#define szOID_SUBJECT_DIR_ATTRS   "2.5.29.9"

Definition at line 3338 of file wincrypt.h.

◆ szOID_SUBJECT_KEY_IDENTIFIER

#define szOID_SUBJECT_KEY_IDENTIFIER   "2.5.29.14"

Definition at line 3340 of file wincrypt.h.

◆ szOID_SUPPORTED_APPLICATION_CONTEXT

#define szOID_SUPPORTED_APPLICATION_CONTEXT   "2.5.4.30"

Definition at line 3317 of file wincrypt.h.

◆ szOID_SUR_NAME

#define szOID_SUR_NAME   "2.5.4.4"

Definition at line 3291 of file wincrypt.h.

◆ szOID_TELEPHONE_NUMBER

#define szOID_TELEPHONE_NUMBER   "2.5.4.20"

Definition at line 3307 of file wincrypt.h.

◆ szOID_TELETEXT_TERMINAL_IDENTIFIER

#define szOID_TELETEXT_TERMINAL_IDENTIFIER   "2.5.4.22"

Definition at line 3309 of file wincrypt.h.

◆ szOID_TELEX_NUMBER

#define szOID_TELEX_NUMBER   "2.5.4.21"

Definition at line 3308 of file wincrypt.h.

◆ szOID_TITLE

#define szOID_TITLE   "2.5.4.12"

Definition at line 3299 of file wincrypt.h.

◆ szOID_USER_CERTIFICATE

#define szOID_USER_CERTIFICATE   "2.5.4.36"

Definition at line 3323 of file wincrypt.h.

◆ szOID_USER_PASSWORD

#define szOID_USER_PASSWORD   "2.5.4.35"

Definition at line 3322 of file wincrypt.h.

◆ szOID_WHQL_CRYPTO

#define szOID_WHQL_CRYPTO   "1.3.6.1.4.1.311.10.3.5"

Definition at line 3376 of file wincrypt.h.

◆ szOID_X21_ADDRESS

#define szOID_X21_ADDRESS   "2.5.4.24"

Definition at line 3311 of file wincrypt.h.

◆ szOID_X957

#define szOID_X957   "1.2.840.10040"

Definition at line 3213 of file wincrypt.h.

◆ szOID_X957_DSA

#define szOID_X957_DSA   "1.2.840.10040.4.1"

Definition at line 3214 of file wincrypt.h.

◆ szOID_X957_SHA1DSA

#define szOID_X957_SHA1DSA   "1.2.840.10040.4.3"

Definition at line 3215 of file wincrypt.h.

◆ szOID_YESNO_TRUST_ATTR

#define szOID_YESNO_TRUST_ATTR   "1.3.6.1.4.1.311.10.4.1"

Definition at line 3386 of file wincrypt.h.

◆ TIME_VALID_OID_FLUSH_CRL

#define TIME_VALID_OID_FLUSH_CRL   ((LPCSTR)2)

Definition at line 1931 of file wincrypt.h.

◆ TIME_VALID_OID_FLUSH_CRL_FROM_CERT

#define TIME_VALID_OID_FLUSH_CRL_FROM_CERT   ((LPCSTR)3)

Definition at line 1932 of file wincrypt.h.

◆ TIME_VALID_OID_FLUSH_CTL

#define TIME_VALID_OID_FLUSH_CTL   ((LPCSTR)1)

Definition at line 1930 of file wincrypt.h.

◆ TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CERT

#define TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CERT   ((LPCSTR)4)

Definition at line 1933 of file wincrypt.h.

◆ TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CRL

#define TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CRL   ((LPCSTR)5)

Definition at line 1934 of file wincrypt.h.

◆ TIME_VALID_OID_FLUSH_OBJECT_FUNC

#define TIME_VALID_OID_FLUSH_OBJECT_FUNC   "TimeValidDllFlushObject"

Definition at line 1928 of file wincrypt.h.

◆ TIME_VALID_OID_GET_CRL

#define TIME_VALID_OID_GET_CRL   ((LPCSTR)2)

Definition at line 1923 of file wincrypt.h.

◆ TIME_VALID_OID_GET_CRL_FROM_CERT

#define TIME_VALID_OID_GET_CRL_FROM_CERT   ((LPCSTR)3)

Definition at line 1924 of file wincrypt.h.

◆ TIME_VALID_OID_GET_CTL

#define TIME_VALID_OID_GET_CTL   ((LPCSTR)1)

Definition at line 1922 of file wincrypt.h.

◆ TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT

#define TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT   ((LPCSTR)4)

Definition at line 1925 of file wincrypt.h.

◆ TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL

#define TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL   ((LPCSTR)5)

Definition at line 1926 of file wincrypt.h.

◆ TIME_VALID_OID_GET_OBJECT_FUNC [1/2]

#define TIME_VALID_OID_GET_OBJECT_FUNC   "TimeValidDllGetObject"

Definition at line 2679 of file wincrypt.h.

◆ TIME_VALID_OID_GET_OBJECT_FUNC [2/2]

#define TIME_VALID_OID_GET_OBJECT_FUNC   "TimeValidDllGetObject"

Definition at line 2679 of file wincrypt.h.

◆ URL_OID_CERTIFICATE_CRL_DIST_POINT

#define URL_OID_CERTIFICATE_CRL_DIST_POINT   ((LPCSTR)2)

Definition at line 1749 of file wincrypt.h.

◆ URL_OID_CERTIFICATE_CRL_DIST_POINT_AND_OCSP

#define URL_OID_CERTIFICATE_CRL_DIST_POINT_AND_OCSP   ((LPCSTR)11)

Definition at line 1758 of file wincrypt.h.

◆ URL_OID_CERTIFICATE_FRESHEST_CRL

#define URL_OID_CERTIFICATE_FRESHEST_CRL   ((LPCSTR)6)

Definition at line 1753 of file wincrypt.h.

◆ URL_OID_CERTIFICATE_ISSUER

#define URL_OID_CERTIFICATE_ISSUER   ((LPCSTR)1)

Definition at line 1748 of file wincrypt.h.

◆ URL_OID_CERTIFICATE_OCSP

#define URL_OID_CERTIFICATE_OCSP   ((LPCSTR)9)

Definition at line 1756 of file wincrypt.h.

◆ URL_OID_CERTIFICATE_OCSP_AND_CRL_DIST_POINT

#define URL_OID_CERTIFICATE_OCSP_AND_CRL_DIST_POINT   ((LPCSTR)10)

Definition at line 1757 of file wincrypt.h.

◆ URL_OID_CRL_FRESHEST_CRL

#define URL_OID_CRL_FRESHEST_CRL   ((LPCSTR)7)

Definition at line 1754 of file wincrypt.h.

◆ URL_OID_CRL_ISSUER

#define URL_OID_CRL_ISSUER   ((LPCSTR)5)

Definition at line 1752 of file wincrypt.h.

◆ URL_OID_CROSS_CERT_DIST_POINT

#define URL_OID_CROSS_CERT_DIST_POINT   ((LPCSTR)8)

Definition at line 1755 of file wincrypt.h.

◆ URL_OID_CROSS_CERT_SUBJECT_INFO_ACCESS

#define URL_OID_CROSS_CERT_SUBJECT_INFO_ACCESS   ((LPCSTR)12)

Definition at line 1759 of file wincrypt.h.

◆ URL_OID_CTL_ISSUER

#define URL_OID_CTL_ISSUER   ((LPCSTR)3)

Definition at line 1750 of file wincrypt.h.

◆ URL_OID_CTL_NEXT_UPDATE

#define URL_OID_CTL_NEXT_UPDATE   ((LPCSTR)4)

Definition at line 1751 of file wincrypt.h.

◆ URL_OID_GET_OBJECT_URL_FUNC [1/2]

#define URL_OID_GET_OBJECT_URL_FUNC   "UrlDllGetObjectUrl"

Definition at line 2678 of file wincrypt.h.

◆ URL_OID_GET_OBJECT_URL_FUNC [2/2]

#define URL_OID_GET_OBJECT_URL_FUNC   "UrlDllGetObjectUrl"

Definition at line 2678 of file wincrypt.h.

◆ USAGE_MATCH_TYPE_AND

#define USAGE_MATCH_TYPE_AND   0x00000000

Definition at line 1156 of file wincrypt.h.

◆ USAGE_MATCH_TYPE_OR

#define USAGE_MATCH_TYPE_OR   0x00000001

Definition at line 1157 of file wincrypt.h.

◆ WINADVAPI

#define WINADVAPI   DECLSPEC_IMPORT

Definition at line 41 of file wincrypt.h.

◆ WINCRYPT32API

#define WINCRYPT32API   DECLSPEC_IMPORT

Definition at line 49 of file wincrypt.h.

◆ X509_ALTERNATE_NAME

#define X509_ALTERNATE_NAME   ((LPCSTR)12)

Definition at line 3529 of file wincrypt.h.

◆ X509_ANY_STRING

#define X509_ANY_STRING   X509_NAME_VALUE

Definition at line 3523 of file wincrypt.h.

◆ X509_ASN_ENCODING

#define X509_ASN_ENCODING   0x00000001

Definition at line 2501 of file wincrypt.h.

◆ X509_AUTHORITY_INFO_ACCESS

#define X509_AUTHORITY_INFO_ACCESS   ((LPCSTR)32)

Definition at line 3551 of file wincrypt.h.

◆ X509_AUTHORITY_KEY_ID

#define X509_AUTHORITY_KEY_ID   ((LPCSTR)9)

Definition at line 3526 of file wincrypt.h.

◆ X509_AUTHORITY_KEY_ID2

#define X509_AUTHORITY_KEY_ID2   ((LPCSTR)31)

Definition at line 3550 of file wincrypt.h.

◆ X509_BASIC_CONSTRAINTS

#define X509_BASIC_CONSTRAINTS   ((LPCSTR)13)

Definition at line 3530 of file wincrypt.h.

◆ X509_BASIC_CONSTRAINTS2

#define X509_BASIC_CONSTRAINTS2   ((LPCSTR)15)

Definition at line 3532 of file wincrypt.h.

◆ X509_BITS

#define X509_BITS   ((LPCSTR)26)

Definition at line 3544 of file wincrypt.h.

◆ X509_BITS_WITHOUT_TRAILING_ZEROES

#define X509_BITS_WITHOUT_TRAILING_ZEROES   ((LPCSTR)51)

Definition at line 3573 of file wincrypt.h.

◆ X509_CERT

#define X509_CERT   ((LPCSTR)1)

Definition at line 3517 of file wincrypt.h.

◆ X509_CERT_CRL_TO_BE_SIGNED

#define X509_CERT_CRL_TO_BE_SIGNED   ((LPCSTR)3)

Definition at line 3519 of file wincrypt.h.

◆ X509_CERT_PAIR

#define X509_CERT_PAIR   ((LPCSTR)53)

Definition at line 3575 of file wincrypt.h.

◆ X509_CERT_POLICIES

#define X509_CERT_POLICIES   ((LPCSTR)16)

Definition at line 3533 of file wincrypt.h.

◆ X509_CERT_REQUEST_TO_BE_SIGNED

#define X509_CERT_REQUEST_TO_BE_SIGNED   ((LPCSTR)4)

Definition at line 3520 of file wincrypt.h.

◆ X509_CERT_TO_BE_SIGNED

#define X509_CERT_TO_BE_SIGNED   ((LPCSTR)2)

Definition at line 3518 of file wincrypt.h.

◆ X509_CERTIFICATE_TEMPLATE

#define X509_CERTIFICATE_TEMPLATE   ((LPCSTR)64)

Definition at line 3586 of file wincrypt.h.

◆ X509_CHOICE_OF_TIME

#define X509_CHOICE_OF_TIME   ((LPCSTR)30)

Definition at line 3549 of file wincrypt.h.

◆ X509_CRL_DIST_POINTS

#define X509_CRL_DIST_POINTS   ((LPCSTR)35)

Definition at line 3554 of file wincrypt.h.

◆ X509_CRL_REASON_CODE

#define X509_CRL_REASON_CODE   X509_ENUMERATED

Definition at line 3548 of file wincrypt.h.

◆ X509_CROSS_CERT_DIST_POINTS

#define X509_CROSS_CERT_DIST_POINTS   ((LPCSTR)58)

Definition at line 3580 of file wincrypt.h.

◆ X509_DH_PARAMETERS

#define X509_DH_PARAMETERS   ((LPCSTR)47)

Definition at line 3568 of file wincrypt.h.

◆ X509_DH_PUBLICKEY

#define X509_DH_PUBLICKEY   X509_MULTI_BYTE_UINT

Definition at line 3567 of file wincrypt.h.

◆ X509_DSS_PARAMETERS

#define X509_DSS_PARAMETERS   ((LPCSTR)39)

Definition at line 3559 of file wincrypt.h.

◆ X509_DSS_PUBLICKEY

#define X509_DSS_PUBLICKEY   X509_MULTI_BYTE_UINT

Definition at line 3558 of file wincrypt.h.

◆ X509_DSS_SIGNATURE

#define X509_DSS_SIGNATURE   ((LPCSTR)40)

Definition at line 3560 of file wincrypt.h.

◆ X509_ECC_SIGNATURE

#define X509_ECC_SIGNATURE   ((LPCSTR)47)

Definition at line 3569 of file wincrypt.h.

◆ X509_ENHANCED_KEY_USAGE

#define X509_ENHANCED_KEY_USAGE   ((LPCSTR)36)

Definition at line 3555 of file wincrypt.h.

◆ X509_ENUMERATED

#define X509_ENUMERATED   ((LPCSTR)29)

Definition at line 3547 of file wincrypt.h.

◆ X509_EXTENSIONS

#define X509_EXTENSIONS   ((LPCSTR)5)

Definition at line 3521 of file wincrypt.h.

◆ X509_INTEGER

#define X509_INTEGER   ((LPCSTR)27)

Definition at line 3545 of file wincrypt.h.

◆ X509_ISSUING_DIST_POINT

#define X509_ISSUING_DIST_POINT   ((LPCSTR)54)

Definition at line 3576 of file wincrypt.h.

◆ X509_KEY_ATTRIBUTES

#define X509_KEY_ATTRIBUTES   ((LPCSTR)10)

Definition at line 3527 of file wincrypt.h.

◆ X509_KEY_USAGE

#define X509_KEY_USAGE   ((LPCSTR)14)

Definition at line 3531 of file wincrypt.h.

◆ X509_KEY_USAGE_RESTRICTION

#define X509_KEY_USAGE_RESTRICTION   ((LPCSTR)11)

Definition at line 3528 of file wincrypt.h.

◆ X509_KEYGEN_REQUEST_TO_BE_SIGNED

#define X509_KEYGEN_REQUEST_TO_BE_SIGNED   ((LPCSTR)21)

Definition at line 3538 of file wincrypt.h.

◆ X509_MULTI_BYTE_INTEGER

#define X509_MULTI_BYTE_INTEGER   ((LPCSTR)28)

Definition at line 3546 of file wincrypt.h.

◆ X509_MULTI_BYTE_UINT

#define X509_MULTI_BYTE_UINT   ((LPCSTR)38)

Definition at line 3557 of file wincrypt.h.

◆ X509_NAME

#define X509_NAME   ((LPCSTR)7)

Definition at line 3524 of file wincrypt.h.

◆ X509_NAME_CONSTRAINTS

#define X509_NAME_CONSTRAINTS   ((LPCSTR)55)

Definition at line 3577 of file wincrypt.h.

◆ X509_NAME_VALUE

#define X509_NAME_VALUE   ((LPCSTR)6)

Definition at line 3522 of file wincrypt.h.

◆ X509_NDR_ENCODING

#define X509_NDR_ENCODING   0x00000002

Definition at line 2502 of file wincrypt.h.

◆ X509_OBJECT_IDENTIFIER

#define X509_OBJECT_IDENTIFIER   ((LPCSTR)73)

Definition at line 3593 of file wincrypt.h.

◆ X509_OCTET_STRING

#define X509_OCTET_STRING   ((LPCSTR)25)

Definition at line 3543 of file wincrypt.h.

◆ X509_PKIX_POLICY_QUALIFIER_USERNOTICE

#define X509_PKIX_POLICY_QUALIFIER_USERNOTICE   ((LPCSTR)46)

Definition at line 3566 of file wincrypt.h.

◆ X509_POLICY_CONSTRAINTS

#define X509_POLICY_CONSTRAINTS   ((LPCSTR)57)

Definition at line 3579 of file wincrypt.h.

◆ X509_POLICY_MAPPINGS

#define X509_POLICY_MAPPINGS   ((LPCSTR)56)

Definition at line 3578 of file wincrypt.h.

◆ X509_PUBLIC_KEY_INFO

#define X509_PUBLIC_KEY_INFO   ((LPCSTR)8)

Definition at line 3525 of file wincrypt.h.

◆ X509_SEQUENCE_OF_ANY

#define X509_SEQUENCE_OF_ANY   ((LPCSTR)34)

Definition at line 3553 of file wincrypt.h.

◆ X509_UNICODE_ANY_STRING

#define X509_UNICODE_ANY_STRING   X509_UNICODE_NAME_VALUE

Definition at line 3542 of file wincrypt.h.

◆ X509_UNICODE_NAME

#define X509_UNICODE_NAME   ((LPCSTR)20)

Definition at line 3537 of file wincrypt.h.

◆ X509_UNICODE_NAME_VALUE

#define X509_UNICODE_NAME_VALUE   ((LPCSTR)24)

Definition at line 3541 of file wincrypt.h.

◆ X942_DH_PARAMETERS

#define X942_DH_PARAMETERS   ((LPCSTR)50)

Definition at line 3572 of file wincrypt.h.

◆ X942_OTHER_INFO

#define X942_OTHER_INFO   ((LPCSTR)52)

Definition at line 3574 of file wincrypt.h.

◆ ZERO_PADDING

#define ZERO_PADDING   3

Definition at line 2378 of file wincrypt.h.

Typedef Documentation

◆ __WINE_ALLOC_SIZE

typedef void * __WINE_ALLOC_SIZE(1) WINAPI *PFN_CMSG_ALLOC)(size_t cb)

Definition at line 4213 of file wincrypt.h.

◆ ALG_ID

static BYTE DWORD *static ALG_ID

Definition at line 54 of file wincrypt.h.

◆ AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA

◆ AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS

◆ AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA

◆ BLOBHEADER

◆ CCERT_STORE_PROV_FIND_INFO

◆ CCRYPT_OID_INFO

Definition at line 1632 of file wincrypt.h.

◆ CERT_ACCESS_DESCRIPTION

◆ CERT_ALT_NAME_ENTRY

◆ CERT_ALT_NAME_INFO

◆ CERT_AUTHORITY_INFO_ACCESS

◆ CERT_AUTHORITY_KEY_ID2_INFO

◆ CERT_AUTHORITY_KEY_ID_INFO

◆ CERT_BASIC_CONSTRAINTS2_INFO

◆ CERT_BASIC_CONSTRAINTS_INFO

◆ CERT_BLOB

◆ CERT_CHAIN

◆ CERT_CHAIN_CONTEXT

Definition at line 1046 of file wincrypt.h.

◆ CERT_CHAIN_ELEMENT

◆ CERT_CHAIN_ENGINE_CONFIG

◆ CERT_CHAIN_PARA

◆ CERT_CHAIN_POLICY_PARA

◆ CERT_CHAIN_POLICY_STATUS

◆ CERT_CONTEXT

◆ CERT_CREATE_CONTEXT_PARA

◆ CERT_CRL_CONTEXT_PAIR

◆ CERT_DH_PARAMETERS

◆ CERT_DSS_PARAMETERS

◆ CERT_ECC_SIGNATURE

◆ CERT_ENCRYPTED_PRIVATE_KEY_INFO

◆ CERT_ENHKEY_USAGE

◆ CERT_EXTENSION

◆ CERT_EXTENSIONS

◆ CERT_FORTEZZA_DATA_PROP

◆ CERT_GENERAL_SUBTREE

◆ CERT_ID

◆ CERT_INFO

◆ CERT_ISSUER_SERIAL_NUMBER

◆ CERT_KEY_ATTRIBUTES_INFO

◆ CERT_KEY_CONTEXT

◆ CERT_KEY_USAGE_RESTRICTION_INFO

◆ CERT_KEYGEN_REQUEST_INFO

◆ CERT_NAME_BLOB

◆ CERT_NAME_CONSTRAINTS_INFO

◆ CERT_NAME_INFO

◆ CERT_NAME_VALUE

◆ CERT_OTHER_NAME

◆ CERT_PAIR

◆ CERT_PHYSICAL_STORE_INFO

◆ CERT_POLICIES_INFO

◆ CERT_POLICY95_QUALIFIER1

◆ CERT_POLICY_CONSTRAINTS_INFO

◆ CERT_POLICY_ID

◆ CERT_POLICY_INFO

◆ CERT_POLICY_MAPPING

◆ CERT_POLICY_MAPPINGS_INFO

◆ CERT_POLICY_QUALIFIER_INFO

◆ CERT_POLICY_QUALIFIER_NOTICE_REFERENCE

◆ CERT_POLICY_QUALIFIER_USER_NOTICE

◆ CERT_PRIVATE_KEY_INFO

◆ CERT_PRIVATE_KEY_VALIDITY

◆ CERT_PUBLIC_KEY_INFO

◆ CERT_RDN

◆ CERT_RDN_ATTR

◆ CERT_RDN_VALUE_BLOB

◆ CERT_REQUEST_INFO

◆ CERT_REVOCATION_CRL_INFO

◆ CERT_REVOCATION_INFO

◆ CERT_REVOCATION_PARA

◆ CERT_REVOCATION_STATUS

◆ CERT_SIGNED_CONTENT_INFO

◆ CERT_SIMPLE_CHAIN

◆ CERT_STORE_PROV_FIND_INFO

◆ CERT_STORE_PROV_INFO

◆ CERT_STRONG_SIGN_PARA

◆ CERT_STRONG_SIGN_SERIALIZED_INFO

◆ CERT_SYSTEM_STORE_INFO

◆ CERT_SYSTEM_STORE_RELOCATE_PARA

◆ CERT_TRUST_LIST_INFO

◆ CERT_TRUST_STATUS

◆ CERT_USAGE_MATCH

◆ CERT_X942_DH_PARAMETERS

◆ CERT_X942_DH_VALIDATION_PARAMS

◆ CMS_DH_KEY_INFO

◆ CMSG_ATTR

Definition at line 4136 of file wincrypt.h.

◆ CMSG_CMS_RECIPIENT_INFO

◆ CMSG_CMS_SIGNER_INFO

◆ CMSG_CONTENT_ENCRYPT_INFO

◆ CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA

◆ CMSG_CTRL_DECRYPT_PARA

◆ CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA

◆ CMSG_CTRL_KEY_TRANS_DECRYPT_PARA

◆ CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA

◆ CMSG_ENCRYPTED_ENCODE_INFO

◆ CMSG_ENVELOPED_ENCODE_INFO

◆ CMSG_HASHED_ENCODE_INFO

◆ CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO

◆ CMSG_KEY_AGREE_RECIPIENT_INFO

◆ CMSG_KEY_TRANS_ENCRYPT_INFO

◆ CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO

◆ CMSG_KEY_TRANS_RECIPIENT_INFO

◆ CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO

◆ CMSG_MAIL_LIST_RECIPIENT_INFO

◆ CMSG_RECIPIENT_ENCODE_INFO

◆ CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO

◆ CMSG_RECIPIENT_ENCRYPTED_KEY_INFO

◆ CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO

◆ CMSG_SIGNED_ENCODE_INFO

◆ CMSG_SIGNER_ENCODE_INFO

◆ CMSG_SIGNER_INFO

◆ CMSG_STREAM_INFO

◆ CPS_URLS

◆ CRL_BLOB

◆ CRL_CONTEXT

◆ CRL_DIST_POINT

◆ CRL_DIST_POINT_NAME

◆ CRL_DIST_POINTS_INFO

◆ CRL_ENTRY

◆ CRL_FIND_ISSUED_FOR_PARA

◆ CRL_INFO

◆ CRL_ISSUING_DIST_POINT

◆ CROSS_CERT_DIST_POINTS_INFO

◆ CRYPT_ALGORITHM_IDENTIFIER

◆ CRYPT_ASYNC_RETRIEVAL_COMPLETION

◆ CRYPT_ATTR_BLOB

◆ CRYPT_ATTRIBUTE

◆ CRYPT_ATTRIBUTE_TYPE_VALUE

◆ CRYPT_ATTRIBUTES

◆ CRYPT_BIT_BLOB

◆ CRYPT_BLOB_ARRAY

◆ CRYPT_CONTENT_INFO

◆ CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY

◆ CRYPT_CREDENTIALS

◆ CRYPT_DATA_BLOB

◆ CRYPT_DECODE_PARA

◆ CRYPT_DECRYPT_MESSAGE_PARA

◆ CRYPT_DER_BLOB

◆ CRYPT_DIGEST_BLOB

◆ CRYPT_ENCODE_PARA

◆ CRYPT_ENCRYPT_MESSAGE_PARA

◆ CRYPT_ENROLLMENT_NAME_VALUE_PAIR

◆ CRYPT_HASH_BLOB

◆ CRYPT_HASH_MESSAGE_PARA

◆ CRYPT_INTEGER_BLOB

◆ CRYPT_KEY_PROV_INFO

◆ CRYPT_KEY_PROV_PARAM

◆ CRYPT_KEY_SIGN_MESSAGE_PARA

◆ CRYPT_KEY_VERIFY_MESSAGE_PARA

◆ CRYPT_OBJID_BLOB

◆ CRYPT_OID_FUNC_ENTRY

◆ CRYPT_OID_INFO

◆ CRYPT_PASSWORD_CREDENTIALSA

◆ CRYPT_PASSWORD_CREDENTIALSW

◆ CRYPT_RC2_CBC_PARAMETERS

◆ CRYPT_RETRIEVE_AUX_INFO

◆ CRYPT_SEQUENCE_OF_ANY

◆ CRYPT_SIGN_MESSAGE_PARA

◆ CRYPT_SMIME_CAPABILITIES

◆ CRYPT_SMIME_CAPABILITY

◆ CRYPT_TIME_STAMP_REQUEST_INFO

◆ CRYPT_UINT_BLOB

◆ CRYPT_URL_ARRAY

◆ CRYPT_URL_INFO

◆ CRYPT_VERIFY_MESSAGE_PARA

◆ CRYPT_X942_OTHER_INFO

◆ CRYPTPROTECT_PROMPTSTRUCT

◆ CTL_CONTEXT

◆ CTL_ENTRY

◆ CTL_FIND_SUBJECT_PARA

◆ CTL_FIND_USAGE_PARA

◆ CTL_INFO

◆ CTL_USAGE

◆ CTL_USAGE_MATCH

◆ CTL_VERIFY_USAGE_PARA

◆ CTL_VERIFY_USAGE_STATUS

◆ DATA_BLOB

◆ DHPRIVKEY_VER3

◆ DHPUBKEY

◆ DHPUBKEY_VER3

◆ DSSPRIVKEY_VER3

◆ DSSPUBKEY

◆ DSSPUBKEY_VER3

◆ DSSSEED

◆ HCERTCHAINENGINE

Definition at line 3772 of file wincrypt.h.

◆ HCERTSTORE

typedef void* HCERTSTORE

Definition at line 60 of file wincrypt.h.

◆ HCERTSTOREPROV

typedef void* HCERTSTOREPROV

Definition at line 62 of file wincrypt.h.

◆ HCRYPTASYNC

Definition at line 1763 of file wincrypt.h.

◆ HCRYPTDEFAULTCONTEXT

Definition at line 65 of file wincrypt.h.

◆ HCRYPTHASH

static BYTE DWORD *static HCRYPTKEY *static DWORD HCRYPTHASH *static DWORD HCRYPTKEY *static HCRYPTHASH

Definition at line 59 of file wincrypt.h.

◆ HCRYPTKEY

static BYTE HCRYPTKEY

Definition at line 58 of file wincrypt.h.

◆ HCRYPTMSG

typedef void* HCRYPTMSG

Definition at line 61 of file wincrypt.h.

◆ HCRYPTOIDFUNCADDR

Definition at line 64 of file wincrypt.h.

◆ HCRYPTOIDFUNCSET

Definition at line 63 of file wincrypt.h.

◆ HCRYPTPROV

Definition at line 55 of file wincrypt.h.

◆ HCRYPTPROV_LEGACY

Definition at line 57 of file wincrypt.h.

◆ HCRYPTPROV_OR_NCRYPT_KEY_HANDLE

Definition at line 56 of file wincrypt.h.

◆ HMAC_INFO

◆ HTTPSPolicyCallbackData

◆ KEAPUBKEY

◆ KEY_TYPE_SUBTYPE

◆ OCSP_BASIC_RESPONSE_ENTRY

◆ OCSP_BASIC_RESPONSE_INFO

◆ OCSP_BASIC_REVOKED_INFO

◆ OCSP_BASIC_SIGNED_RESPONSE_INFO

◆ OCSP_CERT_ID

◆ OCSP_REQUEST_ENTRY

◆ OCSP_REQUEST_INFO

◆ OCSP_RESPONSE_INFO

◆ OCSP_SIGNATURE_INFO

◆ OCSP_SIGNED_REQUEST_INFO

◆ PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA

◆ PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS

◆ PAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA

◆ PCCERT_CHAIN_CONTEXT

Definition at line 1047 of file wincrypt.h.

◆ PCCERT_CONTEXT

Definition at line 494 of file wincrypt.h.

◆ PCCERT_CRL_CONTEXT_PAIR

Definition at line 1918 of file wincrypt.h.

◆ PCCERT_STORE_PROV_FIND_INFO

◆ PCCRL_CONTEXT

static PCCRL_CONTEXT

Definition at line 737 of file wincrypt.h.

◆ PCCRYPT_OID_INFO

Definition at line 1632 of file wincrypt.h.

◆ PCCTL_CONTEXT

Definition at line 865 of file wincrypt.h.

◆ PCERT_ACCESS_DESCRIPTION

◆ PCERT_ALT_NAME_ENTRY

◆ PCERT_ALT_NAME_INFO

◆ PCERT_AUTHORITY_INFO_ACCESS

◆ PCERT_AUTHORITY_KEY_ID2_INFO

◆ PCERT_AUTHORITY_KEY_ID_INFO

◆ PCERT_BASIC_CONSTRAINTS2_INFO

◆ PCERT_BASIC_CONSTRAINTS_INFO

◆ PCERT_BLOB

◆ PCERT_CHAIN

◆ PCERT_CHAIN_CONTEXT

Definition at line 1046 of file wincrypt.h.

◆ PCERT_CHAIN_ELEMENT

◆ PCERT_CHAIN_ENGINE_CONFIG

◆ PCERT_CHAIN_PARA

◆ PCERT_CHAIN_POLICY_PARA

◆ PCERT_CHAIN_POLICY_STATUS

◆ PCERT_CONTEXT

◆ PCERT_CREATE_CONTEXT_PARA

◆ PCERT_CRL_CONTEXT_PAIR

◆ PCERT_DH_PARAMETERS

◆ PCERT_DSS_PARAMETERS

◆ PCERT_ECC_SIGNATURE

◆ PCERT_ENCRYPTED_PRIVATE_KEY_INFO

◆ PCERT_ENHKEY_USAGE

◆ PCERT_EXTENSION

◆ PCERT_EXTENSIONS

◆ PCERT_GENERAL_SUBTREE

◆ PCERT_ID

◆ PCERT_INFO

◆ PCERT_ISSUER_SERIAL_NUMBER

◆ PCERT_KEY_ATTRIBUTES_INFO

◆ PCERT_KEY_CONTEXT

◆ PCERT_KEY_USAGE_RESTRICTION_INFO

◆ PCERT_KEYGEN_REQUEST_INFO

◆ PCERT_NAME_BLOB

◆ PCERT_NAME_CONSTRAINTS_INFO

◆ PCERT_NAME_INFO

◆ PCERT_NAME_VALUE

◆ PCERT_OTHER_NAME

◆ PCERT_PAIR

◆ PCERT_PHYSICAL_STORE_INFO

◆ PCERT_POLICIES_INFO

◆ PCERT_POLICY95_QUALIFIER1

◆ PCERT_POLICY_CONSTRAINTS_INFO

◆ PCERT_POLICY_ID

◆ PCERT_POLICY_INFO

◆ PCERT_POLICY_MAPPING

◆ PCERT_POLICY_MAPPINGS_INFO

◆ PCERT_POLICY_QUALIFIER_INFO

◆ PCERT_POLICY_QUALIFIER_NOTICE_REFERENCE

◆ PCERT_POLICY_QUALIFIER_USER_NOTICE

◆ PCERT_PRIVATE_KEY_INFO

◆ PCERT_PRIVATE_KEY_VALIDITY

◆ PCERT_PUBLIC_KEY_INFO

◆ PCERT_RDN

◆ PCERT_RDN_ATTR

◆ PCERT_RDN_VALUE_BLOB

Definition at line 193 of file str.c.

◆ PCERT_REQUEST_INFO

◆ PCERT_REVOCATION_CRL_INFO

◆ PCERT_REVOCATION_INFO

◆ PCERT_REVOCATION_PARA

◆ PCERT_REVOCATION_STATUS

◆ PCERT_SIGNED_CONTENT_INFO

◆ PCERT_SIMPLE_CHAIN

◆ PCERT_STORE_PROV_FIND_INFO

◆ PCERT_STORE_PROV_INFO

◆ PCERT_STRONG_SIGN_PARA

◆ PCERT_STRONG_SIGN_SERIALIZED_INFO

◆ PCERT_SYSTEM_STORE_INFO

◆ PCERT_SYSTEM_STORE_RELOCATE_PARA

◆ PCERT_TRUST_LIST_INFO

◆ PCERT_TRUST_STATUS

◆ PCERT_USAGE_MATCH

◆ PCERT_X942_DH_PARAMETERS

◆ PCERT_X942_DH_VALIDATION_PARAMS

◆ PCMS_DH_KEY_INFO

◆ PCMSG_ATTR

Definition at line 4136 of file wincrypt.h.

◆ PCMSG_CMS_RECIPIENT_INFO

◆ PCMSG_CMS_SIGNER_INFO

◆ PCMSG_CONTENT_ENCRYPT_INFO

◆ PCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA

◆ PCMSG_CTRL_DECRYPT_PARA

◆ PCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA

◆ PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA

◆ PCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA

◆ PCMSG_ENCRYPTED_ENCODE_INFO

◆ PCMSG_ENVELOPED_ENCODE_INFO

◆ PCMSG_HASHED_ENCODE_INFO

◆ PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO

◆ PCMSG_KEY_AGREE_RECIPIENT_INFO

◆ PCMSG_KEY_TRANS_ENCRYPT_INFO

◆ PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO

◆ PCMSG_KEY_TRANS_RECIPIENT_INFO

◆ PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO

◆ PCMSG_MAIL_LIST_RECIPIENT_INFO

◆ PCMSG_RECIPIENT_ENCODE_INFO

◆ PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO

◆ PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO

◆ PCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO

◆ PCMSG_SIGNED_ENCODE_INFO

◆ PCMSG_SIGNER_ENCODE_INFO

◆ PCMSG_SIGNER_INFO

◆ PCMSG_STREAM_INFO

◆ PCPS_URLS

◆ PCRL_BLOB

◆ PCRL_CONTEXT

◆ PCRL_DIST_POINT

◆ PCRL_DIST_POINT_NAME

◆ PCRL_DIST_POINTS_INFO

◆ PCRL_ENTRY

◆ PCRL_FIND_ISSUED_FOR_PARA

◆ PCRL_INFO

◆ PCRL_ISSUING_DIST_POINT

◆ PCROSS_CERT_DIST_POINTS_INFO

◆ PCRYPT_ALGORITHM_IDENTIFIER

◆ PCRYPT_ASYNC_RETRIEVAL_COMPLETION

◆ PCRYPT_ATTR_BLOB

◆ PCRYPT_ATTRIBUTE

◆ PCRYPT_ATTRIBUTE_TYPE_VALUE

◆ PCRYPT_ATTRIBUTES

◆ PCRYPT_BIT_BLOB

◆ PCRYPT_BLOB_ARRAY

◆ PCRYPT_CONTENT_INFO

◆ PCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY

◆ PCRYPT_CREDENTIALS

◆ PCRYPT_DATA_BLOB

◆ PCRYPT_DECODE_PARA

◆ PCRYPT_DECRYPT_MESSAGE_PARA

◆ PCRYPT_DER_BLOB

◆ PCRYPT_DIGEST_BLOB

◆ PCRYPT_ENCODE_PARA

◆ PCRYPT_ENCRYPT_MESSAGE_PARA

◆ PCRYPT_ENROLLMENT_NAME_VALUE_PAIR

◆ PCRYPT_HASH_BLOB

◆ PCRYPT_HASH_MESSAGE_PARA

◆ PCRYPT_INTEGER_BLOB

◆ PCRYPT_KEY_PROV_INFO

◆ PCRYPT_KEY_PROV_PARAM

◆ PCRYPT_KEY_SIGN_MESSAGE_PARA

◆ PCRYPT_KEY_VERIFY_MESSAGE_PARA

◆ PCRYPT_OBJID_BLOB

◆ PCRYPT_OID_FUNC_ENTRY

◆ PCRYPT_OID_INFO

◆ PCRYPT_PASSWORD_CREDENTIALSA

◆ PCRYPT_PASSWORD_CREDENTIALSW

◆ PCRYPT_RC2_CBC_PARAMETERS

◆ PCRYPT_RETRIEVE_AUX_INFO

◆ PCRYPT_SEQUENCE_OF_ANY

◆ PCRYPT_SIGN_MESSAGE_PARA

◆ PCRYPT_SMIME_CAPABILITIES

◆ PCRYPT_SMIME_CAPABILITY

◆ PCRYPT_TIME_STAMP_REQUEST_INFO

◆ PCRYPT_UINT_BLOB

◆ PCRYPT_URL_ARRAY

◆ PCRYPT_URL_INFO

◆ PCRYPT_VERIFY_MESSAGE_PARA

◆ PCRYPT_X942_OTHER_INFO

◆ PCRYPTPROTECT_PROMPTSTRUCT

◆ PCTL_CONTEXT

◆ PCTL_ENTRY

◆ PCTL_FIND_SUBJECT_PARA

◆ PCTL_FIND_USAGE_PARA

◆ PCTL_INFO

◆ PCTL_USAGE

◆ PCTL_USAGE_MATCH

◆ PCTL_VERIFY_USAGE_PARA

◆ PCTL_VERIFY_USAGE_STATUS

◆ PDATA_BLOB

◆ PFN_CANCEL_ASYNC_RETRIEVAL_FUNC

typedef BOOL(WINAPI * PFN_CANCEL_ASYNC_RETRIEVAL_FUNC) (HCRYPTASYNC hAsyncRetrieve)

Definition at line 1806 of file wincrypt.h.

◆ PFN_CERT_DLL_OPEN_STORE_PROV_FUNC

typedef BOOL(WINAPI * PFN_CERT_DLL_OPEN_STORE_PROV_FUNC) (LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara, HCERTSTORE hCertStore, PCERT_STORE_PROV_INFO pStoreProvInfo)

Definition at line 1391 of file wincrypt.h.

◆ PFN_CERT_ENUM_PHYSICAL_STORE

typedef BOOL(WINAPI * PFN_CERT_ENUM_PHYSICAL_STORE) (const void *pvSystemStore, DWORD dwFlags, LPCWSTR pwszStoreName, PCERT_PHYSICAL_STORE_INFO pStoreInfo, void *pvReserved, void *pvArg)

Definition at line 1251 of file wincrypt.h.

◆ PFN_CERT_ENUM_SYSTEM_STORE

typedef BOOL(WINAPI * PFN_CERT_ENUM_SYSTEM_STORE) (const void *pvSystemStore, DWORD dwFlags, PCERT_SYSTEM_STORE_INFO pStoreInfo, void *pvReserved, void *pvArg)

Definition at line 1247 of file wincrypt.h.

◆ PFN_CERT_ENUM_SYSTEM_STORE_LOCATION

typedef BOOL(WINAPI * PFN_CERT_ENUM_SYSTEM_STORE_LOCATION) (LPCWSTR pwszStoreLocation, DWORD dwFlags, void *pvReserved, void *pvArg)

Definition at line 1244 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_CLOSE

typedef void(WINAPI * PFN_CERT_STORE_PROV_CLOSE) (HCERTSTOREPROV hStoreProv, DWORD dwFlags)

Definition at line 1396 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_CONTROL

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_CONTROL) (HCERTSTOREPROV hStoreProv, DWORD dwFlags, DWORD dwCtrlType, void const *pvCtrlPara)

Definition at line 1441 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_DELETE_CERT

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_DELETE_CERT) (HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwFlags)

Definition at line 1406 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_DELETE_CRL

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_DELETE_CRL) (HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwFlags)

Definition at line 1420 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_DELETE_CTL

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_DELETE_CTL) (HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwFlags)

Definition at line 1434 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_FIND_CERT

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_FIND_CERT) (HCERTSTOREPROV hStoreProv, PCCERT_STORE_PROV_FIND_INFO pFindInfo, PCCERT_CONTEXT pPrevCertContext, DWORD dwFlags, void **ppvStoreProvFindInfo, PCCERT_CONTEXT *ppProvCertContext)

Definition at line 1530 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_FIND_CRL

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_FIND_CRL) (HCERTSTOREPROV hStoreProv, PCCERT_STORE_PROV_FIND_INFO pFindInfo, PCCRL_CONTEXT pPrevCrlContext, DWORD dwFlags, void **ppvStoreProvFindInfo, PCCRL_CONTEXT *ppProvCrlContext)

Definition at line 1542 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_FIND_CTL

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_FIND_CTL) (HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, void *pvStoreProvFindInfo, DWORD dwFlags)

Definition at line 1554 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_FREE_FIND_CERT

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_FREE_FIND_CERT) (HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, void *pvStoreProvFindInfo, DWORD dwFlags)

Definition at line 1534 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_FREE_FIND_CRL

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_FREE_FIND_CRL) (HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, void *pvStoreProvFindInfo, DWORD dwFlags)

Definition at line 1546 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_GET_CERT_PROPERTY

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_GET_CERT_PROPERTY) (HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, void *pvData, DWORD *pcbData)

Definition at line 1538 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_GET_CRL_PROPERTY

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_GET_CRL_PROPERTY) (HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwPropId, DWORD dwFlags, void *pvData, DWORD *pcbData)

Definition at line 1550 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_GET_CTL_PROPERTY

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_GET_CTL_PROPERTY) (HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwPropId, DWORD dwFlags, void *pvData)

Definition at line 1557 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_READ_CERT

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_READ_CERT) (HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pStoreCertContext, DWORD dwFlags, PCCERT_CONTEXT *ppProvCertContext)

Definition at line 1399 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_READ_CRL

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_READ_CRL) (HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pStoreCrlContext, DWORD dwFlags, PCCRL_CONTEXT *ppProvCrlContext)

Definition at line 1413 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_READ_CTL

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_READ_CTL) (HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pStoreCtlContext, DWORD dwFlags, PCCTL_CONTEXT *ppProvCtlContext)

Definition at line 1427 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_SET_CERT_PROPERTY

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_SET_CERT_PROPERTY) (HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)

Definition at line 1409 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_SET_CRL_PROPERTY

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_SET_CRL_PROPERTY) (HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)

Definition at line 1423 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_SET_CTL_PROPERTY

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_SET_CTL_PROPERTY) (HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)

Definition at line 1437 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_WRITE_CERT

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_WRITE_CERT) (HCERTSTOREPROV hStoreProv, PCCERT_CONTEXT pCertContext, DWORD dwFlags)

Definition at line 1403 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_WRITE_CRL

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_WRITE_CRL) (HCERTSTOREPROV hStoreProv, PCCRL_CONTEXT pCrlContext, DWORD dwFlags)

Definition at line 1417 of file wincrypt.h.

◆ PFN_CERT_STORE_PROV_WRITE_CTL

typedef BOOL(WINAPI * PFN_CERT_STORE_PROV_WRITE_CTL) (HCERTSTOREPROV hStoreProv, PCCTL_CONTEXT pCtlContext, DWORD dwFlags)

Definition at line 1431 of file wincrypt.h.

◆ PFN_CMSG_EXPORT_KEY_TRANS

typedef BOOL(WINAPI * PFN_CMSG_EXPORT_KEY_TRANS) (PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyTransEncodeInfo, PCMSG_KEY_TRANS_ENCRYPT_INFO pKeyTransEncryptInfo, DWORD dwFlags, void *pvReserved)

Definition at line 4295 of file wincrypt.h.

◆ PFN_CMSG_FREE

typedef void(WINAPI * PFN_CMSG_FREE) (void *pv)

Definition at line 4214 of file wincrypt.h.

◆ PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY

typedef BOOL(WINAPI * PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY) (PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo, DWORD dwFlags, void *pvReserved)

Definition at line 4291 of file wincrypt.h.

◆ PFN_CMSG_IMPORT_KEY_TRANS

typedef BOOL(WINAPI * PFN_CMSG_IMPORT_KEY_TRANS) (PCRYPT_ALGORITHM_IDENTIFIER pContentEncryptionAlgorithm, PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA pKeyTransDecryptPara, DWORD dwFlags, void *pvReserved, HCRYPTKEY *phContentEncryptKey)

Definition at line 4301 of file wincrypt.h.

◆ PFN_CMSG_STREAM_OUTPUT

typedef BOOL(WINAPI * PFN_CMSG_STREAM_OUTPUT) (const void *pvArg, BYTE *pbData, DWORD cbData, BOOL fFinal)

Definition at line 3809 of file wincrypt.h.

◆ PFN_CRYPT_ASYNC_PARAM_FREE_FUNC

typedef void(WINAPI * PFN_CRYPT_ASYNC_PARAM_FREE_FUNC) (LPSTR pszParamOid, LPVOID pvParam)

Definition at line 1771 of file wincrypt.h.

◆ PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC

typedef void(WINAPI * PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC) (void *pvCompletion, DWORD dwCompletionCode, LPCSTR pszURL, LPSTR pszObjectOid, void *pvObject)

Definition at line 1796 of file wincrypt.h.

◆ PFN_CRYPT_CANCEL_RETRIEVAL

typedef BOOL(WINAPI * PFN_CRYPT_CANCEL_RETRIEVAL) (DWORD dwFlags, void *pvArg)

Definition at line 1910 of file wincrypt.h.

◆ PFN_CRYPT_ENUM_OID_FUNC

typedef BOOL(WINAPI * PFN_CRYPT_ENUM_OID_FUNC) (DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID, DWORD cValue, const DWORD rgdwValueType[], LPCWSTR const rgpwszValueName[], const BYTE *const rgpbValueData[], const DWORD rgcbValueData[], void *pvArg)

Definition at line 1587 of file wincrypt.h.

◆ PFN_CRYPT_ENUM_OID_INFO

typedef BOOL(WINAPI * PFN_CRYPT_ENUM_OID_INFO) (PCCRYPT_OID_INFO pInfo, void *pvArg)

Definition at line 1640 of file wincrypt.h.

◆ PFN_CRYPT_FREE

typedef VOID(WINAPI * PFN_CRYPT_FREE) (LPVOID pv)

Definition at line 1258 of file wincrypt.h.

◆ PFN_CRYPT_GET_SIGNER_CERTIFICATE

typedef PCCERT_CONTEXT(WINAPI * PFN_CRYPT_GET_SIGNER_CERTIFICATE) (void *pvArg, DWORD dwCertEncodingType, PCERT_INFO pSignerId, HCERTSTORE hMsgCertStore)

Definition at line 1679 of file wincrypt.h.

◆ PFN_FREE_ENCODED_OBJECT_FUNC

typedef void(WINAPI * PFN_FREE_ENCODED_OBJECT_FUNC) (LPCSTR pszObjectOid, PCRYPT_BLOB_ARRAY pObject, void *pvFreeContext)

Definition at line 1854 of file wincrypt.h.

◆ PHCRYPTASYNC

typedef HANDLE * PHCRYPTASYNC

Definition at line 1763 of file wincrypt.h.

◆ PHMAC_INFO

◆ PHTTPSPolicyCallbackData

◆ PKEY_TYPE_SUBTYPE

◆ POCSP_BASIC_RESPONSE_ENTRY

◆ POCSP_BASIC_RESPONSE_INFO

◆ POCSP_BASIC_REVOKED_INFO

◆ POCSP_BASIC_SIGNED_RESPONSE_INFO

◆ POCSP_CERT_ID

◆ POCSP_REQUEST_ENTRY

◆ POCSP_REQUEST_INFO

◆ POCSP_RESPONSE_INFO

◆ POCSP_SIGNATURE_INFO

◆ POCSP_SIGNED_REQUEST_INFO

◆ PROV_ENUMALGS

◆ PROV_ENUMALGS_EX

◆ PSCHANNEL_ALG

◆ PSSL_EXTRA_CERT_CHAIN_POLICY_PARA

◆ PUBLICKEYSTRUC

◆ PVTableProvStruc

◆ RSAPUBKEY

◆ SCHANNEL_ALG

◆ SSL_EXTRA_CERT_CHAIN_POLICY_PARA

◆ TEKPUBKEY

◆ VTableProvStruc

Function Documentation

◆ CertAddCertificateContextToStore()

WINCRYPT32API BOOL WINAPI CertAddCertificateContextToStore ( HCERTSTORE  hCertStore,
PCCERT_CONTEXT  pCertContext,
DWORD  dwAddDisposition,
PCCERT_CONTEXT ppStoreContext 
)

Definition at line 286 of file cert.c.

288{
289 WINECRYPT_CERTSTORE *store = hCertStore;
290
291 TRACE("(%p, %p, %08x, %p)\n", hCertStore, pCertContext, dwAddDisposition, ppStoreContext);
292
293 return add_cert_to_store(store, pCertContext, dwAddDisposition, FALSE, ppStoreContext);
294}
#define FALSE
Definition: types.h:117
static BOOL add_cert_to_store(WINECRYPT_CERTSTORE *store, const CERT_CONTEXT *cert, DWORD add_disposition, BOOL use_link, PCCERT_CONTEXT *ret_context)
Definition: cert.c:171
#define TRACE(s)
Definition: solgame.cpp:4

Referenced by cert_mgr_do_export(), CertAddEncodedCertificateToStore(), check_and_store_certs(), CRYPT_CreateAny(), CRYPT_CreateCert(), CRYPT_FindIssuer(), import_cert(), save_cert_as_cms(), save_pfx(), testAddCert(), testCertRegisterSystemStore(), testDupCert(), testEmptyStore(), testGetIssuerCert(), testRegStoreSavedCerts(), and testStoresInCollection().

◆ CertAddCertificateLinkToStore()

WINCRYPT32API BOOL WINAPI CertAddCertificateLinkToStore ( HCERTSTORE  hCertStore,
PCCERT_CONTEXT  pCertContext,
DWORD  dwAddDisposition,
PCCERT_CONTEXT ppStoreContext 
)

Definition at line 296 of file cert.c.

299{
300 static int calls;
301 WINECRYPT_CERTSTORE *store = (WINECRYPT_CERTSTORE*)hCertStore;
302
303 if (!(calls++))
304 FIXME("(%p, %p, %08x, %p): semi-stub\n", hCertStore, pCertContext,
305 dwAddDisposition, ppCertContext);
307 return FALSE;
308 if (store->type == StoreTypeCollection)
309 {
311 return FALSE;
312 }
313 return add_cert_to_store(hCertStore, pCertContext, dwAddDisposition, TRUE, ppCertContext);
314}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define WINE_CRYPTCERTSTORE_MAGIC
@ StoreTypeCollection
#define E_INVALIDARG
Definition: ddrawi.h:101
#define TRUE
Definition: types.h:120
#define SetLastError(x)
Definition: compat.h:752

Referenced by testAddCertificateLink(), and testLinkCert().

◆ CertAddCRLContextToStore()

WINCRYPT32API BOOL WINAPI CertAddCRLContextToStore ( HCERTSTORE  hCertStore,
PCCRL_CONTEXT  pCrlContext,
DWORD  dwAddDisposition,
PCCRL_CONTEXT ppStoreContext 
)

Definition at line 960 of file store.c.

963{
964 WINECRYPT_CERTSTORE *store = hCertStore;
965 BOOL ret = TRUE;
966 PCCRL_CONTEXT toAdd = NULL, existing = NULL;
967
968 TRACE("(%p, %p, %08x, %p)\n", hCertStore, pCrlContext,
969 dwAddDisposition, ppStoreContext);
970
971 /* Weird case to pass a test */
972 if (dwAddDisposition == 0)
973 {
975 return FALSE;
976 }
977 if (dwAddDisposition != CERT_STORE_ADD_ALWAYS)
978 {
979 existing = CertFindCRLInStore(hCertStore, 0, 0, CRL_FIND_EXISTING,
980 pCrlContext, NULL);
981 }
982
983 switch (dwAddDisposition)
984 {
986 toAdd = CertDuplicateCRLContext(pCrlContext);
987 break;
989 if (existing)
990 {
991 TRACE("found matching CRL, not adding\n");
993 ret = FALSE;
994 }
995 else
996 toAdd = CertDuplicateCRLContext(pCrlContext);
997 break;
999 if (existing)
1000 {
1001 LONG newer = CompareFileTime(&existing->pCrlInfo->ThisUpdate,
1002 &pCrlContext->pCrlInfo->ThisUpdate);
1003
1004 if (newer < 0)
1005 toAdd = CertDuplicateCRLContext(pCrlContext);
1006 else
1007 {
1008 TRACE("existing CRL is newer, not adding\n");
1010 ret = FALSE;
1011 }
1012 }
1013 else
1014 toAdd = CertDuplicateCRLContext(pCrlContext);
1015 break;
1017 if (existing)
1018 {
1019 LONG newer = CompareFileTime(&existing->pCrlInfo->ThisUpdate,
1020 &pCrlContext->pCrlInfo->ThisUpdate);
1021
1022 if (newer < 0)
1023 {
1024 toAdd = CertDuplicateCRLContext(pCrlContext);
1025 Context_CopyProperties(toAdd, existing);
1026 }
1027 else
1028 {
1029 TRACE("existing CRL is newer, not adding\n");
1031 ret = FALSE;
1032 }
1033 }
1034 else
1035 toAdd = CertDuplicateCRLContext(pCrlContext);
1036 break;
1038 toAdd = CertDuplicateCRLContext(pCrlContext);
1039 break;
1041 toAdd = CertDuplicateCRLContext(pCrlContext);
1042 if (existing)
1043 Context_CopyProperties(toAdd, existing);
1044 break;
1046 if (existing)
1047 {
1048 Context_CopyProperties(existing, pCrlContext);
1049 if (ppStoreContext)
1050 *ppStoreContext = CertDuplicateCRLContext(existing);
1051 }
1052 else
1053 toAdd = CertDuplicateCRLContext(pCrlContext);
1054 break;
1055 default:
1056 FIXME("Unimplemented add disposition %d\n", dwAddDisposition);
1057 ret = FALSE;
1058 }
1059
1060 if (toAdd)
1061 {
1062 if (store) {
1063 context_t *ret_context;
1064 ret = store->vtbl->crls.addContext(store, context_from_ptr(toAdd),
1065 existing ? context_from_ptr(existing) : NULL, ppStoreContext ? &ret_context : NULL, FALSE);
1066 if (ret && ppStoreContext)
1067 *ppStoreContext = context_ptr(ret_context);
1068 }else if (ppStoreContext) {
1069 *ppStoreContext = CertDuplicateCRLContext(toAdd);
1070 }
1071 CertFreeCRLContext(toAdd);
1072 }
1073 if (existing)
1074 CertFreeCRLContext(existing);
1075
1076 TRACE("returning %d\n", ret);
1077 return ret;
1078}
void newer(int argc, const char *argv[])
Definition: cmds.c:2278
static void * context_ptr(context_t *context)
static context_t * context_from_ptr(const void *ptr)
#define NULL
Definition: types.h:112
void Context_CopyProperties(const void *to, const void *from)
Definition: context.c:123
BOOL WINAPI CertFreeCRLContext(PCCRL_CONTEXT pCrlContext)
Definition: crl.c:386
PCCRL_CONTEXT WINAPI CertDuplicateCRLContext(PCCRL_CONTEXT pCrlContext)
Definition: crl.c:378
PCCRL_CONTEXT WINAPI CertFindCRLInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCRL_CONTEXT pPrevCrlContext)
Definition: crl.c:287
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
Definition: time.c:106
return ret
Definition: mutex.c:146
unsigned int BOOL
Definition: ntddk_ex.h:94
#define STATUS_ACCESS_VIOLATION
Definition: ntstatus.h:242
long LONG
Definition: pedump.c:60
const store_vtbl_t * vtbl
BOOL(* addContext)(struct WINE_CRYPTCERTSTORE *, context_t *, context_t *, context_t **, BOOL)
PCRL_INFO pCrlInfo
Definition: wincrypt.h:734
FILETIME ThisUpdate
Definition: wincrypt.h:507
CONTEXT_FUNCS crls
#define CERT_STORE_ADD_REPLACE_EXISTING
Definition: wincrypt.h:2653
#define CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES
Definition: wincrypt.h:2657
#define CERT_STORE_ADD_NEWER
Definition: wincrypt.h:2656
#define CERT_STORE_ADD_USE_EXISTING
Definition: wincrypt.h:2652
#define CERT_STORE_ADD_NEW
Definition: wincrypt.h:2651
#define CERT_STORE_ADD_ALWAYS
Definition: wincrypt.h:2654
#define CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
Definition: wincrypt.h:2655
#define CRL_FIND_EXISTING
Definition: wincrypt.h:3076
#define CRYPT_E_EXISTS
Definition: winerror.h:4423

Referenced by CertAddEncodedCRLToStore(), CRYPT_CreateAny(), CRYPT_CreateCRL(), import_crl(), and testAddCRL().

◆ CertAddCRLLinkToStore()

WINCRYPT32API BOOL WINAPI CertAddCRLLinkToStore ( HCERTSTORE  hCertStore,
PCCRL_CONTEXT  pCrlContext,
DWORD  dwAddDisposition,
PCCRL_CONTEXT ppStoreContext 
)

◆ CertAddCTLContextToStore()

WINCRYPT32API BOOL WINAPI CertAddCTLContextToStore ( HCERTSTORE  hCertStore,
PCCTL_CONTEXT  pCtlContext,
DWORD  dwAddDisposition,
PCCTL_CONTEXT ppStoreContext 
)

Definition at line 63 of file ctl.c.

66{
67 WINECRYPT_CERTSTORE *store = hCertStore;
68 BOOL ret = TRUE;
69 PCCTL_CONTEXT toAdd = NULL, existing = NULL;
70
71 TRACE("(%p, %p, %08x, %p)\n", hCertStore, pCtlContext, dwAddDisposition,
72 ppStoreContext);
73
74 if (dwAddDisposition != CERT_STORE_ADD_ALWAYS)
75 {
76 existing = CertFindCTLInStore(hCertStore, 0, 0, CTL_FIND_EXISTING,
77 pCtlContext, NULL);
78 }
79
80 switch (dwAddDisposition)
81 {
83 toAdd = CertDuplicateCTLContext(pCtlContext);
84 break;
86 if (existing)
87 {
88 TRACE("found matching CTL, not adding\n");
90 ret = FALSE;
91 }
92 else
93 toAdd = CertDuplicateCTLContext(pCtlContext);
94 break;
96 if (existing)
97 {
98 LONG newer = CompareFileTime(&existing->pCtlInfo->ThisUpdate,
99 &pCtlContext->pCtlInfo->ThisUpdate);
100
101 if (newer < 0)
102 toAdd = CertDuplicateCTLContext(pCtlContext);
103 else
104 {
105 TRACE("existing CTL is newer, not adding\n");
107 ret = FALSE;
108 }
109 }
110 else
111 toAdd = CertDuplicateCTLContext(pCtlContext);
112 break;
114 if (existing)
115 {
116 LONG newer = CompareFileTime(&existing->pCtlInfo->ThisUpdate,
117 &pCtlContext->pCtlInfo->ThisUpdate);
118
119 if (newer < 0)
120 {
121 toAdd = CertDuplicateCTLContext(pCtlContext);
122 Context_CopyProperties(existing, pCtlContext);
123 }
124 else
125 {
126 TRACE("existing CTL is newer, not adding\n");
128 ret = FALSE;
129 }
130 }
131 else
132 toAdd = CertDuplicateCTLContext(pCtlContext);
133 break;
135 toAdd = CertDuplicateCTLContext(pCtlContext);
136 break;
138 toAdd = CertDuplicateCTLContext(pCtlContext);
139 if (existing)
140 Context_CopyProperties(toAdd, existing);
141 break;
143 if (existing)
144 {
145 Context_CopyProperties(existing, pCtlContext);
146 if (ppStoreContext)
147 *ppStoreContext = CertDuplicateCTLContext(existing);
148 }
149 else
150 toAdd = CertDuplicateCTLContext(pCtlContext);
151 break;
152 default:
153 FIXME("Unimplemented add disposition %d\n", dwAddDisposition);
154 ret = FALSE;
155 }
156
157 if (toAdd)
158 {
159 if (store) {
160 context_t *ret_ctx;
161
162 ret = store->vtbl->ctls.addContext(store, context_from_ptr(toAdd),
163 existing ? context_from_ptr(existing) : NULL, ppStoreContext ? &ret_ctx : NULL, TRUE);
164 if(ret && ppStoreContext)
165 *ppStoreContext = context_ptr(ret_ctx);
166 }else if (ppStoreContext) {
167 *ppStoreContext = CertDuplicateCTLContext(toAdd);
168 }
169 CertFreeCTLContext(toAdd);
170 }
171 CertFreeCTLContext(existing);
172
173 TRACE("returning %d\n", ret);
174 return ret;
175}
BOOL WINAPI CertFreeCTLContext(PCCTL_CONTEXT pCTLContext)
Definition: ctl.c:499
PCCTL_CONTEXT WINAPI CertDuplicateCTLContext(PCCTL_CONTEXT pCtlContext)
Definition: ctl.c:491
PCCTL_CONTEXT WINAPI CertFindCTLInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCTL_CONTEXT pPrevCtlContext)
Definition: ctl.c:291
PCTL_INFO pCtlInfo
Definition: wincrypt.h:859
FILETIME ThisUpdate
Definition: wincrypt.h:846
CONTEXT_FUNCS ctls
#define CTL_FIND_EXISTING
Definition: wincrypt.h:3095

Referenced by CertAddEncodedCTLToStore(), CRYPT_CreateAny(), CRYPT_CreateCTL(), and import_ctl().

◆ CertAddCTLLinkToStore()

WINCRYPT32API BOOL WINAPI CertAddCTLLinkToStore ( HCERTSTORE  hCertStore,
PCCTL_CONTEXT  pCtlContext,
DWORD  dwAddDisposition,
PCCTL_CONTEXT ppStoreContext 
)

◆ CertAddEncodedCertificateToStore()

WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToStore ( HCERTSTORE  hCertStore,
DWORD  dwCertEncodingType,
const BYTE pbCertEncoded,
DWORD  cbCertEncoded,
DWORD  dwAddDisposition,
PCCERT_CONTEXT ppCertContext 
)

Definition at line 58 of file cert.c.

61{
63 pbCertEncoded, cbCertEncoded);
64 BOOL ret;
65
66 TRACE("(%p, %08x, %p, %d, %08x, %p)\n", hCertStore, dwCertEncodingType,
67 pbCertEncoded, cbCertEncoded, dwAddDisposition, ppCertContext);
68
69 if (cert)
70 {
72 dwAddDisposition, ppCertContext);
74 }
75 else
76 ret = FALSE;
77 return ret;
78}
BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, PCCERT_CONTEXT *ppStoreContext)
Definition: cert.c:286
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:371
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:316
static BYTE cert[]
Definition: msg.c:1437

Referenced by add_ms_root_certs(), CertAddEncodedCertificateToSystemStoreA(), CertAddEncodedCertificateToSystemStoreW(), check_ssl_policy(), CRYPT_MsgOpenStore(), getChain(), import_base64_certs_from_fp(), read_trusted_roots_from_known_locations(), test_CERT_CHAIN_PARA_cbSize(), test_crypt_ui_wiz_import(), test_I_UpdateStore(), test_msg_get_and_verify_signer(), testAddCert(), testAddCertificateLink(), testCloseStore(), testCollectionStore(), testCreateCertChainEngine(), testDupCert(), testFileNameStore(), testFileStore(), testFindCert(), testGetCertChain(), testGetIssuerCert(), testGetSubjectCert(), testMemStore(), testMessageStore(), and testRegStore().

◆ CertAddEncodedCertificateToSystemStoreA()

WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToSystemStoreA ( LPCSTR  pszCertStoreName,
const BYTE pbCertEncoded,
DWORD  cbCertEncoded 
)

Definition at line 80 of file cert.c.

82{
83 HCERTSTORE store;
84 BOOL ret = FALSE;
85
86 TRACE("(%s, %p, %d)\n", debugstr_a(pszCertStoreName), pbCertEncoded,
87 cbCertEncoded);
88
89 store = CertOpenSystemStoreA(0, pszCertStoreName);
90 if (store)
91 {
93 pbCertEncoded, cbCertEncoded, CERT_STORE_ADD_USE_EXISTING, NULL);
94 CertCloseStore(store, 0);
95 }
96 return ret;
97}
BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext)
Definition: cert.c:58
HCERTSTORE WINAPI CertOpenSystemStoreA(HCRYPTPROV_LEGACY hProv, LPCSTR szSubSystemProtocol)
Definition: store.c:904
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
Definition: store.c:1127
#define debugstr_a
Definition: kernel32.h:31
#define X509_ASN_ENCODING
Definition: wincrypt.h:2501

◆ CertAddEncodedCertificateToSystemStoreW()

WINCRYPT32API BOOL WINAPI CertAddEncodedCertificateToSystemStoreW ( LPCWSTR  pszCertStoreName,
const BYTE pbCertEncoded,
DWORD  cbCertEncoded 
)

Definition at line 99 of file cert.c.

101{
102 HCERTSTORE store;
103 BOOL ret = FALSE;
104
105 TRACE("(%s, %p, %d)\n", debugstr_w(pszCertStoreName), pbCertEncoded,
106 cbCertEncoded);
107
108 store = CertOpenSystemStoreW(0, pszCertStoreName);
109 if (store)
110 {
112 pbCertEncoded, cbCertEncoded, CERT_STORE_ADD_USE_EXISTING, NULL);
113 CertCloseStore(store, 0);
114 }
115 return ret;
116}
HCERTSTORE WINAPI CertOpenSystemStoreW(HCRYPTPROV_LEGACY hProv, LPCWSTR szSubSystemProtocol)
Definition: store.c:916
#define debugstr_w
Definition: kernel32.h:32

◆ CertAddEncodedCRLToStore()

WINCRYPT32API BOOL WINAPI CertAddEncodedCRLToStore ( HCERTSTORE  hCertStore,
DWORD  dwCertEncodingType,
const BYTE pbCrlEncoded,
DWORD  cbCrlEncoded,
DWORD  dwAddDisposition,
PCCRL_CONTEXT ppCrlContext 
)

Definition at line 129 of file crl.c.

132{
133 PCCRL_CONTEXT crl = CertCreateCRLContext(dwCertEncodingType,
134 pbCrlEncoded, cbCrlEncoded);
135 BOOL ret;
136
137 TRACE("(%p, %08x, %p, %d, %08x, %p)\n", hCertStore, dwCertEncodingType,
138 pbCrlEncoded, cbCrlEncoded, dwAddDisposition, ppCrlContext);
139
140 if (crl)
141 {
142 ret = CertAddCRLContextToStore(hCertStore, crl, dwAddDisposition,
143 ppCrlContext);
145 }
146 else
147 ret = FALSE;
148 return ret;
149}
PCCRL_CONTEXT WINAPI CertCreateCRLContext(DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded)
Definition: crl.c:85
BOOL WINAPI CertAddCRLContextToStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, PCCRL_CONTEXT *ppStoreContext)
Definition: store.c:960
static const BYTE crl[]
Definition: message.c:864

Referenced by CRYPT_MsgOpenStore(), test_crypt_ui_wiz_import(), test_I_UpdateStore(), test_verifyRevocation(), testAddCRL(), testCloseStore(), testFileNameStore(), testFileStore(), testFindCRL(), testGetCRLFromStore(), testIsValidCRLForCert(), and testVerifyRevocation().

◆ CertAddEncodedCTLToStore()

WINCRYPT32API BOOL WINAPI CertAddEncodedCTLToStore ( HCERTSTORE  hCertStore,
DWORD  dwMsgAndCertEncodingType,
const BYTE pbCtlEncoded,
DWORD  cbCtlEncoded,
DWORD  dwAddDisposition,
PCCTL_CONTEXT ppCtlContext 
)

Definition at line 177 of file ctl.c.

180{
181 PCCTL_CONTEXT ctl = CertCreateCTLContext(dwMsgAndCertEncodingType,
182 pbCtlEncoded, cbCtlEncoded);
183 BOOL ret;
184
185 TRACE("(%p, %08x, %p, %d, %08x, %p)\n", hCertStore,
186 dwMsgAndCertEncodingType, pbCtlEncoded, cbCtlEncoded, dwAddDisposition,
187 ppCtlContext);
188
189 if (ctl)
190 {
191 ret = CertAddCTLContextToStore(hCertStore, ctl, dwAddDisposition,
192 ppCtlContext);
194 }
195 else
196 ret = FALSE;
197 return ret;
198}
PCCTL_CONTEXT WINAPI CertCreateCTLContext(DWORD dwMsgAndCertEncodingType, const BYTE *pbCtlEncoded, DWORD cbCtlEncoded)
Definition: ctl.c:363
BOOL WINAPI CertAddCTLContextToStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, PCCTL_CONTEXT *ppStoreContext)
Definition: ctl.c:63

Referenced by testAddCTLToStore(), and testCloseStore().

◆ CertAddEnhancedKeyUsageIdentifier()

WINCRYPT32API BOOL WINAPI CertAddEnhancedKeyUsageIdentifier ( PCCERT_CONTEXT  pCertContext,
LPCSTR  pszUsageIdentifier 
)

Definition at line 2978 of file cert.c.

2980{
2981 BOOL ret;
2982 DWORD size;
2983
2984 TRACE("(%p, %s)\n", pCertContext, debugstr_a(pszUsageIdentifier));
2985
2986 if (CertGetEnhancedKeyUsage(pCertContext,
2988 {
2990
2991 if (usage)
2992 {
2993 ret = CertGetEnhancedKeyUsage(pCertContext,
2995 if (ret)
2996 {
2997 DWORD i;
2998 BOOL exists = FALSE;
2999
3000 /* Make sure usage doesn't already exist */
3001 for (i = 0; !exists && i < usage->cUsageIdentifier; i++)
3002 {
3003 if (!strcmp(usage->rgpszUsageIdentifier[i],
3004 pszUsageIdentifier))
3005 exists = TRUE;
3006 }
3007 if (!exists)
3008 {
3010 sizeof(LPSTR) + strlen(pszUsageIdentifier) + 1);
3011
3012 if (newUsage)
3013 {
3014 LPSTR nextOID;
3015
3016 newUsage->rgpszUsageIdentifier = (LPSTR *)
3017 ((LPBYTE)newUsage + sizeof(CERT_ENHKEY_USAGE));
3018 nextOID = (LPSTR)((LPBYTE)newUsage->rgpszUsageIdentifier
3019 + (usage->cUsageIdentifier + 1) * sizeof(LPSTR));
3020 for (i = 0; i < usage->cUsageIdentifier; i++)
3021 {
3022 newUsage->rgpszUsageIdentifier[i] = nextOID;
3023 strcpy(nextOID, usage->rgpszUsageIdentifier[i]);
3024 nextOID += strlen(nextOID) + 1;
3025 }
3026 newUsage->rgpszUsageIdentifier[i] = nextOID;
3027 strcpy(nextOID, pszUsageIdentifier);
3028 newUsage->cUsageIdentifier = i + 1;
3029 ret = CertSetEnhancedKeyUsage(pCertContext, newUsage);
3030 CryptMemFree(newUsage);
3031 }
3032 else
3033 ret = FALSE;
3034 }
3035 }
3037 }
3038 else
3039 ret = FALSE;
3040 }
3041 else
3042 {
3044 sizeof(LPSTR) + strlen(pszUsageIdentifier) + 1);
3045
3046 if (usage)
3047 {
3048 usage->rgpszUsageIdentifier =
3049 (LPSTR *)((LPBYTE)usage + sizeof(CERT_ENHKEY_USAGE));
3050 usage->rgpszUsageIdentifier[0] = (LPSTR)((LPBYTE)usage +
3051 sizeof(CERT_ENHKEY_USAGE) + sizeof(LPSTR));
3052 strcpy(usage->rgpszUsageIdentifier[0], pszUsageIdentifier);
3053 usage->cUsageIdentifier = 1;
3054 ret = CertSetEnhancedKeyUsage(pCertContext, usage);
3056 }
3057 else
3058 ret = FALSE;
3059 }
3060 return ret;
3061}
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
BOOL WINAPI CertSetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, PCERT_ENHKEY_USAGE pUsage)
Definition: cert.c:2952
BOOL WINAPI CertGetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, DWORD dwFlags, PCERT_ENHKEY_USAGE pUsage, DWORD *pcbUsage)
Definition: cert.c:2847
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:131
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:141
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizeiptr size
Definition: glext.h:5919
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
strcpy
Definition: string.h:131
DWORD cUsageIdentifier
Definition: wincrypt.h:831
LPSTR * rgpszUsageIdentifier
Definition: wincrypt.h:832
unsigned char * LPBYTE
Definition: typedefs.h:53
struct _CTL_USAGE CERT_ENHKEY_USAGE
#define CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG
Definition: wincrypt.h:3065
char * LPSTR
Definition: xmlstorage.h:182

Referenced by testKeyUsage().

◆ CertAddSerializedElementToStore()

WINCRYPT32API BOOL WINAPI CertAddSerializedElementToStore ( HCERTSTORE  hCertStore,
const BYTE pbElement,
DWORD  cbElement,
DWORD  dwAddDisposition,
DWORD  dwFlags,
DWORD  dwContextTypeFlags,
DWORD pdwContentType,
const void **  ppvContext 
)

Definition at line 953 of file serialize.c.

956{
957 const void *context;
958 DWORD type;
959 BOOL ret;
960
961 TRACE("(%p, %p, %d, %08x, %08x, %08x, %p, %p)\n", hCertStore,
962 pbElement, cbElement, dwAddDisposition, dwFlags, dwContextTypeFlags,
963 pdwContentType, ppvContext);
964
965 /* Call the internal function, then delete the hashes. Tests show this
966 * function uses real hash values, not whatever's stored in the hash
967 * property.
968 */
969 context = CRYPT_ReadSerializedElement(pbElement, cbElement,
970 dwContextTypeFlags, &type);
971 if (context)
972 {
973 const WINE_CONTEXT_INTERFACE *contextInterface = NULL;
974
975 switch (type)
976 {
978 contextInterface = pCertInterface;
979 break;
981 contextInterface = pCRLInterface;
982 break;
984 contextInterface = pCTLInterface;
985 break;
986 default:
988 }
989 if (contextInterface)
990 {
991 contextInterface->setProp(context, CERT_HASH_PROP_ID, 0, NULL);
992 contextInterface->setProp(context, CERT_MD5_HASH_PROP_ID, 0, NULL);
993 contextInterface->setProp(context, CERT_SIGNATURE_HASH_PROP_ID, 0,
994 NULL);
995 if (pdwContentType)
996 *pdwContentType = type;
997 ret = contextInterface->addContextToStore(hCertStore, context,
998 dwAddDisposition, ppvContext);
1000 }
1001 else
1002 ret = FALSE;
1003 }
1004 else
1005 ret = FALSE;
1006 return ret;
1007}
void Context_Release(context_t *context)
Definition: context.c:106
const WINE_CONTEXT_INTERFACE * pCTLInterface
Definition: store.c:80
const WINE_CONTEXT_INTERFACE * pCertInterface
Definition: store.c:54
const WINE_CONTEXT_INTERFACE * pCRLInterface
Definition: store.c:67
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
LPCWSTR LPCWSTR LPCWSTR DWORD dwFlags
Definition: env.c:37
const void * CRYPT_ReadSerializedElement(const BYTE *pbElement, DWORD cbElement, DWORD dwContextTypeFlags, DWORD *pdwContentType)
Definition: serialize.c:295
SetContextPropertyFunc setProp
AddContextToStoreFunc addContextToStore
Definition: http.c:7252
#define CERT_STORE_CERTIFICATE_CONTEXT
Definition: wincrypt.h:3121
#define CERT_STORE_CTL_CONTEXT
Definition: wincrypt.h:3123
#define CERT_HASH_PROP_ID
Definition: wincrypt.h:2835
#define CERT_STORE_CRL_CONTEXT
Definition: wincrypt.h:3122

Referenced by testAddSerialized().

◆ CertAddStoreToCollection()

WINCRYPT32API BOOL WINAPI CertAddStoreToCollection ( HCERTSTORE  hCollectionStore,
HCERTSTORE  hSiblingStore,
DWORD  dwUpdateFlags,
DWORD  dwPriority 
)

Definition at line 489 of file collectionstore.c.

491{
492 WINE_COLLECTIONSTORE *collection = hCollectionStore;
493 WINECRYPT_CERTSTORE *sibling = hSiblingStore;
495 BOOL ret;
496
497 TRACE("(%p, %p, %08x, %d)\n", hCollectionStore, hSiblingStore,
498 dwUpdateFlags, dwPriority);
499
500 if (!collection || !sibling)
501 return TRUE;
502 if (collection->hdr.dwMagic != WINE_CRYPTCERTSTORE_MAGIC)
503 {
505 return FALSE;
506 }
507 if (collection->hdr.type != StoreTypeCollection)
508 {
510 return FALSE;
511 }
512 if (sibling->dwMagic != WINE_CRYPTCERTSTORE_MAGIC)
513 {
515 return FALSE;
516 }
517
519 if (entry)
520 {
521 InterlockedIncrement(&sibling->ref);
522 TRACE("sibling %p's ref count is %d\n", sibling, sibling->ref);
523 entry->store = sibling;
524 entry->dwUpdateFlags = dwUpdateFlags;
525 entry->dwPriority = dwPriority;
526 TRACE("%p: adding %p, priority %d\n", collection, entry, dwPriority);
528 if (dwPriority)
529 {
531 BOOL added = FALSE;
532
535 {
536 if (cursor->dwPriority < dwPriority)
537 {
538 list_add_before(&cursor->entry, &entry->entry);
539 added = TRUE;
540 break;
541 }
542 }
543 if (!added)
544 list_add_tail(&collection->stores, &entry->entry);
545 }
546 else
547 list_add_tail(&collection->stores, &entry->entry);
549 ret = TRUE;
550 }
551 else
552 ret = FALSE;
553 return ret;
554}
#define InterlockedIncrement
Definition: armddk.h:53
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
Definition: list.h:83
const char cursor[]
Definition: icontest.c:13
uint32_t entry
Definition: isohybrid.c:63
static ICollection collection
Definition: typelib.c:184
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
__WINE_SERVER_LIST_INLINE void list_add_before(struct list *elem, struct list *to_add)
Definition: list.h:87
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)

Referenced by create_root_store(), CRYPT_AddStoresToCollection(), CRYPT_BuildCandidateChainFromCert(), CRYPT_CreateAny(), CRYPT_SysOpenStoreW(), CRYPTDLG_MakeEngine(), CryptMsgGetAndVerifySigner(), save_cert_as_cms(), testAddCert(), testCollectionStore(), testStoresInCollection(), testSystemRegStore(), testSystemStore(), and WINTRUST_CreateChainForSigner().

◆ CertAlgIdToOID()

WINCRYPT32API LPCSTR WINAPI CertAlgIdToOID ( DWORD  dwAlgId)

Definition at line 1888 of file oid.c.

1889{
1890 LPCSTR ret;
1892 &dwAlgId, 0);
1893
1894 if (info)
1895 ret = info->pszOID;
1896 else
1897 ret = NULL;
1898 return ret;
1899}
PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey, DWORD dwGroupId)
Definition: oid.c:1799
#define CRYPT_OID_INFO_ALGID_KEY
Definition: wincrypt.h:1957
const char * LPCSTR
Definition: xmlstorage.h:183

Referenced by CRYPT_EncodePKCSDigestedData(), CRYPT_ExportPublicKeyInfoEx(), and testAlgIDToOID().

◆ CertCloseStore()

WINCRYPT32API BOOL WINAPI CertCloseStore ( HCERTSTORE  hCertStore,
DWORD  dwFlags 
)

Definition at line 1127 of file store.c.

1128{
1129 WINECRYPT_CERTSTORE *hcs = hCertStore;
1130 DWORD res;
1131
1132 TRACE("(%p, %08x)\n", hCertStore, dwFlags);
1133
1134 if( ! hCertStore )
1135 return TRUE;
1136
1137 if ( hcs->dwMagic != WINE_CRYPTCERTSTORE_MAGIC )
1138 return FALSE;
1139
1140 res = hcs->vtbl->release(hcs, dwFlags);
1141 if (res != ERROR_SUCCESS) {
1143 return FALSE;
1144 }
1145
1146 return TRUE;
1147}
#define ERROR_SUCCESS
Definition: deptool.c:10
GLuint res
Definition: glext.h:9613
DWORD(* release)(struct WINE_CRYPTCERTSTORE *, DWORD)

Referenced by cert_mgr_do_export(), CertAddEncodedCertificateToSystemStoreA(), CertAddEncodedCertificateToSystemStoreW(), CertRegisterSystemStore(), CertRemoveStoreFromCollection(), check_ssl_policy(), close_stores(), CRYPT_CheckRestrictedRoot(), CRYPT_CloseStores(), CRYPT_CreateAny(), CRYPT_CreateChainEngine(), CRYPT_FileControl(), CRYPT_FindIssuer(), CRYPT_FreeChainContext(), CRYPT_ImportSystemRootCertsToReg(), CRYPT_MsgOpenStore(), CRYPT_ProvCreateStore(), CRYPT_ProvOpenStore(), CRYPT_QueryContextObject(), CRYPT_QuerySerializedStoreFromBlob(), CRYPT_QuerySerializedStoreFromFile(), CRYPT_RegControl(), CRYPT_SerializedOpenStore(), CRYPT_SysOpenStoreW(), CRYPTDLG_IsCertAllowed(), CRYPTDLG_MakeEngine(), CryptMsgGetAndVerifySigner(), CryptVerifyDetachedMessageSignature(), CryptVerifyMessageSignature(), free_chain_engine(), getChain(), import_cert(), import_crl(), import_ctl(), import_file(), read_trusted_roots_from_known_locations(), save_cert_as_cms(), save_pfx(), select_store_dlg_proc(), show_import_ui(), SOFTPUB_CreateStoreFromMessage(), SoftpubAuthenticode(), SoftpubCleanup(), test_CERT_CHAIN_PARA_cbSize(), test_crypt_ui_wiz_import(), test_I_UpdateStore(), test_msg_get_and_verify_signer(), test_retrieveObjectByUrl(), test_utils(), test_verifyRevocation(), testAddCert(), testAddCertificateLink(), testAddCRL(), testAddCTLToStore(), testAddSerialized(), testCertOpenSystemStore(), testCertRegisterSystemStore(), testCloseStore(), testCollectionStore(), testCreateCertChainEngine(), testDupCert(), testEmptyStore(), testFileNameStore(), testFileStore(), testFindCert(), testFindCRL(), testGetCertChain(), testGetCRLFromStore(), testGetIssuerCert(), testGetSubjectCert(), testIsValidCRLForCert(), testLinkCert(), testMemStore(), testMessageStore(), testRegStore(), testRegStoreSavedCerts(), testSerializedStore(), testStoreProperty(), testStoresInCollection(), testSystemRegStore(), testSystemStore(), testVerifyRevocation(), and WINTRUST_CreateChainForSigner().

◆ CertCompareCertificate()

WINCRYPT32API BOOL WINAPI CertCompareCertificate ( DWORD  dwCertEncodingType,
PCERT_INFO  pCertId1,
PCERT_INFO  pCertId2 
)

Definition at line 1166 of file cert.c.

1168{
1169 BOOL ret;
1170
1171 TRACE("(%08x, %p, %p)\n", dwCertEncodingType, pCertId1, pCertId2);
1172
1173 ret = CertCompareCertificateName(dwCertEncodingType, &pCertId1->Issuer,
1174 &pCertId2->Issuer) && CertCompareIntegerBlob(&pCertId1->SerialNumber,
1175 &pCertId2->SerialNumber);
1176 TRACE("returning %d\n", ret);
1177 return ret;
1178}
BOOL WINAPI CertCompareCertificateName(DWORD dwCertEncodingType, PCERT_NAME_BLOB pCertName1, PCERT_NAME_BLOB pCertName2)
Definition: cert.c:1180
BOOL WINAPI CertCompareIntegerBlob(PCRYPT_INTEGER_BLOB pInt1, PCRYPT_INTEGER_BLOB pInt2)
Definition: cert.c:1221
CERT_NAME_BLOB Issuer
Definition: wincrypt.h:253
CRYPT_INTEGER_BLOB SerialNumber
Definition: wincrypt.h:251

Referenced by compare_existing_cert(), CRYPT_CheckSimpleChainForCycles(), and testCompareCert().

◆ CertCompareCertificateName()

WINCRYPT32API BOOL WINAPI CertCompareCertificateName ( DWORD  dwCertEncodingType,
PCERT_NAME_BLOB  pCertName1,
PCERT_NAME_BLOB  pCertName2 
)

Definition at line 1180 of file cert.c.

1182{
1183 BOOL ret;
1184
1185 TRACE("(%08x, %p, %p)\n", dwCertEncodingType, pCertName1, pCertName2);
1186
1187 if (pCertName1->cbData == pCertName2->cbData)
1188 {
1189 if (pCertName1->cbData)
1190 ret = !memcmp(pCertName1->pbData, pCertName2->pbData,
1191 pCertName1->cbData);
1192 else
1193 ret = TRUE;
1194 }
1195 else
1196 ret = FALSE;
1197 TRACE("returning %d\n", ret);
1198 return ret;
1199}
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
BYTE * pbData
Definition: wincrypt.h:112

Referenced by CDecodeSignedMsg_VerifySignature(), CertCompareCertificate(), compare_cert_by_cert_id(), compare_cert_by_name(), compare_cert_by_subject_cert(), compare_crl_existing(), compare_crl_issued_by(), compare_crl_issued_for(), CRYPT_IsCertificateSelfSigned(), testCompareCertName(), testFindCert(), and TrustIsCertificateSelfSigned().

◆ CertCompareIntegerBlob()

WINCRYPT32API BOOL WINAPI CertCompareIntegerBlob ( PCRYPT_INTEGER_BLOB  pInt1,
PCRYPT_INTEGER_BLOB  pInt2 
)

Definition at line 1221 of file cert.c.

1223{
1224 BOOL ret;
1225 DWORD cb1, cb2;
1226
1227 TRACE("(%p, %p)\n", pInt1, pInt2);
1228
1229 cb1 = CRYPT_significantBytes(pInt1);
1230 cb2 = CRYPT_significantBytes(pInt2);
1231 if (cb1 == cb2)
1232 {
1233 if (cb1)
1234 ret = !memcmp(pInt1->pbData, pInt2->pbData, cb1);
1235 else
1236 ret = TRUE;
1237 }
1238 else
1239 ret = FALSE;
1240 TRACE("returning %d\n", ret);
1241 return ret;
1242}
static DWORD CRYPT_significantBytes(const CRYPT_INTEGER_BLOB *pInt)
Definition: cert.c:1205

Referenced by CDecodeSignedMsg_VerifySignature(), CertCompareCertificate(), compare_cert_by_cert_id(), compare_cert_by_subject_cert(), compare_crl_issued_by(), CRYPT_FindCertificateInCRL(), CRYPT_IsCertificateSelfSigned(), testCompareIntegerBlob(), testFindCert(), and TrustIsCertificateSelfSigned().

◆ CertComparePublicKeyInfo()

WINCRYPT32API BOOL WINAPI CertComparePublicKeyInfo ( DWORD  dwCertEncodingType,
PCERT_PUBLIC_KEY_INFO  pPublicKey1,
PCERT_PUBLIC_KEY_INFO  pPublicKey2 
)

Definition at line 1244 of file cert.c.

1246{
1247 BOOL ret;
1248
1249 TRACE("(%08x, %p, %p)\n", dwCertEncodingType, pPublicKey1, pPublicKey2);
1250
1251 /* RSA public key data should start with ASN_SEQUENCE,
1252 * otherwise it's not a RSA_CSP_PUBLICKEYBLOB.
1253 */
1254 if (!pPublicKey1->PublicKey.cbData || pPublicKey1->PublicKey.pbData[0] != ASN_SEQUENCE)
1255 dwCertEncodingType = 0;
1256
1257 switch (GET_CERT_ENCODING_TYPE(dwCertEncodingType))
1258 {
1259 case 0: /* Seems to mean "raw binary bits" */
1260 if (pPublicKey1->PublicKey.cbData == pPublicKey2->PublicKey.cbData &&
1261 pPublicKey1->PublicKey.cUnusedBits == pPublicKey2->PublicKey.cUnusedBits)
1262 {
1263 if (pPublicKey2->PublicKey.cbData)
1264 ret = !memcmp(pPublicKey1->PublicKey.pbData,
1265 pPublicKey2->PublicKey.pbData, pPublicKey1->PublicKey.cbData);
1266 else
1267 ret = TRUE;
1268 }
1269 else
1270 ret = FALSE;
1271 break;
1272 default:
1273 WARN("Unknown encoding type %08x\n", dwCertEncodingType);
1274 /* FALLTHROUGH */
1275 case X509_ASN_ENCODING:
1276 {
1277 BLOBHEADER *pblob1, *pblob2;
1278 DWORD length;
1279 ret = FALSE;
1280 if (CryptDecodeObject(dwCertEncodingType, RSA_CSP_PUBLICKEYBLOB,
1281 pPublicKey1->PublicKey.pbData, pPublicKey1->PublicKey.cbData,
1282 CRYPT_DECODE_ALLOC_FLAG, &pblob1, &length))
1283 {
1284 if (CryptDecodeObject(dwCertEncodingType, RSA_CSP_PUBLICKEYBLOB,
1285 pPublicKey2->PublicKey.pbData, pPublicKey2->PublicKey.cbData,
1286 CRYPT_DECODE_ALLOC_FLAG, &pblob2, &length))
1287 {
1288 /* The RSAPUBKEY structure directly follows the BLOBHEADER */
1289 RSAPUBKEY *pk1 = (LPVOID)(pblob1 + 1),
1290 *pk2 = (LPVOID)(pblob2 + 1);
1291 ret = (pk1->bitlen == pk2->bitlen) && (pk1->pubexp == pk2->pubexp)
1292 && !memcmp(pk1 + 1, pk2 + 1, pk1->bitlen/8);
1293
1294 LocalFree(pblob2);
1295 }
1296 LocalFree(pblob1);
1297 }
1298
1299 break;
1300 }
1301 }
1302 return ret;
1303}
#define WARN(fmt,...)
Definition: precomp.h:61
BOOL WINAPI CryptDecodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, void *pvStructInfo, DWORD *pcbStructInfo)
Definition: decode.c:6278
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
#define LPVOID
Definition: nt_native.h:45
#define ASN_SEQUENCE
Definition: snmp.h:110
CRYPT_BIT_BLOB PublicKey
Definition: wincrypt.h:235
DWORD cUnusedBits
Definition: wincrypt.h:207
BYTE * pbData
Definition: wincrypt.h:206
DWORD pubexp
Definition: wincrypt.h:154
DWORD bitlen
Definition: wincrypt.h:153
#define GET_CERT_ENCODING_TYPE(x)
Definition: wincrypt.h:2496
#define CRYPT_DECODE_ALLOC_FLAG
Definition: wincrypt.h:3612
#define RSA_CSP_PUBLICKEYBLOB
Definition: wincrypt.h:3536

Referenced by compare_cert_by_public_key(), testComparePublicKeyInfo(), verify_authenticode_policy(), and verify_ms_root_policy().

◆ CertControlStore()

WINCRYPT32API BOOL WINAPI CertControlStore ( HCERTSTORE  hCertStore,
DWORD  dwFlags,
DWORD  dwCtrlType,
void const pvCtrlPara 
)

Definition at line 1149 of file store.c.

1151{
1152 WINECRYPT_CERTSTORE *hcs = hCertStore;
1153 BOOL ret;
1154
1155 TRACE("(%p, %08x, %d, %p)\n", hCertStore, dwFlags, dwCtrlType,
1156 pvCtrlPara);
1157
1158 if (!hcs)
1159 ret = FALSE;
1160 else if (hcs->dwMagic != WINE_CRYPTCERTSTORE_MAGIC)
1161 ret = FALSE;
1162 else
1163 {
1164 if (hcs->vtbl->control)
1165 ret = hcs->vtbl->control(hcs, dwFlags, dwCtrlType, pvCtrlPara);
1166 else
1167 ret = TRUE;
1168 }
1169 return ret;
1170}
BOOL(* control)(struct WINE_CRYPTCERTSTORE *, DWORD, DWORD, void const *)

Referenced by testAddCertificateLink(), testCollectionStore(), testFileStore(), and testRegStore().

◆ CertCreateCertificateChainEngine()

WINCRYPT32API BOOL WINAPI CertCreateCertificateChainEngine ( PCERT_CHAIN_ENGINE_CONFIG  pConfig,
HCERTCHAINENGINE phChainEngine 
)

Definition at line 225 of file chain.c.

227{
228 BOOL ret;
229
230 TRACE("(%p, %p)\n", pConfig, phChainEngine);
231
233 && pConfig->cbSize != sizeof(CERT_CHAIN_ENGINE_CONFIG))
234 {
236 return FALSE;
237 }
239 if (!ret)
240 {
241 *phChainEngine = NULL;
242 return FALSE;
243 }
244
246 return *phChainEngine != NULL;
247}
static BOOL CRYPT_CheckRestrictedRoot(HCERTSTORE store)
Definition: chain.c:89
HCERTCHAINENGINE CRYPT_CreateChainEngine(HCERTSTORE root, DWORD system_store, const CERT_CHAIN_ENGINE_CONFIG *config)
Definition: chain.c:115
HCERTSTORE hRestrictedRoot
Definition: wincrypt.h:3786
#define CERT_SYSTEM_STORE_CURRENT_USER
Definition: wincrypt.h:2528

Referenced by CRYPTDLG_MakeEngine(), and save_pfx().

◆ CertCreateCertificateContext()

WINCRYPT32API PCCERT_CONTEXT WINAPI CertCreateCertificateContext ( DWORD  dwCertEncodingType,
const BYTE pbCertEncoded,
DWORD  cbCertEncoded 
)

Definition at line 316 of file cert.c.

318{
319 cert_t *cert = NULL;
320 BYTE *data = NULL;
321 BOOL ret;
322 PCERT_INFO certInfo = NULL;
323 DWORD size = 0;
324
325 TRACE("(%08x, %p, %d)\n", dwCertEncodingType, pbCertEncoded,
326 cbCertEncoded);
327
328 if ((dwCertEncodingType & CERT_ENCODING_TYPE_MASK) != X509_ASN_ENCODING)
329 {
331 return NULL;
332 }
333
334 ret = CryptDecodeObjectEx(dwCertEncodingType, X509_CERT_TO_BE_SIGNED,
335 pbCertEncoded, cbCertEncoded, CRYPT_DECODE_ALLOC_FLAG, NULL,
336 &certInfo, &size);
337 if (!ret)
338 return NULL;
339
341 if (!cert)
342 return NULL;
343 data = CryptMemAlloc(cbCertEncoded);
344 if (!data)
345 {
346 Context_Release(&cert->base);
347 return NULL;
348 }
349
350 memcpy(data, pbCertEncoded, cbCertEncoded);
351 cert->ctx.dwCertEncodingType = dwCertEncodingType;
352 cert->ctx.pbCertEncoded = data;
353 cert->ctx.cbCertEncoded = cbCertEncoded;
354 cert->ctx.pCertInfo = certInfo;
355 cert->ctx.hCertStore = &empty_store;
356
357 return &cert->ctx;
358}
BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo)
Definition: decode.c:6286
static const context_vtbl_t cert_vtbl
Definition: cert.c:118
context_t * Context_CreateDataContext(size_t contextSize, const context_vtbl_t *vtbl, WINECRYPT_CERTSTORE *store)
Definition: context.c:28
WINECRYPT_CERTSTORE empty_store
Definition: store.c:1564
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define CERT_ENCODING_TYPE_MASK
Definition: wincrypt.h:2494
#define X509_CERT_TO_BE_SIGNED
Definition: wincrypt.h:3518
unsigned char BYTE
Definition: xxhash.c:193

Referenced by CertAddEncodedCertificateToStore(), CertCreateContext(), CertCreateSelfSignCertificate(), CRYPT_CreateSignedCert(), msg_get_signer_callback(), rdssl_cert_read(), ShowX509EncodedCertificate(), test_CertGetNameStringA(), test_CertNameToStrA(), test_CertNameToStrW(), test_crypt_ui_wiz_import(), test_encrypt_message(), test_enveloped_msg_open(), test_getObjectUrl(), test_sign_message(), test_utils(), test_verifyRevocation(), testAcquireCertPrivateKey(), testAcquireSecurityContext(), testAddCert(), testAddCertificateLink(), testCertProperties(), testCertRegisterSystemStore(), testCertTrust(), testCreateCert(), testDupCert(), testEmptyStore(), testFindCertInCRL(), testFindCRL(), testGetCertChain(), testGetCRLFromStore(), testGetValidUsages(), testImportPublicKey(), testIsValidCRLForCert(), testKeyUsage(), testLinkCert(), testObjTrust(), testRegStoreSavedCerts(), testStoresInCollection(), testVerifyCertChainPolicy(), testVerifyCRLRevocation(), testVerifyRevocation(), and testVerifySubjectCert().

◆ CertCreateContext()

WINCRYPT32API const void *WINAPI CertCreateContext ( DWORD  dwContextType,
DWORD  dwEncodingType,
const BYTE pbEncoded,
DWORD  cbEncoded,
DWORD  dwFlags,
PCERT_CREATE_CONTEXT_PARA  pCreatePara 
)

Definition at line 3679 of file cert.c.

3682{
3683 TRACE("(0x%x, 0x%x, %p, %d, 0x%08x, %p)\n", dwContextType, dwEncodingType,
3684 pbEncoded, cbEncoded, dwFlags, pCreatePara);
3685
3686 if (dwFlags)
3687 {
3688 FIXME("dwFlags 0x%08x not handled\n", dwFlags);
3689 return NULL;
3690 }
3691 if (pCreatePara)
3692 {
3693 FIXME("pCreatePara not handled\n");
3694 return NULL;
3695 }
3696
3697 switch (dwContextType)
3698 {
3700 return CertCreateCertificateContext(dwEncodingType, pbEncoded, cbEncoded);
3702 return CertCreateCRLContext(dwEncodingType, pbEncoded, cbEncoded);
3704 return CertCreateCTLContext(dwEncodingType, pbEncoded, cbEncoded);
3705 default:
3706 WARN("unknown context type: 0x%x\n", dwContextType);
3707 return NULL;
3708 }
3709}
static LPCSTR DWORD void BYTE * pbEncoded
Definition: str.c:196

◆ CertCreateCRLContext()

WINCRYPT32API PCCRL_CONTEXT WINAPI CertCreateCRLContext ( DWORD  dwCertEncodingType,
const BYTE pbCrlEncoded,
DWORD  cbCrlEncoded 
)

Definition at line 85 of file crl.c.

87{
88 crl_t *crl = NULL;
89 BOOL ret;
90 PCRL_INFO crlInfo = NULL;
91 BYTE *data = NULL;
92 DWORD size = 0;
93
94 TRACE("(%08x, %p, %d)\n", dwCertEncodingType, pbCrlEncoded,
95 cbCrlEncoded);
96
97 if ((dwCertEncodingType & CERT_ENCODING_TYPE_MASK) != X509_ASN_ENCODING)
98 {
100 return NULL;
101 }
103 pbCrlEncoded, cbCrlEncoded, CRYPT_DECODE_ALLOC_FLAG, NULL,
104 &crlInfo, &size);
105 if (!ret)
106 return NULL;
107
109 if (!crl)
110 return NULL;
111
112 data = CryptMemAlloc(cbCrlEncoded);
113 if (!data)
114 {
115 Context_Release(&crl->base);
116 return NULL;
117 }
118
119 memcpy(data, pbCrlEncoded, cbCrlEncoded);
120 crl->ctx.dwCertEncodingType = dwCertEncodingType;
121 crl->ctx.pbCrlEncoded = data;
122 crl->ctx.cbCrlEncoded = cbCrlEncoded;
123 crl->ctx.pCrlInfo = crlInfo;
124 crl->ctx.hCertStore = &empty_store;
125
126 return &crl->ctx;
127}
static const context_vtbl_t crl_vtbl
Definition: crl.c:40
#define X509_CERT_CRL_TO_BE_SIGNED
Definition: wincrypt.h:3519

Referenced by CertAddEncodedCRLToStore(), CertCreateContext(), test_crypt_ui_wiz_import(), test_sign_message(), testAddCRL(), testCreateCRL(), testCRLProperties(), testDupCRL(), testEmptyStore(), testFindCertInCRL(), testIsValidCRLForCert(), and testVerifyCRLRevocation().

◆ CertCreateCTLContext()

WINCRYPT32API PCCTL_CONTEXT WINAPI CertCreateCTLContext ( DWORD  dwMsgAndCertEncodingType,
const BYTE pbCtlEncoded,
DWORD  cbCtlEncoded 
)

Definition at line 363 of file ctl.c.

365{
366 ctl_t *ctl = NULL;
368 BOOL ret;
369 BYTE *content = NULL;
370 DWORD contentSize = 0, size;
371 PCTL_INFO ctlInfo = NULL;
372
373 TRACE("(%08x, %p, %d)\n", dwMsgAndCertEncodingType, pbCtlEncoded,
374 cbCtlEncoded);
375
376 if (GET_CERT_ENCODING_TYPE(dwMsgAndCertEncodingType) != X509_ASN_ENCODING)
377 {
379 return NULL;
380 }
381 if (!pbCtlEncoded || !cbCtlEncoded)
382 {
384 return NULL;
385 }
387 0, NULL, NULL);
388 if (!msg)
389 return NULL;
390 ret = CryptMsgUpdate(msg, pbCtlEncoded, cbCtlEncoded, TRUE);
391 if (!ret)
392 {
394 goto end;
395 }
396 /* Check that it's really a CTL */
398 if (ret)
399 {
400 char *innerContent = CryptMemAlloc(size);
401
402 if (innerContent)
403 {
405 innerContent, &size);
406 if (ret)
407 {
408 if (strcmp(innerContent, szOID_CTL))
409 {
411 ret = FALSE;
412 }
413 }
414 CryptMemFree(innerContent);
415 }
416 else
417 {
419 ret = FALSE;
420 }
421 }
422 if (!ret)
423 goto end;
424 ret = CryptMsgGetParam(msg, CMSG_CONTENT_PARAM, 0, NULL, &contentSize);
425 if (!ret)
426 goto end;
427 content = CryptMemAlloc(contentSize);
428 if (content)
429 {
431 &contentSize);
432 if (ret)
433 {
434 ret = CryptDecodeObjectEx(dwMsgAndCertEncodingType, PKCS_CTL,
435 content, contentSize, CRYPT_DECODE_ALLOC_FLAG, NULL,
436 &ctlInfo, &size);
437 if (ret)
438 {
440 if (ctl)
441 {
442 BYTE *data = CryptMemAlloc(cbCtlEncoded);
443
444 if (data)
445 {
446 memcpy(data, pbCtlEncoded, cbCtlEncoded);
449 ctl->ctx.pbCtlEncoded = data;
450 ctl->ctx.cbCtlEncoded = cbCtlEncoded;
451 ctl->ctx.pCtlInfo = ctlInfo;
452 ctl->ctx.hCertStore = &empty_store;
453 ctl->ctx.hCryptMsg = msg;
454 ctl->ctx.pbCtlContext = content;
455 ctl->ctx.cbCtlContext = contentSize;
456 }
457 else
458 {
460 ret = FALSE;
461 }
462 }
463 else
464 {
466 ret = FALSE;
467 }
468 }
469 }
470 }
471 else
472 {
474 ret = FALSE;
475 }
476
477end:
478 if (!ret)
479 {
480 if(ctl)
481 Context_Release(&ctl->base);
482 ctl = NULL;
483 LocalFree(ctlInfo);
486 return NULL;
487 }
488 return &ctl->ctx;
489}
#define msg(x)
Definition: auth_time.c:54
#define ERROR_OUTOFMEMORY
Definition: deptool.c:13
content
Definition: atl_ax.c:994
static const context_vtbl_t ctl_vtbl
Definition: ctl.c:58
HCRYPTMSG WINAPI CryptMsgOpenToDecode(DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, HCRYPTPROV_LEGACY hCryptProv, PCERT_INFO pRecipientInfo, PCMSG_STREAM_INFO pStreamInfo)
Definition: msg.c:3552
BOOL WINAPI CryptMsgGetParam(HCRYPTMSG hCryptMsg, DWORD dwParamType, DWORD dwIndex, void *pvData, DWORD *pcbData)
Definition: msg.c:3626
BOOL WINAPI CryptMsgUpdate(HCRYPTMSG hCryptMsg, const BYTE *pbData, DWORD cbData, BOOL fFinal)
Definition: msg.c:3616
BOOL WINAPI CryptMsgClose(HCRYPTMSG hCryptMsg)
Definition: msg.c:3597
GLuint GLuint end
Definition: gl.h:1545
DWORD cbCtlEncoded
Definition: wincrypt.h:858
BYTE * pbCtlEncoded
Definition: wincrypt.h:857
HCRYPTMSG hCryptMsg
Definition: wincrypt.h:861
DWORD dwMsgAndCertEncodingType
Definition: wincrypt.h:856
HCERTSTORE hCertStore
Definition: wincrypt.h:860
BYTE * pbCtlContext
Definition: wincrypt.h:862
DWORD cbCtlContext
Definition: wincrypt.h:863
context_t base
CTL_CONTEXT ctx
#define CMSG_INNER_CONTENT_TYPE_PARAM
Definition: wincrypt.h:4093
#define szOID_CTL
Definition: wincrypt.h:3401
#define PKCS_7_ASN_ENCODING
Definition: wincrypt.h:2503
#define PKCS_CTL
Definition: wincrypt.h:3556
#define CMSG_CONTENT_PARAM
Definition: wincrypt.h:4091
#define ERROR_INVALID_DATA
Definition: winerror.h:239

Referenced by CertAddEncodedCTLToStore(), CertCreateContext(), testCreateCTL(), testCTLProperties(), testDupCTL(), and testEmptyStore().

◆ CertCreateSelfSignCertificate()

WINCRYPT32API PCCERT_CONTEXT WINAPI CertCreateSelfSignCertificate ( HCRYPTPROV_OR_NCRYPT_KEY_HANDLE  hProv,
PCERT_NAME_BLOB  pSubjectIssuerBlob,
DWORD  dwFlags,
PCRYPT_KEY_PROV_INFO  pKeyProvInfo,
PCRYPT_ALGORITHM_IDENTIFIER  pSignatureAlgorithm,
PSYSTEMTIME  pStartTime,
PSYSTEMTIME  pEndTime,
PCERT_EXTENSIONS  pExtensions 
)

Definition at line 3552 of file cert.c.

3557{
3559 BOOL ret, releaseContext = FALSE;
3561 DWORD pubKeySize = 0, dwKeySpec;
3562
3563 TRACE("(%08lx, %p, %08x, %p, %p, %p, %p, %p)\n", hProv,
3564 pSubjectIssuerBlob, dwFlags, pKeyProvInfo, pSignatureAlgorithm, pStartTime,
3565 pExtensions, pExtensions);
3566
3567 if(!pSubjectIssuerBlob)
3568 {
3570 return NULL;
3571 }
3572
3573 dwKeySpec = pKeyProvInfo ? pKeyProvInfo->dwKeySpec : AT_SIGNATURE;
3574 if (!hProv)
3575 {
3576 if (!pKeyProvInfo)
3577 {
3579 releaseContext = TRUE;
3580 }
3581 else if (pKeyProvInfo->dwFlags & CERT_SET_KEY_PROV_HANDLE_PROP_ID)
3582 {
3584 return NULL;
3585 }
3586 else
3587 {
3588 HCRYPTKEY hKey = 0;
3589 /* acquire the context using the given information*/
3591 pKeyProvInfo->pwszProvName,pKeyProvInfo->dwProvType,
3592 pKeyProvInfo->dwFlags);
3593 if (!ret)
3594 {
3596 return NULL;
3597 /* create the key set */
3599 pKeyProvInfo->pwszProvName,pKeyProvInfo->dwProvType,
3600 pKeyProvInfo->dwFlags|CRYPT_NEWKEYSET);
3601 if (!ret)
3602 return NULL;
3603 }
3604 /* check if the key is here */
3605 ret = CryptGetUserKey(hProv,dwKeySpec,&hKey);
3606 if(!ret)
3607 {
3608 if (NTE_NO_KEY == GetLastError())
3609 { /* generate the key */
3610 ret = CryptGenKey(hProv,dwKeySpec,0,&hKey);
3611 }
3612 if (!ret)
3613 {
3616 return NULL;
3617 }
3618 }
3620 releaseContext = TRUE;
3621 }
3622 }
3623
3625 &pubKeySize);
3626 if (!ret)
3627 goto end;
3628 pubKey = CryptMemAlloc(pubKeySize);
3629 if (pubKey)
3630 {
3632 pubKey, &pubKeySize);
3633 if (ret)
3634 {
3635 CERT_INFO info = { 0 };
3636 CRYPT_DER_BLOB blob = { 0, NULL };
3637 BYTE serial[16];
3638 CRYPT_DATA_BLOB serialBlob = { sizeof(serial), serial };
3639
3640 CryptGenRandom(hProv, sizeof(serial), serial);
3641 CRYPT_MakeCertInfo(&info, &serialBlob, pSubjectIssuerBlob,
3642 pSignatureAlgorithm, pStartTime, pEndTime, pubKey, pExtensions);
3645 &blob.cbData);
3646 if (ret)
3647 {
3650 &info.SignatureAlgorithm);
3651 else
3653 blob.pbData, blob.cbData);
3656 LocalFree(blob.pbData);
3657 }
3658 }
3660 }
3661end:
3662 if (releaseContext)
3664 return context;
3665}
BOOL WINAPI CryptGenRandom(HCRYPTPROV hProv, DWORD dwLen, BYTE *pbBuffer)
Definition: crypt.c:700
BOOL WINAPI CryptDestroyKey(HCRYPTKEY hKey)
Definition: crypt.c:930
BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags)
Definition: crypt.c:648
BOOL WINAPI CryptGenKey(HCRYPTPROV hProv, ALG_ID Algid, DWORD dwFlags, HCRYPTKEY *phKey)
Definition: crypt.c:1451
BOOL WINAPI CryptGetUserKey(HCRYPTPROV hProv, DWORD dwKeySpec, HCRYPTKEY *phUserKey)
Definition: crypt.c:1718
BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR pszContainer, LPCWSTR pszProvider, DWORD dwProvType, DWORD dwFlags)
Definition: crypt.c:358
static HCRYPTPROV CRYPT_CreateKeyProv(void)
Definition: cert.c:3506
static void CertContext_SetKeyProvInfo(PCCERT_CONTEXT context, const CRYPT_KEY_PROV_INFO *pInfo, HCRYPTPROV hProv)
Definition: cert.c:3304
static void CRYPT_MakeCertInfo(PCERT_INFO info, const CRYPT_DATA_BLOB *pSerialNumber, const CERT_NAME_BLOB *pSubjectIssuerBlob, const CRYPT_ALGORITHM_IDENTIFIER *pSignatureAlgorithm, const SYSTEMTIME *pStartTime, const SYSTEMTIME *pEndTime, const CERT_PUBLIC_KEY_INFO *pubKey, const CERT_EXTENSIONS *pExtensions)
Definition: cert.c:3442
static PCCERT_CONTEXT CRYPT_CreateSignedCert(const CRYPT_DER_BLOB *blob, HCRYPTPROV hProv, DWORD dwKeySpec, PCRYPT_ALGORITHM_IDENTIFIER sigAlgo)
Definition: cert.c:3388
BOOL WINAPI CryptEncodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, const void *pvStructInfo, DWORD dwFlags, PCRYPT_ENCODE_PARA pEncodePara, void *pvEncoded, DWORD *pcbEncoded)
Definition: encode.c:4696
BOOL WINAPI CryptExportPublicKeyInfo(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo)
Definition: encode.c:4775
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
uint32_t serial
Definition: fsck.fat.h:29
FxAutoRegKey hKey
static BYTE pubKey[]
Definition: msg.c:1214
static HCRYPTPROV hProv
Definition: rsaenh.c:32
LPWSTR pwszContainerName
Definition: wincrypt.h:218
Definition: image.c:134
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define CERT_SET_KEY_PROV_HANDLE_PROP_ID
Definition: wincrypt.h:3754
#define CRYPT_NEWKEYSET
Definition: wincrypt.h:2274
#define CERT_CREATE_SELFSIGN_NO_KEY_INFO
Definition: wincrypt.h:3758
#define CERT_CREATE_SELFSIGN_NO_SIGN
Definition: wincrypt.h:3757
#define CRYPT_ENCODE_ALLOC_FLAG
Definition: wincrypt.h:3599
#define AT_SIGNATURE
Definition: wincrypt.h:2240
ULONG_PTR HCRYPTKEY
Definition: wincrypt.h:58
#define NTE_NO_KEY
Definition: winerror.h:4261
#define NTE_BAD_KEYSET
Definition: winerror.h:4270
#define NTE_BAD_FLAGS
Definition: winerror.h:4257

Referenced by init_function_pointers(), and testGetIssuerCert().

◆ CertDeleteCertificateFromStore()

WINCRYPT32API BOOL WINAPI CertDeleteCertificateFromStore ( PCCERT_CONTEXT  pCertContext)

Definition at line 943 of file store.c.

944{
946
947 TRACE("(%p)\n", pCertContext);
948
949 if (!pCertContext)
950 return TRUE;
951
952 hcs = pCertContext->hCertStore;
953
955 return FALSE;
956
957 return hcs->vtbl->certs.delete(hcs, &cert_from_ptr(pCertContext)->base);
958}
static cert_t * cert_from_ptr(const CERT_CONTEXT *ptr)
HCERTSTORE hCertStore
Definition: wincrypt.h:492
BOOL(* delete)(struct WINE_CRYPTCERTSTORE *, context_t *)
CONTEXT_FUNCS certs

Referenced by cert_mgr_do_remove(), Collection_deleteCert(), find_and_delete_cert_in_store(), test_I_UpdateStore(), testAddCert(), testAddCertificateLink(), testAddSerialized(), testCertRegisterSystemStore(), testCollectionStore(), testEmptyStore(), testMemStore(), testRegStore(), and testRegStoreSavedCerts().

◆ CertDeleteCRLFromStore()

WINCRYPT32API BOOL WINAPI CertDeleteCRLFromStore ( PCCRL_CONTEXT  pCrlContext)

Definition at line 1080 of file store.c.

1081{
1083 BOOL ret;
1084
1085 TRACE("(%p)\n", pCrlContext);
1086
1087 if (!pCrlContext)
1088 return TRUE;
1089
1090 hcs = pCrlContext->hCertStore;
1091
1093 return FALSE;
1094
1095 ret = hcs->vtbl->crls.delete(hcs, &crl_from_ptr(pCrlContext)->base);
1096 if (ret)
1097 ret = CertFreeCRLContext(pCrlContext);
1098 return ret;
1099}
static crl_t * crl_from_ptr(const CRL_CONTEXT *ptr)
HCERTSTORE hCertStore
Definition: wincrypt.h:735

Referenced by Collection_deleteCRL().

◆ CertDeleteCTLFromStore()

WINCRYPT32API BOOL WINAPI CertDeleteCTLFromStore ( PCCTL_CONTEXT  pCtlContext)

Definition at line 341 of file ctl.c.

342{
344 ctl_t *ctl = ctl_from_ptr(pCtlContext);
345 BOOL ret;
346
347 TRACE("(%p)\n", pCtlContext);
348
349 if (!pCtlContext)
350 return TRUE;
351
352 hcs = pCtlContext->hCertStore;
353
355 return FALSE;
356
357 ret = hcs->vtbl->ctls.delete(hcs, &ctl->base);
358 if (ret)
359 ret = CertFreeCTLContext(pCtlContext);
360 return ret;
361}
static ctl_t * ctl_from_ptr(const CTL_CONTEXT *ptr)

Referenced by Collection_deleteCTL().

◆ CertDuplicateCertificateChain()

WINCRYPT32API PCCERT_CHAIN_CONTEXT WINAPI CertDuplicateCertificateChain ( PCCERT_CHAIN_CONTEXT  pChainContext)

Definition at line 2948 of file chain.c.

2950{
2951 CertificateChain *chain = (CertificateChain*)pChainContext;
2952
2953 TRACE("(%p)\n", pChainContext);
2954
2955 if (chain)
2957 return pChainContext;
2958}
struct sock * chain
Definition: tcpcore.h:1

Referenced by CRYPTDLG_CopyChain(), and InternetGetSecurityInfoByURLW().

◆ CertDuplicateCertificateContext()

WINCRYPT32API PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext ( PCCERT_CONTEXT  pCertContext)

◆ CertDuplicateCRLContext()

WINCRYPT32API PCCRL_CONTEXT WINAPI CertDuplicateCRLContext ( PCCRL_CONTEXT  pCrlContext)

Definition at line 378 of file crl.c.

379{
380 TRACE("(%p)\n", pCrlContext);
381 if (pCrlContext)
382 Context_AddRef(&crl_from_ptr(pCrlContext)->base);
383 return pCrlContext;
384}

Referenced by CertAddCRLContextToStore(), and testDupCRL().

◆ CertDuplicateCTLContext()

WINCRYPT32API PCCTL_CONTEXT WINAPI CertDuplicateCTLContext ( PCCTL_CONTEXT  pCtlContext)

Definition at line 491 of file ctl.c.

492{
493 TRACE("(%p)\n", pCtlContext);
494 if (pCtlContext)
495 Context_AddRef(&ctl_from_ptr(pCtlContext)->base);
496 return pCtlContext;
497}

Referenced by CertAddCTLContextToStore(), and testDupCTL().

◆ CertDuplicateStore()

WINCRYPT32API HCERTSTORE WINAPI CertDuplicateStore ( HCERTSTORE  hCertStore)

Definition at line 1116 of file store.c.

1117{
1118 WINECRYPT_CERTSTORE *hcs = hCertStore;
1119
1120 TRACE("(%p)\n", hCertStore);
1121
1122 if (hcs && hcs->dwMagic == WINE_CRYPTCERTSTORE_MAGIC)
1123 hcs->vtbl->addref(hcs);
1124 return hCertStore;
1125}
void(* addref)(struct WINE_CRYPTCERTSTORE *)

Referenced by check_and_store_certs(), CRYPT_CopyChainToElement(), CRYPT_CreateChainEngine(), CRYPT_QueryContextObject(), CRYPT_QuerySerializedContextObject(), CRYPT_QuerySerializedStoreFromBlob(), CRYPT_QuerySerializedStoreFromFile(), testCloseStore(), and WINTRUST_AddStore().

◆ CertEnumCertificateContextProperties()

WINCRYPT32API DWORD WINAPI CertEnumCertificateContextProperties ( PCCERT_CONTEXT  pCertContext,
DWORD  dwPropId 
)

Definition at line 380 of file cert.c.

382{
383 cert_t *cert = cert_from_ptr(pCertContext);
384 DWORD ret;
385
386 TRACE("(%p, %d)\n", pCertContext, dwPropId);
387
388 if (cert->base.properties)
389 ret = ContextPropertyList_EnumPropIDs(cert->base.properties, dwPropId);
390 else
391 ret = 0;
392 return ret;
393}
DWORD ContextPropertyList_EnumPropIDs(CONTEXT_PROPERTY_LIST *list, DWORD id) DECLSPEC_HIDDEN
Definition: proplist.c:170

Referenced by testCertProperties().

◆ CertEnumCertificatesInStore()

◆ CertEnumCRLContextProperties()

WINCRYPT32API DWORD WINAPI CertEnumCRLContextProperties ( PCCRL_CONTEXT  pCRLContext,
DWORD  dwPropId 
)

Definition at line 395 of file crl.c.

397{
398 TRACE("(%p, %d)\n", pCRLContext, dwPropId);
399
400 return ContextPropertyList_EnumPropIDs(crl_from_ptr(pCRLContext)->base.properties, dwPropId);
401}

Referenced by testCRLProperties().

◆ CertEnumCRLsInStore()

WINCRYPT32API PCCRL_CONTEXT WINAPI CertEnumCRLsInStore ( HCERTSTORE  hCertStore,
PCCRL_CONTEXT  pPrev 
)

Definition at line 1101 of file store.c.

1102{
1103 crl_t *ret, *prev = pPrev ? crl_from_ptr(pPrev) : NULL;
1104 WINECRYPT_CERTSTORE *hcs = hCertStore;
1105
1106 TRACE("(%p, %p)\n", hCertStore, pPrev);
1107 if (!hCertStore)
1108 ret = NULL;
1109 else if (hcs->dwMagic != WINE_CRYPTCERTSTORE_MAGIC)
1110 ret = NULL;
1111 else
1112 ret = (crl_t*)hcs->vtbl->crls.enumContext(hcs, prev ? &prev->base : NULL);
1113 return ret ? &ret->ctx : NULL;
1114}
context_t base

Referenced by CertFindCRLInStore(), check_store_context_type(), countCRLsInStore(), CRYPT_SavePKCSToMem(), import_store(), test_crypt_ui_wiz_import(), testFileNameStore(), testMessageStore(), and testSerializedStore().

◆ CertEnumCTLContextProperties()

WINCRYPT32API DWORD WINAPI CertEnumCTLContextProperties ( PCCTL_CONTEXT  pCTLContext,
DWORD  dwPropId 
)

Definition at line 508 of file ctl.c.

510{
511 ctl_t *ctl = ctl_from_ptr(pCTLContext);
512 DWORD ret;
513
514 TRACE("(%p, %d)\n", pCTLContext, dwPropId);
515
516 if (ctl->base.properties)
518 else
519 ret = 0;
520 return ret;
521}
CONTEXT_PROPERTY_LIST * properties

Referenced by testCTLProperties().

◆ CertEnumCTLsInStore()

WINCRYPT32API PCCTL_CONTEXT WINAPI CertEnumCTLsInStore ( HCERTSTORE  hCertStore,
PCCTL_CONTEXT  pPrev 
)

Definition at line 200 of file ctl.c.

201{
202 ctl_t *prev = pPrev ? ctl_from_ptr(pPrev) : NULL, *ret;
203 WINECRYPT_CERTSTORE *hcs = hCertStore;
204
205 TRACE("(%p, %p)\n", hCertStore, pPrev);
206 if (!hCertStore)
207 ret = NULL;
208 else if (hcs->dwMagic != WINE_CRYPTCERTSTORE_MAGIC)
209 ret = NULL;
210 else
211 ret = (ctl_t*)hcs->vtbl->ctls.enumContext(hcs, prev ? &prev->base : NULL);
212 return ret ? &ret->ctx : NULL;
213}

Referenced by CertFindCTLInStore(), check_store_context_type(), import_store(), and testAddCTLToStore().

◆ CertEnumPhysicalStore()

WINCRYPT32API BOOL WINAPI CertEnumPhysicalStore ( const void pvSystemStore,
DWORD  dwFlags,
void pvArg,
PFN_CERT_ENUM_PHYSICAL_STORE  pfnEnum 
)

Definition at line 1416 of file store.c.

1418{
1420 FIXME("(%p, %08x, %p, %p): stub\n", pvSystemStore, dwFlags, pvArg,
1421 pfnEnum);
1422 else
1423 FIXME("(%s, %08x, %p, %p): stub\n", debugstr_w(pvSystemStore),
1424 dwFlags, pvArg,
1425 pfnEnum);
1426 return FALSE;
1427}
#define CERT_SYSTEM_STORE_RELOCATE_FLAG
Definition: wincrypt.h:2787

◆ CertEnumSubjectInSortedCTL()

WINCRYPT32API BOOL WINAPI CertEnumSubjectInSortedCTL ( PCCTL_CONTEXT  pCTLContext,
void **  ppvNextSubject,
PCRYPT_DER_BLOB  pSubjectIdentifier,
PCRYPT_DER_BLOB  pEncodedAttributes 
)

◆ CertEnumSystemStore()

WINCRYPT32API BOOL WINAPI CertEnumSystemStore ( DWORD  dwFlags,
void pvSystemStoreLocationPara,
void pvArg,
PFN_CERT_ENUM_SYSTEM_STORE  pfnEnum 
)

Definition at line 1321 of file store.c.

1323{
1324 BOOL ret = FALSE;
1325 LONG rc;
1326 HKEY key;
1327 CERT_SYSTEM_STORE_INFO info = { sizeof(info) };
1328
1329 TRACE("(%08x, %p, %p, %p)\n", dwFlags, pvSystemStoreLocationPara, pvArg,
1330 pfnEnum);
1331
1332 rc = CRYPT_OpenParentStore(dwFlags, pvArg, &key);
1333 if (!rc)
1334 {
1335 DWORD index = 0;
1336
1337 ret = TRUE;
1338 do {
1341
1342 rc = RegEnumKeyExW(key, index++, name, &size, NULL, NULL, NULL,
1343 NULL);
1344 if (!rc)
1345 ret = pfnEnum(name, dwFlags, &info, NULL, pvArg);
1346 } while (ret && !rc);
1347 if (ret && rc != ERROR_NO_MORE_ITEMS)
1348 SetLastError(rc);
1349 }
1350 else
1351 SetLastError(rc);
1352 /* Include root store for the local machine location (it isn't in the
1353 * registry)
1354 */
1357 ret = pfnEnum(rootW, dwFlags, &info, NULL, pvArg);
1358 return ret;
1359}
#define ARRAY_SIZE(A)
Definition: main.h:20
LONG WINAPI RegEnumKeyExW(_In_ HKEY hKey, _In_ DWORD dwIndex, _Out_ LPWSTR lpName, _Inout_ LPDWORD lpcbName, _Reserved_ LPDWORD lpReserved, _Out_opt_ LPWSTR lpClass, _Inout_opt_ LPDWORD lpcbClass, _Out_opt_ PFILETIME lpftLastWriteTime)
Definition: reg.c:2504
static const WCHAR rootW[]
Definition: store.c:407
static LONG CRYPT_OpenParentStore(DWORD dwFlags, void *pvSystemStoreLocationPara, HKEY *key)
Definition: store.c:1268
#define ERROR_NO_MORE_ITEMS
Definition: compat.h:105
#define MAX_PATH
Definition: compat.h:34
GLuint index
Definition: glext.h:6031
Definition: copy.c:22
Definition: name.c:39
#define CERT_SYSTEM_STORE_LOCATION_MASK
Definition: wincrypt.h:2507
#define CERT_SYSTEM_STORE_LOCAL_MACHINE
Definition: wincrypt.h:2530
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by enumerate_stores(), and testCertEnumSystemStore().

◆ CertEnumSystemStoreLocation()

WINCRYPT32API BOOL WINAPI CertEnumSystemStoreLocation ( DWORD  dwFlags,
void pvArg,
PFN_CERT_ENUM_SYSTEM_STORE_LOCATION  pfnEnum 
)

Referenced by START_TEST().

◆ CertFindAttribute()

WINCRYPT32API PCRYPT_ATTRIBUTE WINAPI CertFindAttribute ( LPCSTR  pszObjId,
DWORD  cAttr,
CRYPT_ATTRIBUTE  rgAttr[] 
)

Definition at line 2006 of file cert.c.

2008{
2010 DWORD i;
2011
2012 TRACE("%s %d %p\n", debugstr_a(pszObjId), cAttr, rgAttr);
2013
2014 if (!cAttr)
2015 return NULL;
2016 if (!pszObjId)
2017 {
2019 return NULL;
2020 }
2021
2022 for (i = 0; !ret && i < cAttr; i++)
2023 if (rgAttr[i].pszObjId && !strcmp(pszObjId, rgAttr[i].pszObjId))
2024 ret = &rgAttr[i];
2025 return ret;
2026}

Referenced by test_findAttribute().

◆ CertFindCertificateInCRL()

WINCRYPT32API BOOL WINAPI CertFindCertificateInCRL ( PCCERT_CONTEXT  pCert,
PCCRL_CONTEXT  pCrlContext,
DWORD  dwFlags,
void pvReserved,
PCRL_ENTRY ppCrlEntry 
)

Definition at line 750 of file crl.c.

753{
754 TRACE("(%p, %p, %08x, %p, %p)\n", pCert, pCrlContext, dwFlags, pvReserved,
755 ppCrlEntry);
756
757 *ppCrlEntry = CRYPT_FindCertificateInCRL(pCert->pCertInfo,
758 pCrlContext->pCrlInfo);
759 return TRUE;
760}
static PCRL_ENTRY CRYPT_FindCertificateInCRL(PCERT_INFO cert, const CRL_INFO *crl)
Definition: crl.c:738
static LPCSTR DWORD void * pvReserved
Definition: str.c:196
PCERT_INFO pCertInfo
Definition: wincrypt.h:491

Referenced by verify_cert_revocation_with_crl_offline(), and verify_cert_revocation_with_crl_online().

◆ CertFindCertificateInStore()

WINCRYPT32API PCCERT_CONTEXT WINAPI CertFindCertificateInStore ( HCERTSTORE  hCertStore,
DWORD  dwCertEncodingType,
DWORD  dwFindFlags,
DWORD  dwFindType,
const void pvFindPara,
PCCERT_CONTEXT  pPrevCertContext 
)

Definition at line 1765 of file cert.c.

1768{
1772
1773 TRACE("(%p, %08x, %08x, %08x, %p, %p)\n", hCertStore, dwCertEncodingType,
1774 dwFlags, dwType, pvPara, pPrevCertContext);
1775
1776 switch (dwType >> CERT_COMPARE_SHIFT)
1777 {
1778 case CERT_COMPARE_ANY:
1780 break;
1783 break;
1786 break;
1787 case CERT_COMPARE_NAME:
1789 break;
1792 break;
1795 break;
1798 break;
1801 break;
1804 break;
1807 break;
1810 break;
1813 break;
1814 default:
1815 FIXME("find type %08x unimplemented\n", dwType);
1816 }
1817
1818 if (find)
1819 ret = find(hCertStore, dwType, dwFlags, pvPara, pPrevCertContext);
1820 else if (compare)
1821 ret = cert_compare_certs_in_store(hCertStore, pPrevCertContext,
1822 compare, dwType, dwFlags, pvPara);
1823 else
1824 ret = NULL;
1825 if (!ret)
1827 TRACE("returning %p\n", ret);
1828 return ret;
1829}
static TAGID TAGID find
Definition: db.cpp:155
static BOOL compare_existing_cert(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1510
static PCCERT_CONTEXT find_cert_by_name_str_w(HCERTSTORE store, DWORD dwType, DWORD dwFlags, const void *pvPara, PCCERT_CONTEXT prev)
Definition: cert.c:1735
static PCCERT_CONTEXT find_cert_by_name_str_a(HCERTSTORE store, DWORD dwType, DWORD dwFlags, const void *pvPara, PCCERT_CONTEXT prev)
Definition: cert.c:1706
static BOOL compare_cert_by_sha1_hash(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1388
static BOOL compare_cert_by_md5_hash(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1367
static PCCERT_CONTEXT find_cert_any(HCERTSTORE store, DWORD dwType, DWORD dwFlags, const void *pvPara, PCCERT_CONTEXT prev)
Definition: cert.c:1565
static PCCERT_CONTEXT find_cert_by_issuer(HCERTSTORE store, DWORD dwType, DWORD dwFlags, const void *pvPara, PCCERT_CONTEXT prev)
Definition: cert.c:1571
static PCCERT_CONTEXT cert_compare_certs_in_store(HCERTSTORE store, PCCERT_CONTEXT prev, CertCompareFunc compare, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1546
static BOOL compare_cert_by_name(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1409
BOOL(* CertCompareFunc)(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1364
static BOOL compare_cert_by_signature_hash(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1518
static BOOL compare_cert_by_cert_id(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1460
static BOOL compare_cert_by_subject_cert(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1435
static BOOL compare_cert_by_public_key(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1424
PCCERT_CONTEXT(* CertFindFunc)(HCERTSTORE store, DWORD dwType, DWORD dwFlags, const void *pvPara, PCCERT_CONTEXT prev)
Definition: cert.c:1562
Definition: bug.cpp:8
#define CERT_COMPARE_MD5_HASH
Definition: wincrypt.h:2992
#define CERT_COMPARE_NAME_STR_W
Definition: wincrypt.h:2996
#define CERT_COMPARE_ISSUER_OF
Definition: wincrypt.h:3001
#define CERT_COMPARE_PUBLIC_KEY
Definition: wincrypt.h:2994
#define CERT_COMPARE_SUBJECT_CERT
Definition: wincrypt.h:3000
#define CERT_COMPARE_CERT_ID
Definition: wincrypt.h:3005
#define CERT_COMPARE_ANY
Definition: wincrypt.h:2987
#define CERT_COMPARE_NAME_STR_A
Definition: wincrypt.h:2995
#define CERT_COMPARE_NAME
Definition: wincrypt.h:2990
#define CERT_COMPARE_SHIFT
Definition: wincrypt.h:2986
#define CERT_COMPARE_SHA1_HASH
Definition: wincrypt.h:2988
#define CERT_COMPARE_SIGNATURE_HASH
Definition: wincrypt.h:3003
#define CERT_COMPARE_EXISTING
Definition: wincrypt.h:3002
#define CRYPT_E_NOT_FOUND
Definition: winerror.h:4422

Referenced by add_cert_to_store(), CertGetIssuerCertificateFromStore(), CertGetSubjectCertificateFromStore(), CRYPT_CheckBasicConstraintsForCA(), CRYPT_DefaultGetSignerCertificate(), CRYPT_FindCertInStore(), CRYPT_FindIssuer(), CRYPTDLG_IsCertAllowed(), CryptMsgGetAndVerifySigner(), find_and_delete_cert_in_store(), SoftpubAuthenticode(), testFindCert(), and testRegStoreSavedCerts().

◆ CertFindChainInStore()

WINCRYPT32API PCCERT_CHAIN_CONTEXT WINAPI CertFindChainInStore ( HCERTSTORE  hCertStore,
DWORD  dwCertEncodingType,
DWORD  dwFindFlags,
DWORD  dwFindType,
const void pvFindPara,
PCCERT_CHAIN_CONTEXT  pPrevChainContext 
)

Definition at line 2973 of file chain.c.

2976{
2977 FIXME("(%p, %08x, %08x, %d, %p, %p): stub\n", store, certEncodingType,
2978 findFlags, findType, findPara, prevChainContext);
2979 return NULL;
2980}

◆ CertFindCRLInStore()

WINCRYPT32API PCCRL_CONTEXT WINAPI CertFindCRLInStore ( HCERTSTORE  hCertStore,
DWORD  dwCertEncodingType,
DWORD  dwFindFlags,
DWORD  dwFindType,
const void pvFindPara,
PCCRL_CONTEXT  pPrevCrlContext 
)

Definition at line 287 of file crl.c.

290{
293
294 TRACE("(%p, %d, %d, %d, %p, %p)\n", hCertStore, dwCertEncodingType,
295 dwFindFlags, dwFindType, pvFindPara, pPrevCrlContext);
296
297 switch (dwFindType)
298 {
299 case CRL_FIND_ANY:
301 break;
304 break;
307 break;
310 break;
311 default:
312 FIXME("find type %08x unimplemented\n", dwFindType);
313 compare = NULL;
314 }
315
316 if (compare)
317 {
319
320 ret = pPrevCrlContext;
321 do {
322 ret = CertEnumCRLsInStore(hCertStore, ret);
323 if (ret)
324 matches = compare(ret, dwFindType, dwFindFlags, pvFindPara);
325 } while (ret != NULL && !matches);
326 if (!ret)
328 }
329 else
330 {
332 ret = NULL;
333 }
334 return ret;
335}
#define compare
static BOOL compare_crl_issued_by(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: crl.c:160
BOOL(* CrlCompareFunc)(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: crl.c:151
static BOOL compare_crl_issued_for(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: crl.c:276
static BOOL compare_crl_any(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: crl.c:154
static BOOL compare_crl_existing(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: crl.c:259
PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pPrev)
Definition: store.c:1101
#define matches(FN)
Definition: match.h:70
#define CRL_FIND_ANY
Definition: wincrypt.h:3074
#define CRL_FIND_ISSUED_FOR
Definition: wincrypt.h:3077
#define CRL_FIND_ISSUED_BY
Definition: wincrypt.h:3075

Referenced by CertAddCRLContextToStore(), CertGetCRLFromStore(), and verify_cert_revocation().

◆ CertFindCTLInStore()

WINCRYPT32API PCCTL_CONTEXT WINAPI CertFindCTLInStore ( HCERTSTORE  hCertStore,
DWORD  dwCertEncodingType,
DWORD  dwFindFlags,
DWORD  dwFindType,
const void pvFindPara,
PCCTL_CONTEXT  pPrevCtlContext 
)

Definition at line 291 of file ctl.c.

294{
297
298 TRACE("(%p, %d, %d, %d, %p, %p)\n", hCertStore, dwCertEncodingType,
299 dwFindFlags, dwFindType, pvFindPara, pPrevCtlContext);
300
301 switch (dwFindType)
302 {
303 case CTL_FIND_ANY:
305 break;
308 break;
311 break;
314 break;
315 default:
316 FIXME("find type %08x unimplemented\n", dwFindType);
317 compare = NULL;
318 }
319
320 if (compare)
321 {
323
324 ret = pPrevCtlContext;
325 do {
326 ret = CertEnumCTLsInStore(hCertStore, ret);
327 if (ret)
328 matches = compare(ret, dwFindType, dwFindFlags, pvFindPara);
329 } while (ret != NULL && !matches);
330 if (!ret)
332 }
333 else
334 {
336 ret = NULL;
337 }
338 return ret;
339}
PCCTL_CONTEXT WINAPI CertEnumCTLsInStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pPrev)
Definition: ctl.c:200
static BOOL compare_ctl_existing(PCCTL_CONTEXT pCtlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: ctl.c:266
static BOOL compare_ctl_by_md5_hash(PCCTL_CONTEXT pCtlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: ctl.c:224
static BOOL compare_ctl_by_sha1_hash(PCCTL_CONTEXT pCtlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: ctl.c:245
static BOOL compare_ctl_any(PCCTL_CONTEXT pCtlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: ctl.c:218
BOOL(* CtlCompareFunc)(PCCTL_CONTEXT pCtlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: ctl.c:215
#define CTL_FIND_SHA1_HASH
Definition: wincrypt.h:3091
#define CTL_FIND_ANY
Definition: wincrypt.h:3090
#define CTL_FIND_MD5_HASH
Definition: wincrypt.h:3092

Referenced by CertAddCTLContextToStore().

◆ CertFindExtension()

WINCRYPT32API PCERT_EXTENSION WINAPI CertFindExtension ( LPCSTR  pszObjId,
DWORD  cExtensions,
CERT_EXTENSION  rgExtensions[] 
)

◆ CertFindRDNAttr()

WINCRYPT32API PCERT_RDN_ATTR WINAPI CertFindRDNAttr ( LPCSTR  pszObjId,
PCERT_NAME_INFO  pName 
)

Definition at line 2051 of file cert.c.

2052{
2054 DWORD i, j;
2055
2056 TRACE("%s %p\n", debugstr_a(pszObjId), pName);
2057
2058 if (!pszObjId)
2059 {
2061 return NULL;
2062 }
2063
2064 for (i = 0; !ret && i < pName->cRDN; i++)
2065 for (j = 0; !ret && j < pName->rgRDN[i].cRDNAttr; j++)
2066 if (pName->rgRDN[i].rgRDNAttr[j].pszObjId && !strcmp(pszObjId,
2067 pName->rgRDN[i].rgRDNAttr[j].pszObjId))
2068 ret = &pName->rgRDN[i].rgRDNAttr[j];
2069 return ret;
2070}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250
static LPSTR pName
Definition: security.c:75

Referenced by cert_get_name_from_rdn_attr(), CertGetNameStringW(), get_cert_common_name(), match_dns_to_subject_dn(), and test_findRDNAttr().

◆ CertFindSubjectInSortedCTL()

WINCRYPT32API BOOL WINAPI CertFindSubjectInSortedCTL ( PCRYPT_DATA_BLOB  pSubjectIdentifier,
PCCTL_CONTEXT  pCtlContext,
DWORD  dwFlags,
void pvReserved,
PCRYPT_DER_BLOB  pEncodedAttributes 
)

◆ CertFreeCertificateChain()

WINCRYPT32API VOID WINAPI CertFreeCertificateChain ( PCCERT_CHAIN_CONTEXT  pChainContext)

Definition at line 2960 of file chain.c.

2961{
2962 CertificateChain *chain = (CertificateChain*)pChainContext;
2963
2964 TRACE("(%p)\n", pChainContext);
2965
2966 if (chain)
2967 {
2968 if (InterlockedDecrement(&chain->ref) == 0)
2970 }
2971}
#define InterlockedDecrement
Definition: armddk.h:52
static void CRYPT_FreeChainContext(CertificateChain *chain)
Definition: chain.c:2362

Referenced by _test_security_info(), CertGetCertificateChain(), CertTrustFinalPolicy(), check_and_store_certs(), CRYPT_FreeLowerQualityChains(), InitFunctionPtrs(), netconn_verify_cert(), save_cert_as_cms(), save_pfx(), server_release(), and SoftpubCleanup().

◆ CertFreeCertificateChainEngine()

WINCRYPT32API VOID WINAPI CertFreeCertificateChainEngine ( HCERTCHAINENGINE  hChainEngine)

Definition at line 249 of file chain.c.

250{
251 TRACE("(%p)\n", hChainEngine);
253}
static CertificateChainEngine * get_chain_engine(HCERTCHAINENGINE handle, BOOL allow_default)
Definition: chain.c:166
static void free_chain_engine(CertificateChainEngine *engine)
Definition: chain.c:201

Referenced by CertTrustFinalPolicy(), check_and_store_certs(), get_chain_engine(), and save_pfx().

◆ CertFreeCertificateContext()

WINCRYPT32API BOOL WINAPI CertFreeCertificateContext ( PCCERT_CONTEXT  pCertContext)

Definition at line 371 of file cert.c.

372{
373 TRACE("(%p)\n", pCertContext);
374
375 if (pCertContext)
376 Context_Release(&cert_from_ptr(pCertContext)->base);
377 return TRUE;
378}

Referenced by Cert_clone(), CertAddEncodedCertificateToStore(), CertGetIssuerCertificateFromStore(), check_store_context_type(), CRYPT_BuildAlternateContextFromChain(), CRYPT_BuildSimpleChain(), CRYPT_CheckBasicConstraintsForCA(), CRYPT_CheckRestrictedRoot(), CRYPT_CheckTrustedStatus(), CRYPT_CreateAny(), CRYPT_FindIssuer(), CRYPT_FreeChainElement(), CRYPTDLG_IsCertAllowed(), CryptExtOpenCERW(), CryptMsgGetAndVerifySigner(), CryptVerifyDetachedMessageSignature(), CryptVerifyMessageSignature(), free_certs(), get_security_cert_struct(), getChain(), netcon_secure_connect_setup(), netconn_secure_connect(), open_connection(), rdssl_cert_free(), request_destroy(), request_set_option(), save_pfx(), ShowX509EncodedCertificate(), SoftpubAuthenticode(), SoftpubCleanup(), test_CERT_CHAIN_PARA_cbSize(), test_CertGetNameStringA(), test_CertNameToStrA(), test_CertNameToStrW(), test_communication(), test_crypt_ui_wiz_import(), test_encrypt_message(), test_enveloped_msg_open(), test_getObjectUrl(), test_msg_get_and_verify_signer(), test_retrieveObjectByUrl(), test_secure_connection(), test_sign_message(), test_utils(), test_verifyRevocation(), testAcquireCertPrivateKey(), testAcquireSecurityContext(), testAddCert(), testAddCertificateLink(), testAddSerialized(), testCertProperties(), testCertRegisterSystemStore(), testCertTrust(), testCloseStore(), testCollectionStore(), testCreateCert(), testCreateSelfSignCert(), testDupCert(), testEmptyStore(), testFileStore(), testFindCert(), testFindCertInCRL(), testFindCRL(), testGetCertChain(), testGetCRLFromStore(), testGetIssuerCert(), testGetSubjectCert(), testGetValidUsages(), testImportPublicKey(), testIsValidCRLForCert(), testKeyUsage(), testLinkCert(), testMemStore(), testObjTrust(), testRegStoreSavedCerts(), testStoresInCollection(), testVerifyCertChainPolicy(), testVerifyCRLRevocation(), testVerifyRevocation(), testVerifySubjectCert(), and WINTRUST_VerifySigner().

◆ CertFreeCRLContext()

◆ CertFreeCTLContext()

WINCRYPT32API BOOL WINAPI CertFreeCTLContext ( PCCTL_CONTEXT  pCtlContext)

Definition at line 499 of file ctl.c.

500{
501 TRACE("(%p)\n", pCTLContext);
502
503 if (pCTLContext)
504 Context_Release(&ctl_from_ptr(pCTLContext)->base);
505 return TRUE;
506}

Referenced by CertAddCTLContextToStore(), CertAddEncodedCTLToStore(), CertDeleteCTLFromStore(), check_store_context_type(), CRYPT_CreateAny(), testCloseStore(), testCreateCTL(), testCTLProperties(), testDupCTL(), and testEmptyStore().

◆ CertGetCertificateChain()

WINCRYPT32API BOOL WINAPI CertGetCertificateChain ( HCERTCHAINENGINE  hChainEngine,
PCCERT_CONTEXT  pCertContext,
LPFILETIME  pTime,
HCERTSTORE  hAdditionalStore,
PCERT_CHAIN_PARA  pChainPara,
DWORD  dwFlags,
LPVOID  pvReserved,
PCCERT_CHAIN_CONTEXT ppChainContext 
)

Definition at line 2879 of file chain.c.

2883{
2884 CertificateChainEngine *engine;
2885 BOOL ret;
2887
2888 TRACE("(%p, %p, %s, %p, %p, %08x, %p, %p)\n", hChainEngine, pCertContext,
2889 debugstr_filetime(pTime), hAdditionalStore, pChainPara, dwFlags,
2890 pvReserved, ppChainContext);
2891
2892 engine = get_chain_engine(hChainEngine, TRUE);
2893 if (!engine)
2894 return FALSE;
2895
2896 if (ppChainContext)
2897 *ppChainContext = NULL;
2898 if (!pChainPara)
2899 {
2901 return FALSE;
2902 }
2903 if (!pCertContext->pCertInfo->SignatureAlgorithm.pszObjId)
2904 {
2906 return FALSE;
2907 }
2908
2909 if (TRACE_ON(chain))
2910 dump_chain_para(pChainPara);
2911 /* FIXME: what about HCCE_LOCAL_MACHINE? */
2912 ret = CRYPT_BuildCandidateChainFromCert(engine, pCertContext, pTime,
2913 hAdditionalStore, dwFlags, &chain);
2914 if (ret)
2915 {
2916 CertificateChain *alternate = NULL;
2917 PCERT_CHAIN_CONTEXT pChain;
2918
2919 do {
2920 alternate = CRYPT_BuildAlternateContextFromChain(engine,
2921 pTime, hAdditionalStore, dwFlags, chain);
2922
2923 /* Alternate contexts are added as "lower quality" contexts of
2924 * chain, to avoid loops in alternate chain creation.
2925 * The highest-quality chain is chosen at the end.
2926 */
2927 if (alternate)
2929 } while (ret && alternate);
2933 pChain = (PCERT_CHAIN_CONTEXT)chain;
2934 CRYPT_VerifyChainRevocation(pChain, pTime, hAdditionalStore,
2935 pChainPara, dwFlags);
2936 CRYPT_CheckUsages(pChain, pChainPara);
2937 TRACE_(chain)("error status: %08x\n",
2938 pChain->TrustStatus.dwErrorStatus);
2939 if (ppChainContext)
2940 *ppChainContext = pChain;
2941 else
2943 }
2944 TRACE("returning %d\n", ret);
2945 return ret;
2946}
static BOOL CRYPT_BuildCandidateChainFromCert(CertificateChainEngine *engine, PCCERT_CONTEXT cert, LPFILETIME pTime, HCERTSTORE hAdditionalStore, DWORD flags, CertificateChain **ppChain)
Definition: chain.c:2251
static BOOL CRYPT_AddAlternateChainToChain(CertificateChain *chain, const CertificateChain *alternate)
Definition: chain.c:2586
static void CRYPT_VerifyChainRevocation(PCERT_CHAIN_CONTEXT chain, LPFILETIME pTime, HCERTSTORE hAdditionalStore, const CERT_CHAIN_PARA *pChainPara, DWORD chainFlags)
Definition: chain.c:2632
VOID WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext)
Definition: chain.c:2960
static void CRYPT_FreeLowerQualityChains(CertificateChain *chain)
Definition: chain.c:2351
static void CRYPT_CheckUsages(PCERT_CHAIN_CONTEXT chain, const CERT_CHAIN_PARA *pChainPara)
Definition: chain.c:2745
static LPCSTR debugstr_filetime(LPFILETIME pTime)
Definition: chain.c:2213
static CertificateChain * CRYPT_BuildAlternateContextFromChain(CertificateChainEngine *engine, LPFILETIME pTime, HCERTSTORE hAdditionalStore, DWORD flags, CertificateChain *chain)
Definition: chain.c:2442
static CertificateChain * CRYPT_ChooseHighestQualityChain(CertificateChain *chain)
Definition: chain.c:2554
static void dump_chain_para(const CERT_CHAIN_PARA *pChainPara)
Definition: chain.c:2864
#define TRACE_(x)
Definition: compat.h:76
#define TRACE_ON(x)
Definition: compat.h:75
CERT_TRUST_STATUS TrustStatus
Definition: wincrypt.h:1051
CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm
Definition: wincrypt.h:252
#define CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS
Definition: wincrypt.h:1177
struct _CERT_CHAIN_CONTEXT * PCERT_CHAIN_CONTEXT
Definition: wincrypt.h:1046

Referenced by CertTrustFinalPolicy(), check_and_store_certs(), netconn_verify_cert(), save_cert_as_cms(), save_pfx(), testGetCertChain(), and WINTRUST_CreateChainForSigner().

◆ CertGetCertificateContextProperty()

WINCRYPT32API BOOL WINAPI CertGetCertificateContextProperty ( PCCERT_CONTEXT  pCertContext,
DWORD  dwPropId,
void pvData,
DWORD pcbData 
)

Definition at line 551 of file cert.c.

553{
554 cert_t *cert = cert_from_ptr(pCertContext);
555 BOOL ret;
556
557 TRACE("(%p, %d, %p, %p)\n", pCertContext, dwPropId, pvData, pcbData);
558
559 switch (dwPropId)
560 {
561 case 0:
563 case CERT_CRL_PROP_ID:
564 case CERT_CTL_PROP_ID:
566 ret = FALSE;
567 break;
569 ret = CertGetStoreProperty(cert->ctx.hCertStore, dwPropId, pvData, pcbData);
570 break;
572 {
573 CERT_KEY_CONTEXT keyContext;
574 DWORD size = sizeof(keyContext);
575
577 CERT_KEY_CONTEXT_PROP_ID, &keyContext, &size);
578 if (ret)
579 ret = CertContext_CopyParam(pvData, pcbData, &keyContext.hCryptProv,
580 sizeof(keyContext.hCryptProv));
581 break;
582 }
585 pcbData);
586 if (ret && pvData)
588 break;
589 default:
591 pcbData);
592 }
593
594 TRACE("returning %d\n", ret);
595 return ret;
596}
#define CERT_CTL_PROP_ID
#define CERT_CRL_PROP_ID
#define CERT_CERT_PROP_ID
void CRYPT_FixKeyProvInfoPointers(PCRYPT_KEY_PROV_INFO info)
Definition: cert.c:523
static BOOL CertContext_CopyParam(void *pvData, DWORD *pcbData, const void *pb, DWORD cb)
Definition: cert.c:410
static BOOL CertContext_GetProperty(cert_t *cert, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: cert.c:431
BOOL WINAPI CertGetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: store.c:1172
HCRYPTPROV hCryptProv
Definition: wincrypt.h:229
#define CERT_KEY_CONTEXT_PROP_ID
Definition: wincrypt.h:2837
#define CERT_KEY_PROV_INFO_PROP_ID
Definition: wincrypt.h:2833
#define CERT_ACCESS_STATE_PROP_ID
Definition: wincrypt.h:2847
#define CERT_KEY_PROV_HANDLE_PROP_ID
Definition: wincrypt.h:2832
_In_ ULONG _In_opt_ PVOID pvData
Definition: winddi.h:3749

Referenced by add_cert_to_list(), add_cert_to_store(), add_cert_to_view(), add_properties(), cert_prov_info_matches_cert(), CertGetEnhancedKeyUsage(), CertGetNameStringW(), checkHash(), compare_cert_by_cert_id(), compare_cert_by_md5_hash(), compare_cert_by_sha1_hash(), compare_cert_by_signature_hash(), compare_crl_issued_by(), CRYPT_AcquirePrivateKeyFromProvInfo(), CRYPT_CheckBasicConstraintsForCA(), CRYPT_FindCertInStore(), CRYPT_IsCertificateSelfSigned(), CryptAcquireCertificatePrivateKey(), CRYPTDLG_IsCertAllowed(), export_get_private_key_info(), export_info_has_private_key(), get_cert_property_as_string(), SoftpubAuthenticode(), testAcquireCertPrivateKey(), testAddCertificateLink(), testAddSerialized(), testCertProperties(), testCreateCert(), testCreateSelfSignCert(), and TrustIsCertificateSelfSigned().

◆ CertGetCRLContextProperty()

WINCRYPT32API BOOL WINAPI CertGetCRLContextProperty ( PCCRL_CONTEXT  pCRLContext,
DWORD  dwPropId,
void pvData,
DWORD pcbData 
)

Definition at line 472 of file crl.c.

474{
475 BOOL ret;
476
477 TRACE("(%p, %d, %p, %p)\n", pCRLContext, dwPropId, pvData, pcbData);
478
479 switch (dwPropId)
480 {
481 case 0:
483 case CERT_CRL_PROP_ID:
484 case CERT_CTL_PROP_ID:
486 ret = FALSE;
487 break;
489 if (!pvData)
490 {
491 *pcbData = sizeof(DWORD);
492 ret = TRUE;
493 }
494 else if (*pcbData < sizeof(DWORD))
495 {
497 *pcbData = sizeof(DWORD);
498 ret = FALSE;
499 }
500 else
501 {
502 ret = CertGetStoreProperty(pCRLContext->hCertStore, dwPropId, pvData, pcbData);
503 }
504 break;
505 default:
506 ret = CRLContext_GetProperty(crl_from_ptr(pCRLContext), dwPropId, pvData, pcbData);
507 }
508 return ret;
509}
#define ERROR_MORE_DATA
Definition: dderror.h:13
static BOOL CRLContext_GetProperty(crl_t *crl, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: crl.c:421
#define DWORD
Definition: nt_native.h:44

Referenced by checkCRLHash(), and testCRLProperties().

◆ CertGetCRLFromStore()

WINCRYPT32API PCCRL_CONTEXT WINAPI CertGetCRLFromStore ( HCERTSTORE  hCertStore,
PCCERT_CONTEXT  pIssuerContext,
PCCRL_CONTEXT  pPrevCrlContext,
DWORD pdwFlags 
)

Definition at line 337 of file crl.c.

339{
340 static const DWORD supportedFlags = CERT_STORE_SIGNATURE_FLAG |
344
345 TRACE("(%p, %p, %p, %08x)\n", hCertStore, pIssuerContext, pPrevCrlContext,
346 *pdwFlags);
347
348 if (*pdwFlags & ~supportedFlags)
349 {
351 return NULL;
352 }
353 if (pIssuerContext)
354 ret = CertFindCRLInStore(hCertStore, pIssuerContext->dwCertEncodingType,
355 0, CRL_FIND_ISSUED_BY, pIssuerContext, pPrevCrlContext);
356 else
357 ret = CertFindCRLInStore(hCertStore, 0, 0, CRL_FIND_ANY, NULL,
358 pPrevCrlContext);
359 if (ret)
360 {
361 if (*pdwFlags & CERT_STORE_TIME_VALIDITY_FLAG)
362 {
363 if (0 == CertVerifyCRLTimeValidity(NULL, ret->pCrlInfo))
364 *pdwFlags &= ~CERT_STORE_TIME_VALIDITY_FLAG;
365 }
366 if (*pdwFlags & CERT_STORE_SIGNATURE_FLAG)
367 {
368 if (CryptVerifyCertificateSignatureEx(0, ret->dwCertEncodingType,
370 CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT, (void *)pIssuerContext, 0,
371 NULL))
372 *pdwFlags &= ~CERT_STORE_SIGNATURE_FLAG;
373 }
374 }
375 return ret;
376}
BOOL WINAPI CryptVerifyCertificateSignatureEx(HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, DWORD dwSubjectType, void *pvSubject, DWORD dwIssuerType, void *pvIssuer, DWORD dwFlags, void *pvReserved)
Definition: cert.c:2717
LONG WINAPI CertVerifyCRLTimeValidity(LPFILETIME pTimeToVerify, PCRL_INFO pCrlInfo)
Definition: crl.c:776
DWORD dwCertEncodingType
Definition: wincrypt.h:488
#define CERT_STORE_BASE_CRL_FLAG
Definition: wincrypt.h:3622
#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL
Definition: wincrypt.h:3628
#define CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT
Definition: wincrypt.h:3632
#define CERT_STORE_SIGNATURE_FLAG
Definition: wincrypt.h:3616
#define CERT_STORE_TIME_VALIDITY_FLAG
Definition: wincrypt.h:3617
#define CERT_STORE_DELTA_CRL_FLAG
Definition: wincrypt.h:3623

Referenced by CertVerifySubjectCertificateContext(), and testGetCRLFromStore().

◆ CertGetCTLContextProperty()

WINCRYPT32API BOOL WINAPI CertGetCTLContextProperty ( PCCTL_CONTEXT  pCTLContext,
DWORD  dwPropId,
void pvData,
DWORD pcbData 
)

Definition at line 590 of file ctl.c.

592{
593 BOOL ret;
594
595 TRACE("(%p, %d, %p, %p)\n", pCTLContext, dwPropId, pvData, pcbData);
596
597 switch (dwPropId)
598 {
599 case 0:
601 case CERT_CRL_PROP_ID:
602 case CERT_CTL_PROP_ID:
604 ret = FALSE;
605 break;
607 if (!pvData)
608 {
609 *pcbData = sizeof(DWORD);
610 ret = TRUE;
611 }
612 else if (*pcbData < sizeof(DWORD))
613 {
615 *pcbData = sizeof(DWORD);
616 ret = FALSE;
617 }
618 else
619 {
620 ret = CertGetStoreProperty(pCTLContext->hCertStore, dwPropId, pvData, pcbData);
621 }
622 break;
623 default:
624 ret = CTLContext_GetProperty(ctl_from_ptr(pCTLContext), dwPropId, pvData,
625 pcbData);
626 }
627 return ret;
628}
static BOOL CTLContext_GetProperty(ctl_t *ctl, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: ctl.c:541

Referenced by checkHash(), compare_ctl_by_md5_hash(), compare_ctl_by_sha1_hash(), and testCTLProperties().

◆ CertGetEnhancedKeyUsage()

WINCRYPT32API BOOL WINAPI CertGetEnhancedKeyUsage ( PCCERT_CONTEXT  pCertContext,
DWORD  dwFlags,
PCERT_ENHKEY_USAGE  pUsage,
DWORD pcbUsage 
)

Definition at line 2847 of file cert.c.

2849{
2851 DWORD bytesNeeded;
2852 BOOL ret = TRUE;
2853
2854 if (!pCertContext || !pcbUsage)
2855 {
2857 return FALSE;
2858 }
2859
2860 TRACE("(%p, %08x, %p, %d)\n", pCertContext, dwFlags, pUsage, *pcbUsage);
2861
2863 {
2864 DWORD propSize = 0;
2865
2866 if (CertGetCertificateContextProperty(pCertContext,
2867 CERT_ENHKEY_USAGE_PROP_ID, NULL, &propSize))
2868 {
2869 LPBYTE buf = CryptMemAlloc(propSize);
2870
2871 if (buf)
2872 {
2873 if (CertGetCertificateContextProperty(pCertContext,
2874 CERT_ENHKEY_USAGE_PROP_ID, buf, &propSize))
2875 {
2877 X509_ENHANCED_KEY_USAGE, buf, propSize,
2878 CRYPT_ENCODE_ALLOC_FLAG, NULL, &usage, &bytesNeeded);
2879 }
2881 }
2882 }
2883 }
2885 {
2887 pCertContext->pCertInfo->cExtension,
2888 pCertContext->pCertInfo->rgExtension);
2889
2890 if (ext)
2891 {
2893 X509_ENHANCED_KEY_USAGE, ext->Value.pbData, ext->Value.cbData,
2894 CRYPT_ENCODE_ALLOC_FLAG, NULL, &usage, &bytesNeeded);
2895 }
2896 }
2897 if (!usage)
2898 {
2899 /* If a particular location is specified, this should fail. Otherwise
2900 * it should succeed with an empty usage. (This is true on Win2k and
2901 * later, which we emulate.)
2902 */
2903 if (dwFlags)
2904 {
2906 ret = FALSE;
2907 }
2908 else
2909 bytesNeeded = sizeof(CERT_ENHKEY_USAGE);
2910 }
2911
2912 if (ret)
2913 {
2914 if (!pUsage)
2915 *pcbUsage = bytesNeeded;
2916 else if (*pcbUsage < bytesNeeded)
2917 {
2919 *pcbUsage = bytesNeeded;
2920 ret = FALSE;
2921 }
2922 else
2923 {
2924 *pcbUsage = bytesNeeded;
2925 if (usage)
2926 {
2927 DWORD i;
2928 LPSTR nextOID = (LPSTR)((LPBYTE)pUsage +
2929 sizeof(CERT_ENHKEY_USAGE) +
2930 usage->cUsageIdentifier * sizeof(LPSTR));
2931
2932 pUsage->cUsageIdentifier = usage->cUsageIdentifier;
2933 pUsage->rgpszUsageIdentifier = (LPSTR *)((LPBYTE)pUsage +
2934 sizeof(CERT_ENHKEY_USAGE));
2935 for (i = 0; i < usage->cUsageIdentifier; i++)
2936 {
2937 pUsage->rgpszUsageIdentifier[i] = nextOID;
2938 strcpy(nextOID, usage->rgpszUsageIdentifier[i]);
2939 nextOID += strlen(nextOID) + 1;
2940 }
2941 }
2942 else
2943 pUsage->cUsageIdentifier = 0;
2944 }
2945 }
2946 if (usage)
2948 TRACE("returning %d\n", ret);
2949 return ret;
2950}
PCERT_EXTENSION WINAPI CertFindExtension(LPCSTR pszObjId, DWORD cExtensions, CERT_EXTENSION rgExtensions[])
Definition: cert.c:2028
BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: cert.c:551
static const WCHAR *const ext[]
Definition: module.c:53
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
PCERT_EXTENSION rgExtension
Definition: wincrypt.h:261
DWORD cExtension
Definition: wincrypt.h:260
#define CERT_ENHKEY_USAGE_PROP_ID
Definition: wincrypt.h:2841
#define CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG
Definition: wincrypt.h:3063
#define szOID_ENHANCED_KEY_USAGE
Definition: wincrypt.h:3358
#define X509_ENHANCED_KEY_USAGE
Definition: wincrypt.h:3555

Referenced by CertAddEnhancedKeyUsageIdentifier(), CertGetValidUsages(), CertRemoveEnhancedKeyUsageIdentifier(), display_cert_usages(), get_cert_usages(), show_cert_usages(), and testKeyUsage().

◆ CertGetIntendedKeyUsage()

WINCRYPT32API BOOL WINAPI CertGetIntendedKeyUsage ( DWORD  dwCertEncodingType,
PCERT_INFO  pCertInfo,
BYTE pbKeyUsage,
DWORD  cbKeyUsage 
)

Definition at line 2810 of file cert.c.

2812{
2814 BOOL ret = FALSE;
2815
2816 TRACE("(%08x, %p, %p, %d)\n", dwCertEncodingType, pCertInfo, pbKeyUsage,
2817 cbKeyUsage);
2818
2820 pCertInfo->rgExtension);
2821 if (ext)
2822 {
2824 DWORD size = sizeof(usage);
2825
2826 ret = CryptDecodeObjectEx(dwCertEncodingType, X509_BITS,
2827 ext->Value.pbData, ext->Value.cbData, CRYPT_DECODE_NOCOPY_FLAG, NULL,
2828 &usage, &size);
2829 if (ret)
2830 {
2831 if (cbKeyUsage < usage.cbData)
2832 ret = FALSE;
2833 else
2834 {
2835 memcpy(pbKeyUsage, usage.pbData, usage.cbData);
2836 if (cbKeyUsage > usage.cbData)
2837 memset(pbKeyUsage + usage.cbData, 0,
2838 cbKeyUsage - usage.cbData);
2839 }
2840 }
2841 }
2842 else
2843 SetLastError(0);
2844 return ret;
2845}
#define memset(x, y, z)
Definition: compat.h:39
#define CRYPT_DECODE_NOCOPY_FLAG
Definition: wincrypt.h:3608
#define szOID_KEY_USAGE
Definition: wincrypt.h:3341
#define X509_BITS
Definition: wincrypt.h:3544

Referenced by testIntendedKeyUsage().

◆ CertGetIssuerCertificateFromStore()

WINCRYPT32API PCCERT_CONTEXT WINAPI CertGetIssuerCertificateFromStore ( HCERTSTORE  hCertStore,
PCCERT_CONTEXT  pSubjectContext,
PCCERT_CONTEXT  pPrevIssuerContext,
DWORD pdwFlags 
)

Definition at line 1887 of file cert.c.

1890{
1892
1893 TRACE("(%p, %p, %p, %08x)\n", hCertStore, pSubjectContext,
1894 pPrevIssuerContext, *pdwFlags);
1895
1896 if (!pSubjectContext)
1897 {
1899 return NULL;
1900 }
1901
1902 ret = CertFindCertificateInStore(hCertStore,
1903 pSubjectContext->dwCertEncodingType, 0, CERT_FIND_ISSUER_OF,
1904 pSubjectContext, pPrevIssuerContext);
1905 if (ret)
1906 {
1907 if (!CertVerifySubjectCertificateContext(pSubjectContext, ret,
1908 pdwFlags))
1909 {
1911 ret = NULL;
1912 }
1913 if (CRYPT_IsCertificateSelfSigned(pSubjectContext))
1914 {
1916 ret = NULL;
1918 }
1919 }
1920 TRACE("returning %p\n", ret);
1921 return ret;
1922}
PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFlags, DWORD dwType, const void *pvPara, PCCERT_CONTEXT pPrevCertContext)
Definition: cert.c:1765
BOOL WINAPI CertVerifySubjectCertificateContext(PCCERT_CONTEXT pSubject, PCCERT_CONTEXT pIssuer, DWORD *pdwFlags)
Definition: cert.c:1845
DWORD CRYPT_IsCertificateSelfSigned(const CERT_CONTEXT *cert)
Definition: chain.c:268
#define CERT_FIND_ISSUER_OF
Definition: wincrypt.h:3050
#define CRYPT_E_SELF_SIGNED
Definition: winerror.h:4425

Referenced by testGetIssuerCert().

◆ CertGetNameStringA()

WINCRYPT32API DWORD WINAPI CertGetNameStringA ( PCCERT_CONTEXT  pCertContext,
DWORD  dwType,
DWORD  dwFlags,
void pvTypePara,
LPSTR  pszNameString,
DWORD  cchNameString 
)

Definition at line 1127 of file str.c.

1129{
1130 DWORD ret;
1131
1132 TRACE("(%p, %d, %08x, %p, %p, %d)\n", pCertContext, dwType, dwFlags,
1133 pvTypePara, pszNameString, cchNameString);
1134
1135 if (pszNameString)
1136 {
1137 LPWSTR wideName;
1138 DWORD nameLen;
1139
1140 nameLen = CertGetNameStringW(pCertContext, dwType, dwFlags, pvTypePara,
1141 NULL, 0);
1142 wideName = CryptMemAlloc(nameLen * sizeof(WCHAR));
1143 if (wideName)
1144 {
1145 CertGetNameStringW(pCertContext, dwType, dwFlags, pvTypePara,
1146 wideName, nameLen);
1147 nameLen = WideCharToMultiByte(CP_ACP, 0, wideName, nameLen,
1148 pszNameString, cchNameString, NULL, NULL);
1149 if (nameLen <= cchNameString)
1150 ret = nameLen;
1151 else
1152 {
1153 pszNameString[cchNameString - 1] = '\0';
1154 ret = cchNameString;
1155 }
1156 CryptMemFree(wideName);
1157 }
1158 else
1159 {
1160 *pszNameString = '\0';
1161 ret = 1;
1162 }
1163 }
1164 else
1165 ret = CertGetNameStringW(pCertContext, dwType, dwFlags, pvTypePara,
1166 NULL, 0);
1167 return ret;
1168}
DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, void *pvTypePara, LPWSTR pszNameString, DWORD cchNameString)
Definition: str.c:1228
#define CP_ACP
Definition: compat.h:109
#define WideCharToMultiByte
Definition: compat.h:111
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by GetFriendlyNameOfCertA().

◆ CertGetNameStringW()

WINCRYPT32API DWORD WINAPI CertGetNameStringW ( PCCERT_CONTEXT  pCertContext,
DWORD  dwType,
DWORD  dwFlags,
void pvTypePara,
LPWSTR  pszNameString,
DWORD  cchNameString 
)

Definition at line 1228 of file str.c.

1230{
1231 DWORD ret = 0;
1233 LPCSTR altNameOID;
1234
1235 TRACE("(%p, %d, %08x, %p, %p, %d)\n", pCertContext, dwType,
1236 dwFlags, pvTypePara, pszNameString, cchNameString);
1237
1238 if (!pCertContext)
1239 goto done;
1240
1242 {
1243 name = &pCertContext->pCertInfo->Issuer;
1244 altNameOID = szOID_ISSUER_ALT_NAME;
1245 }
1246 else
1247 {
1248 name = &pCertContext->pCertInfo->Subject;
1249 altNameOID = szOID_SUBJECT_ALT_NAME;
1250 }
1251
1252 switch (dwType)
1253 {
1255 {
1258 altNameOID, CERT_ALT_NAME_RFC822_NAME, &info);
1259
1260 if (entry)
1261 {
1262 if (!pszNameString)
1263 ret = strlenW(entry->u.pwszRfc822Name) + 1;
1264 else if (cchNameString)
1265 {
1266 ret = min(strlenW(entry->u.pwszRfc822Name), cchNameString - 1);
1267 memcpy(pszNameString, entry->u.pwszRfc822Name,
1268 ret * sizeof(WCHAR));
1269 pszNameString[ret++] = 0;
1270 }
1271 }
1272 if (info)
1273 LocalFree(info);
1274 if (!ret)
1276 name, szOID_RSA_emailAddr, pszNameString, cchNameString);
1277 break;
1278 }
1279 case CERT_NAME_RDN_TYPE:
1280 {
1281 DWORD type = pvTypePara ? *(DWORD *)pvTypePara : 0;
1282
1283 if (name->cbData)
1284 ret = CertNameToStrW(pCertContext->dwCertEncodingType, name,
1285 type, pszNameString, cchNameString);
1286 else
1287 {
1290 altNameOID, CERT_ALT_NAME_DIRECTORY_NAME, &info);
1291
1292 if (entry)
1293 ret = CertNameToStrW(pCertContext->dwCertEncodingType,
1294 &entry->u.DirectoryName, type, pszNameString, cchNameString);
1295 if (info)
1296 LocalFree(info);
1297 }
1298 break;
1299 }
1302 name, pvTypePara, pszNameString, cchNameString);
1303 if (!ret)
1304 {
1305 CERT_ALT_NAME_INFO *altInfo;
1307 altNameOID, CERT_ALT_NAME_DIRECTORY_NAME, &altInfo);
1308
1309 if (entry)
1311 &entry->u.DirectoryName, 0, pszNameString, cchNameString);
1312 if (altInfo)
1313 LocalFree(altInfo);
1314 }
1315 break;
1317 {
1318 static const LPCSTR simpleAttributeOIDs[] = { szOID_COMMON_NAME,
1321 CERT_NAME_INFO *nameInfo = NULL;
1322 DWORD bytes = 0, i;
1323
1325 name->pbData, name->cbData, CRYPT_DECODE_ALLOC_FLAG, NULL, &nameInfo,
1326 &bytes))
1327 {
1328 PCERT_RDN_ATTR nameAttr = NULL;
1329
1330 for (i = 0; !nameAttr && i < ARRAY_SIZE(simpleAttributeOIDs); i++)
1331 nameAttr = CertFindRDNAttr(simpleAttributeOIDs[i], nameInfo);
1332 if (nameAttr)
1334 &nameAttr->Value, pszNameString, cchNameString);
1335 LocalFree(nameInfo);
1336 }
1337 if (!ret)
1338 {
1339 CERT_ALT_NAME_INFO *altInfo;
1341 altNameOID, CERT_ALT_NAME_RFC822_NAME, &altInfo);
1342
1343 if (altInfo)
1344 {
1345 if (!entry && altInfo->cAltEntry)
1346 entry = &altInfo->rgAltEntry[0];
1347 if (entry)
1348 {
1349 if (!pszNameString)
1350 ret = strlenW(entry->u.pwszRfc822Name) + 1;
1351 else if (cchNameString)
1352 {
1353 ret = min(strlenW(entry->u.pwszRfc822Name),
1354 cchNameString - 1);
1355 memcpy(pszNameString, entry->u.pwszRfc822Name,
1356 ret * sizeof(WCHAR));
1357 pszNameString[ret++] = 0;
1358 }
1359 }
1360 LocalFree(altInfo);
1361 }
1362 }
1363 break;
1364 }
1366 {
1367 DWORD cch = cchNameString;
1368
1369 if (CertGetCertificateContextProperty(pCertContext,
1370 CERT_FRIENDLY_NAME_PROP_ID, pszNameString, &cch))
1371 ret = cch;
1372 else
1373 ret = CertGetNameStringW(pCertContext,
1374 CERT_NAME_SIMPLE_DISPLAY_TYPE, dwFlags, pvTypePara, pszNameString,
1375 cchNameString);
1376 break;
1377 }
1378 case CERT_NAME_DNS_TYPE:
1379 {
1382 altNameOID, CERT_ALT_NAME_DNS_NAME, &info);
1383
1384 if (entry)
1385 {
1386 if (!pszNameString)
1387 ret = strlenW(entry->u.pwszDNSName) + 1;
1388 else if (cchNameString)
1389 {
1390 ret = min(strlenW(entry->u.pwszDNSName), cchNameString - 1);
1391 memcpy(pszNameString, entry->u.pwszDNSName, ret * sizeof(WCHAR));
1392 pszNameString[ret++] = 0;
1393 }
1394 }
1395 if (info)
1396 LocalFree(info);
1397 if (!ret)
1399 name, szOID_COMMON_NAME, pszNameString, cchNameString);
1400 break;
1401 }
1402 case CERT_NAME_URL_TYPE:
1403 {
1406 altNameOID, CERT_ALT_NAME_URL, &info);
1407
1408 if (entry)
1409 {
1410 if (!pszNameString)
1411 ret = strlenW(entry->u.pwszURL) + 1;
1412 else if (cchNameString)
1413 {
1414 ret = min(strlenW(entry->u.pwszURL), cchNameString - 1);
1415 memcpy(pszNameString, entry->u.pwszURL, ret * sizeof(WCHAR));
1416 pszNameString[ret++] = 0;
1417 }
1418 }
1419 if (info)
1420 LocalFree(info);
1421 break;
1422 }
1423 default:
1424 FIXME("unimplemented for type %d\n", dwType);
1425 ret = 0;
1426 }
1427done:
1428 if (!ret)
1429 {
1430 if (!pszNameString)
1431 ret = 1;
1432 else if (cchNameString)
1433 {
1434 pszNameString[0] = 0;
1435 ret = 1;
1436 }
1437 }
1438 return ret;
1439}
static unsigned char bytes[4]
Definition: adnsresfilter.c:74
PCERT_RDN_ATTR WINAPI CertFindRDNAttr(LPCSTR pszObjId, PCERT_NAME_INFO pName)
Definition: cert.c:2051
static PCERT_ALT_NAME_ENTRY cert_find_alt_name_entry(PCCERT_CONTEXT cert, LPCSTR altNameOID, DWORD entryType, PCERT_ALT_NAME_INFO *info)
Definition: str.c:1179
DWORD cert_name_to_str_with_indent(DWORD dwCertEncodingType, DWORD indentLevel, const CERT_NAME_BLOB *pName, DWORD dwStrType, LPWSTR psz, DWORD csz)
Definition: str.c:576
DWORD WINAPI CertNameToStrW(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, DWORD dwStrType, LPWSTR psz, DWORD csz)
Definition: str.c:702
static DWORD cert_get_name_from_rdn_attr(DWORD encodingType, const CERT_NAME_BLOB *name, LPCSTR oid, LPWSTR pszNameString, DWORD cchNameString)
Definition: str.c:1206
DWORD WINAPI CertRDNValueToStrW(DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, LPWSTR psz, DWORD csz)
Definition: str.c:100
static DWORD DWORD void LPSTR DWORD cch
Definition: str.c:202
#define min(a, b)
Definition: monoChain.cc:55
#define strlenW(s)
Definition: unicode.h:34
Definition: wincrypt.h:341
PCERT_ALT_NAME_ENTRY rgAltEntry
Definition: wincrypt.h:366
CERT_NAME_BLOB Subject
Definition: wincrypt.h:256
DWORD dwValueType
Definition: wincrypt.h:266
CERT_RDN_VALUE_BLOB Value
Definition: wincrypt.h:267
#define X509_NAME
Definition: wincrypt.h:3524
#define CERT_NAME_SIMPLE_DISPLAY_TYPE
Definition: wincrypt.h:3658
#define CERT_ALT_NAME_URL
Definition: wincrypt.h:360
#define CERT_NAME_EMAIL_TYPE
Definition: wincrypt.h:3655
#define CERT_ALT_NAME_DIRECTORY_NAME
Definition: wincrypt.h:358
#define CERT_ALT_NAME_RFC822_NAME
Definition: wincrypt.h:355
#define szOID_ORGANIZATIONAL_UNIT_NAME
Definition: wincrypt.h:3298
#define CERT_FRIENDLY_NAME_PROP_ID
Definition: wincrypt.h:2844
#define szOID_RSA_emailAddr
Definition: wincrypt.h:3188
#define CERT_NAME_DNS_TYPE
Definition: wincrypt.h:3660
#define szOID_SUBJECT_ALT_NAME
Definition: wincrypt.h:3336
#define CERT_ALT_NAME_DNS_NAME
Definition: wincrypt.h:356
#define CERT_NAME_RDN_TYPE
Definition: wincrypt.h:3656
#define CERT_NAME_ISSUER_FLAG
Definition: wincrypt.h:3664
#define CERT_NAME_ATTR_TYPE
Definition: wincrypt.h:3657
#define CERT_NAME_URL_TYPE
Definition: wincrypt.h:3661
#define szOID_COMMON_NAME
Definition: wincrypt.h:3290
#define szOID_ISSUER_ALT_NAME
Definition: wincrypt.h:3337
#define CERT_NAME_FRIENDLY_DISPLAY_TYPE
Definition: wincrypt.h:3659
#define szOID_ORGANIZATION_NAME
Definition: wincrypt.h:3297

Referenced by add_cert_to_list(), add_cert_to_view(), CertGetNameStringA(), CertGetNameStringW(), dump_element(), get_cert_name_string(), and GetFriendlyNameOfCertW().

◆ CertGetPublicKeyLength()

WINCRYPT32API DWORD WINAPI CertGetPublicKeyLength ( DWORD  dwCertEncodingType,
PCERT_PUBLIC_KEY_INFO  pPublicKey 
)

Definition at line 1305 of file cert.c.

1307{
1308 DWORD len = 0;
1309
1310 TRACE("(%08x, %p)\n", dwCertEncodingType, pPublicKey);
1311
1312 if (GET_CERT_ENCODING_TYPE(dwCertEncodingType) != X509_ASN_ENCODING)
1313 {
1315 return 0;
1316 }
1317 if (pPublicKey->Algorithm.pszObjId &&
1318 !strcmp(pPublicKey->Algorithm.pszObjId, szOID_RSA_DH))
1319 {
1320 FIXME("unimplemented for DH public keys\n");
1322 }
1323 else
1324 {
1326 DWORD size;
1327 PBYTE buf;
1328 BOOL ret;
1329
1331 if (info)
1332 {
1333 HCRYPTKEY key;
1334
1335 TRACE("public key algid %#x (%s)\n", info->u.Algid, debugstr_a(pPublicKey->Algorithm.pszObjId));
1336
1337 ret = CryptImportPublicKeyInfo(I_CryptGetDefaultCryptProv(info->u.Algid), dwCertEncodingType, pPublicKey, &key);
1338 if (ret)
1339 {
1340 size = sizeof(len);
1343 return len;
1344 }
1345 /* fallback to RSA */
1346 }
1347
1348 ret = CryptDecodeObjectEx(dwCertEncodingType,
1351 &size);
1352
1353 if (ret)
1354 {
1355 RSAPUBKEY *rsaPubKey = (RSAPUBKEY *)(buf + sizeof(BLOBHEADER));
1356
1357 len = rsaPubKey->bitlen;
1358 LocalFree(buf);
1359 }
1360 }
1361 return len;
1362}
HCRYPTPROV WINAPI I_CryptGetDefaultCryptProv(ALG_ID)
Definition: main.c:210
BOOL WINAPI CryptGetKeyParam(HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
Definition: crypt.c:1649
BOOL WINAPI CryptImportPublicKeyInfo(HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, HCRYPTKEY *phKey)
Definition: encode.c:4970
GLenum GLsizei len
Definition: glext.h:6722
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
BYTE * PBYTE
Definition: pedump.c:66
CRYPT_ALGORITHM_IDENTIFIER Algorithm
Definition: wincrypt.h:234
#define szOID_RSA_DH
Definition: wincrypt.h:3180
#define CRYPT_OID_INFO_OID_KEY
Definition: wincrypt.h:1955
#define KP_KEYLEN
Definition: wincrypt.h:2340
#define CRYPT_E_ASN1_BADTAG
Definition: winerror.h:4511

Referenced by field_format_public_key(), and testGetPublicKeyLength().

◆ CertGetStoreProperty()

WINCRYPT32API BOOL WINAPI CertGetStoreProperty ( HCERTSTORE  hCertStore,
DWORD  dwPropId,
void pvData,
DWORD pcbData 
)

Definition at line 1172 of file store.c.

1174{
1175 WINECRYPT_CERTSTORE *store = hCertStore;
1176 BOOL ret = FALSE;
1177
1178 TRACE("(%p, %d, %p, %p)\n", hCertStore, dwPropId, pvData, pcbData);
1179
1180 switch (dwPropId)
1181 {
1183 if (!pvData)
1184 {
1185 *pcbData = sizeof(DWORD);
1186 ret = TRUE;
1187 }
1188 else if (*pcbData < sizeof(DWORD))
1189 {
1191 *pcbData = sizeof(DWORD);
1192 }
1193 else
1194 {
1195 DWORD state = 0;
1196
1197 if (store->type != StoreTypeMem &&
1200 *(DWORD *)pvData = state;
1201 ret = TRUE;
1202 }
1203 break;
1204 default:
1205 if (store->properties)
1206 {
1208
1210 &blob);
1211 if (ret)
1212 {
1213 if (!pvData)
1214 *pcbData = blob.cbData;
1215 else if (*pcbData < blob.cbData)
1216 {
1218 *pcbData = blob.cbData;
1219 ret = FALSE;
1220 }
1221 else
1222 {
1223 memcpy(pvData, blob.pbData, blob.cbData);
1224 *pcbData = blob.cbData;
1225 }
1226 }
1227 else
1229 }
1230 else
1232 }
1233 return ret;
1234}
static int state
Definition: maze.c:121
BOOL ContextPropertyList_FindProperty(CONTEXT_PROPERTY_LIST *list, DWORD id, PCRYPT_DATA_BLOB blob) DECLSPEC_HIDDEN
Definition: proplist.c:72
@ StoreTypeMem
CONTEXT_PROPERTY_LIST * properties
#define CERT_ACCESS_STATE_WRITE_PERSIST_FLAG
Definition: wincrypt.h:2913
#define CERT_STORE_READONLY_FLAG
Definition: wincrypt.h:2635

Referenced by CertGetCertificateContextProperty(), CertGetCRLContextProperty(), CertGetCTLContextProperty(), enumerate_stores(), and testStoreProperty().

◆ CertGetSubjectCertificateFromStore()

WINCRYPT32API PCCERT_CONTEXT WINAPI CertGetSubjectCertificateFromStore ( HCERTSTORE  hCertStore,
DWORD  dwCertEncodingType,
PCERT_INFO  pCertId 
)

Definition at line 1831 of file cert.c.

1833{
1834 TRACE("(%p, %08x, %p)\n", hCertStore, dwCertEncodingType, pCertId);
1835
1836 if (!pCertId)
1837 {
1839 return NULL;
1840 }
1841 return CertFindCertificateInStore(hCertStore, dwCertEncodingType, 0,
1842 CERT_FIND_SUBJECT_CERT, pCertId, NULL);
1843}
#define CERT_FIND_SUBJECT_CERT
Definition: wincrypt.h:3048

Referenced by testGetSubjectCert(), and WINTRUST_VerifySigner().

◆ CertGetValidUsages()

WINCRYPT32API BOOL WINAPI CertGetValidUsages ( DWORD  cCerts,
PCCERT_CONTEXT rghCerts,
int cNumOIDs,
LPSTR rghOIDs,
DWORD pcbOIDs 
)

Definition at line 3159 of file cert.c.

3161{
3162 BOOL ret = TRUE;
3163 DWORD i, cbOIDs = 0;
3164 BOOL allUsagesValid = TRUE;
3165 CERT_ENHKEY_USAGE validUsages = { 0, NULL };
3166
3167 TRACE("(%d, %p, %d, %p, %d)\n", cCerts, rghCerts, *cNumOIDs,
3168 rghOIDs, *pcbOIDs);
3169
3170 for (i = 0; i < cCerts; i++)
3171 {
3173 DWORD size = sizeof(usage);
3174
3175 ret = CertGetEnhancedKeyUsage(rghCerts[i], 0, &usage, &size);
3176 /* Success is deliberately ignored: it implies all usages are valid */
3177 if (!ret && GetLastError() == ERROR_MORE_DATA)
3178 {
3180
3181 allUsagesValid = FALSE;
3182 if (pUsage)
3183 {
3184 ret = CertGetEnhancedKeyUsage(rghCerts[i], 0, pUsage, &size);
3185 if (ret)
3186 {
3187 if (!validUsages.cUsageIdentifier)
3188 {
3189 DWORD j;
3190
3191 cbOIDs = pUsage->cUsageIdentifier * sizeof(LPSTR);
3192 validUsages.cUsageIdentifier = pUsage->cUsageIdentifier;
3193 for (j = 0; j < validUsages.cUsageIdentifier; j++)
3194 cbOIDs += lstrlenA(pUsage->rgpszUsageIdentifier[j])
3195 + 1;
3196 validUsages.rgpszUsageIdentifier =
3197 CryptMemAlloc(cbOIDs);
3198 if (validUsages.rgpszUsageIdentifier)
3199 {
3200 LPSTR nextOID = (LPSTR)
3201 ((LPBYTE)validUsages.rgpszUsageIdentifier +
3202 validUsages.cUsageIdentifier * sizeof(LPSTR));
3203
3204 for (j = 0; j < validUsages.cUsageIdentifier; j++)
3205 {
3206 validUsages.rgpszUsageIdentifier[j] = nextOID;
3207 lstrcpyA(validUsages.rgpszUsageIdentifier[j],
3208 pUsage->rgpszUsageIdentifier[j]);
3209 nextOID += lstrlenA(nextOID) + 1;
3210 }
3211 }
3212 }
3213 else
3214 {
3215 struct BitField validIndexes = { 0, NULL };
3216 DWORD j, k, numRemoved = 0;
3217
3218 /* Merge: build a bitmap of all the indexes of
3219 * validUsages.rgpszUsageIdentifier that are in pUsage.
3220 */
3221 for (j = 0; j < pUsage->cUsageIdentifier; j++)
3222 {
3223 for (k = 0; k < validUsages.cUsageIdentifier; k++)
3224 {
3225 if (!strcmp(pUsage->rgpszUsageIdentifier[j],
3226 validUsages.rgpszUsageIdentifier[k]))
3227 {
3228 CRYPT_SetBitInField(&validIndexes, k);
3229 break;
3230 }
3231 }
3232 }
3233 /* Merge by removing from validUsages those that are
3234 * not in the bitmap.
3235 */
3236 for (j = 0; j < validUsages.cUsageIdentifier; j++)
3237 {
3238 if (!CRYPT_IsBitInFieldSet(&validIndexes, j))
3239 {
3240 if (j < validUsages.cUsageIdentifier - 1)
3241 {
3242 memmove(&validUsages.rgpszUsageIdentifier[j],
3243 &validUsages.rgpszUsageIdentifier[j +
3244 numRemoved + 1],
3245 (validUsages.cUsageIdentifier - numRemoved
3246 - j - 1) * sizeof(LPSTR));
3247 cbOIDs -= lstrlenA(
3248 validUsages.rgpszUsageIdentifier[j]) + 1 +
3249 sizeof(LPSTR);
3250 validUsages.cUsageIdentifier--;
3251 numRemoved++;
3252 }
3253 else
3254 validUsages.cUsageIdentifier--;
3255 }
3256 }
3257 CryptMemFree(validIndexes.indexes);
3258 }
3259 }
3260 CryptMemFree(pUsage);
3261 }
3262 }
3263 }
3264 ret = TRUE;
3265 if (allUsagesValid)
3266 {
3267 *cNumOIDs = -1;
3268 *pcbOIDs = 0;
3269 }
3270 else
3271 {
3272 *cNumOIDs = validUsages.cUsageIdentifier;
3273 if (!rghOIDs)
3274 *pcbOIDs = cbOIDs;
3275 else if (*pcbOIDs < cbOIDs)
3276 {
3277 *pcbOIDs = cbOIDs;
3279 ret = FALSE;
3280 }
3281 else
3282 {
3283 LPSTR nextOID = (LPSTR)((LPBYTE)rghOIDs +
3284 validUsages.cUsageIdentifier * sizeof(LPSTR));
3285
3286 *pcbOIDs = cbOIDs;
3287 for (i = 0; i < validUsages.cUsageIdentifier; i++)
3288 {
3289 rghOIDs[i] = nextOID;
3290 lstrcpyA(nextOID, validUsages.rgpszUsageIdentifier[i]);
3291 nextOID += lstrlenA(nextOID) + 1;
3292 }
3293 }
3294 }
3296 TRACE("cNumOIDs: %d\n", *cNumOIDs);
3297 TRACE("returning %d\n", ret);
3298 return ret;
3299}
static BOOL CRYPT_IsBitInFieldSet(const struct BitField *field, DWORD bit)
Definition: cert.c:3149
static void CRYPT_SetBitInField(struct BitField *field, DWORD bit)
Definition: cert.c:3128
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:100
int WINAPI lstrlenA(LPCSTR lpString)
Definition: lstring.c:145
#define memmove(s1, s2, n)
Definition: mkisofs.h:881
int k
Definition: mpi.c:3369
DWORD * indexes
Definition: cert.c:3123

Referenced by init_function_pointers(), and show_store_certs().

◆ CertIsRDNAttrsInCertificateName()

WINCRYPT32API BOOL WINAPI CertIsRDNAttrsInCertificateName ( DWORD  dwCertEncodingType,
DWORD  dwFlags,
PCERT_NAME_BLOB  pCertName,
PCERT_RDN  pRDN 
)

Definition at line 2131 of file cert.c.

2133{
2135 LPCSTR type;
2136 DWORD size;
2137 BOOL ret;
2138
2139 TRACE("(%08x, %08x, %p, %p)\n", dwCertEncodingType, dwFlags, pCertName,
2140 pRDN);
2141
2143 X509_NAME;
2144 if ((ret = CryptDecodeObjectEx(dwCertEncodingType, type, pCertName->pbData,
2145 pCertName->cbData, CRYPT_DECODE_ALLOC_FLAG, NULL, &name, &size)))
2146 {
2147 DWORD i;
2148
2149 for (i = 0; ret && i < pRDN->cRDNAttr; i++)
2151 if (!ret)
2153 LocalFree(name);
2154 }
2155 return ret;
2156}
static BOOL find_matching_rdn_attr(DWORD dwFlags, const CERT_NAME_INFO *name, const CERT_RDN_ATTR *attr)
Definition: cert.c:2072
DWORD cRDNAttr
Definition: wincrypt.h:271
PCERT_RDN_ATTR rgRDNAttr
Definition: wincrypt.h:272
#define X509_UNICODE_NAME
Definition: wincrypt.h:3537
#define CERT_UNICODE_IS_RDN_ATTRS_FLAG
Definition: wincrypt.h:2953
#define CRYPT_E_NO_MATCH
Definition: winerror.h:4427

Referenced by directory_name_matches(), and testIsRDNAttrsInCertificateName().

◆ CertIsValidCRLForCertificate()

WINCRYPT32API BOOL WINAPI CertIsValidCRLForCertificate ( PCCERT_CONTEXT  pCert,
PCCRL_CONTEXT  pCrl,
DWORD  dwFlags,
void pvReserved 
)

Definition at line 681 of file crl.c.

683{
685 BOOL ret;
686
687 TRACE("(%p, %p, %08x, %p)\n", pCert, pCrl, dwFlags, pvReserved);
688
689 if (!pCert)
690 return TRUE;
691
693 pCrl->pCrlInfo->cExtension, pCrl->pCrlInfo->rgExtension)))
694 {
696 DWORD size;
697
699 X509_ISSUING_DIST_POINT, ext->Value.pbData, ext->Value.cbData,
701 {
703 pCert->pCertInfo->cExtension, pCert->pCertInfo->rgExtension)))
704 {
705 CRL_DIST_POINTS_INFO *distPoints;
706
708 X509_CRL_DIST_POINTS, ext->Value.pbData, ext->Value.cbData,
709 CRYPT_DECODE_ALLOC_FLAG, NULL, &distPoints, &size)))
710 {
711 DWORD i;
712
713 ret = FALSE;
714 for (i = 0; !ret && i < distPoints->cDistPoint; i++)
716 &distPoints->rgDistPoint[i], idp);
717 if (!ret)
719 LocalFree(distPoints);
720 }
721 }
722 else
723 {
724 /* no CRL dist points extension in cert, can't match the CRL
725 * (which has an issuing dist point extension)
726 */
727 ret = FALSE;
729 }
730 LocalFree(idp);
731 }
732 }
733 else
734 ret = TRUE;
735 return ret;
736}
static BOOL match_dist_point_with_issuing_dist_point(const CRL_DIST_POINT *distPoint, const CRL_ISSUING_DIST_POINT *idp)
Definition: crl.c:646
DWORD dwCertEncodingType
Definition: wincrypt.h:731
PCRL_DIST_POINT rgDistPoint
Definition: wincrypt.h:542
DWORD cExtension
Definition: wincrypt.h:511
PCERT_EXTENSION rgExtension
Definition: wincrypt.h:512
#define X509_ISSUING_DIST_POINT
Definition: wincrypt.h:3576
#define szOID_CRL_DIST_POINTS
Definition: wincrypt.h:3352
#define szOID_ISSUING_DIST_POINT
Definition: wincrypt.h:3350
#define X509_CRL_DIST_POINTS
Definition: wincrypt.h:3554

◆ CertNameToStrA()

WINCRYPT32API DWORD WINAPI CertNameToStrA ( DWORD  dwCertEncodingType,
PCERT_NAME_BLOB  pName,
DWORD  dwStrType,
LPSTR  psz,
DWORD  csz 
)

Definition at line 414 of file str.c.

416{
417 static const DWORD unsupportedFlags = CERT_NAME_STR_NO_QUOTING_FLAG |
419 static const char commaSep[] = ", ";
420 static const char semiSep[] = "; ";
421 static const char crlfSep[] = "\r\n";
422 static const char plusSep[] = " + ";
423 static const char spaceSep[] = " ";
424 DWORD ret = 0, bytes = 0;
425 BOOL bRet;
427
428 TRACE("(%d, %p, %08x, %p, %d)\n", dwCertEncodingType, pName, dwStrType,
429 psz, csz);
430 if (dwStrType & unsupportedFlags)
431 FIXME("unsupported flags: %08x\n", dwStrType & unsupportedFlags);
432
433 bRet = CryptDecodeObjectEx(dwCertEncodingType, X509_NAME, pName->pbData,
435 if (bRet)
436 {
437 DWORD i, j, sepLen, rdnSepLen;
438 LPCSTR sep, rdnSep;
440 const CERT_RDN *rdn = info->rgRDN;
441
442 if(reverse && info->cRDN > 1) rdn += (info->cRDN - 1);
443
445 sep = semiSep;
447 sep = crlfSep;
448 else
449 sep = commaSep;
450 sepLen = strlen(sep);
452 rdnSep = spaceSep;
453 else
454 rdnSep = plusSep;
455 rdnSepLen = strlen(rdnSep);
456 for (i = 0; (!psz || ret < csz) && i < info->cRDN; i++)
457 {
458 for (j = 0; (!psz || ret < csz) && j < rdn->cRDNAttr; j++)
459 {
460 DWORD chars;
461 char prefixBuf[13]; /* big enough for SERIALNUMBER */
463
464 if ((dwStrType & 0x000000ff) == CERT_OID_NAME_STR)
465 prefix = rdn->rgRDNAttr[j].pszObjId;
466 else if ((dwStrType & 0x000000ff) == CERT_X500_NAME_STR)
467 {
470 rdn->rgRDNAttr[j].pszObjId,
472
473 if (oidInfo)
474 {
475 WideCharToMultiByte(CP_ACP, 0, oidInfo->pwszName, -1,
476 prefixBuf, sizeof(prefixBuf), NULL, NULL);
477 prefix = prefixBuf;
478 }
479 else
480 prefix = rdn->rgRDNAttr[j].pszObjId;
481 }
482 if (prefix)
483 {
484 /* - 1 is needed to account for the NULL terminator. */
485 chars = CRYPT_AddPrefixA(prefix,
486 psz ? psz + ret : NULL, psz ? csz - ret - 1 : 0);
487 ret += chars;
488 }
490 rdn->rgRDNAttr[j].dwValueType,
491 &rdn->rgRDNAttr[j].Value, psz ? psz + ret : NULL,
492 psz ? csz - ret : 0);
493 if (chars)
494 ret += chars - 1;
495 if (j < rdn->cRDNAttr - 1)
496 {
497 if (psz && ret < csz - rdnSepLen - 1)
498 memcpy(psz + ret, rdnSep, rdnSepLen);
499 ret += rdnSepLen;
500 }
501 }
502 if (i < info->cRDN - 1)
503 {
504 if (psz && ret < csz - sepLen - 1)
505 memcpy(psz + ret, sep, sepLen);
506 ret += sepLen;
507 }
508 if(reverse) rdn--;
509 else rdn++;
510 }
512 }
513 if (psz && csz)
514 {
515 *(psz + ret) = '\0';
516 ret++;
517 }
518 else
519 ret++;
520 TRACE("Returning %s\n", debugstr_a(psz));
521 return ret;
522}
static struct list oidInfo
Definition: oid.c:1206
static DWORD CRYPT_AddPrefixA(LPCSTR prefix, LPSTR psz, DWORD csz)
Definition: str.c:396
static DWORD quote_rdn_value_to_str_a(DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, LPSTR psz, DWORD csz)
Definition: str.c:179
static const WCHAR commaSep[]
Definition: main.c:522
if(dx< 0)
Definition: linetemp.h:194
static LPCSTR DWORD dwStrType
Definition: str.c:196
LPSTR pszObjId
Definition: wincrypt.h:265
Character const *const prefix
Definition: tempnam.cpp:195
static void reverse(int *pidx, int cch)
Definition: bidi.c:1153
#define CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG
Definition: wincrypt.h:3652
#define CERT_NAME_STR_NO_QUOTING_FLAG
Definition: wincrypt.h:3647
#define CERT_X500_NAME_STR
Definition: wincrypt.h:3644
#define CERT_NAME_STR_NO_PLUS_FLAG
Definition: wincrypt.h:3646
#define CERT_NAME_STR_SEMICOLON_FLAG
Definition: wincrypt.h:3645
#define CRYPT_RDN_ATTR_OID_GROUP_ID
Definition: wincrypt.h:1941
#define CERT_NAME_STR_CRLF_FLAG
Definition: wincrypt.h:3648
#define CERT_NAME_STR_REVERSE_FLAG
Definition: wincrypt.h:3650
#define CERT_OID_NAME_STR
Definition: wincrypt.h:3643

Referenced by _test_name_blob(), and get_security_cert_struct().

◆ CertNameToStrW()

WINCRYPT32API DWORD WINAPI CertNameToStrW ( DWORD  dwCertEncodingType,
PCERT_NAME_BLOB  pName,
DWORD  dwStrType,
LPWSTR  psz,
DWORD  csz 
)

Definition at line 702 of file str.c.

704{
705 BOOL ret;
706
707 TRACE("(%d, %p, %08x, %p, %d)\n", dwCertEncodingType, pName, dwStrType,
708 psz, csz);
709
710 ret = cert_name_to_str_with_indent(dwCertEncodingType, 0, pName, dwStrType,
711 psz, csz);
712 TRACE("Returning %s\n", debugstr_w(psz));
713 return ret;
714}

Referenced by blob_to_str(), CertGetNameStringW(), compare_cert_by_name_str(), and field_format_detailed_cert_name().

◆ CertOIDToAlgId()

WINCRYPT32API DWORD WINAPI CertOIDToAlgId ( LPCSTR  pszObjId)

◆ CertOpenStore()

WINCRYPT32API HCERTSTORE WINAPI CertOpenStore ( LPCSTR  lpszStoreProvider,
DWORD  dwEncodingType,
HCRYPTPROV_LEGACY  hCryptProv,
DWORD  dwFlags,
const void pvPara 
)

Definition at line 815 of file store.c.

818{
820 StoreOpenFunc openFunc = NULL;
821
822 TRACE("(%s, %08x, %08lx, %08x, %p)\n", debugstr_a(lpszStoreProvider),
823 dwMsgAndCertEncodingType, hCryptProv, dwFlags, pvPara);
824
825 if (IS_INTOID(lpszStoreProvider))
826 {
827 switch (LOWORD(lpszStoreProvider))
828 {
830 openFunc = CRYPT_MsgOpenStore;
831 break;
833 openFunc = CRYPT_MemOpenStore;
834 break;
836 openFunc = CRYPT_FileOpenStore;
837 break;
839 openFunc = CRYPT_PKCSOpenStore;
840 break;
842 openFunc = CRYPT_SerializedOpenStore;
843 break;
845 openFunc = CRYPT_RegOpenStore;
846 break;
848 openFunc = CRYPT_FileNameOpenStoreA;
849 break;
851 openFunc = CRYPT_FileNameOpenStoreW;
852 break;
854 openFunc = CRYPT_CollectionOpenStore;
855 break;
857 openFunc = CRYPT_SysOpenStoreA;
858 break;
860 openFunc = CRYPT_SysOpenStoreW;
861 break;
863 openFunc = CRYPT_SysRegOpenStoreA;
864 break;
866 openFunc = CRYPT_SysRegOpenStoreW;
867 break;
869 openFunc = CRYPT_PhysOpenStoreW;
870 break;
871 default:
872 if (LOWORD(lpszStoreProvider))
873 FIXME("unimplemented type %d\n", LOWORD(lpszStoreProvider));
874 }
875 }
876 else if (!strcasecmp(lpszStoreProvider, sz_CERT_STORE_PROV_MEMORY))
877 openFunc = CRYPT_MemOpenStore;
878 else if (!strcasecmp(lpszStoreProvider, sz_CERT_STORE_PROV_FILENAME_W))
879 openFunc = CRYPT_FileOpenStore;
880 else if (!strcasecmp(lpszStoreProvider, sz_CERT_STORE_PROV_SYSTEM))
881 openFunc = CRYPT_SysOpenStoreW;
882 else if (!strcasecmp(lpszStoreProvider, sz_CERT_STORE_PROV_PKCS7))
883 openFunc = CRYPT_PKCSOpenStore;
884 else if (!strcasecmp(lpszStoreProvider, sz_CERT_STORE_PROV_SERIALIZED))
885 openFunc = CRYPT_SerializedOpenStore;
886 else if (!strcasecmp(lpszStoreProvider, sz_CERT_STORE_PROV_COLLECTION))
887 openFunc = CRYPT_CollectionOpenStore;
888 else if (!strcasecmp(lpszStoreProvider, sz_CERT_STORE_PROV_SYSTEM_REGISTRY))
889 openFunc = CRYPT_SysRegOpenStoreW;
890 else
891 {
892 FIXME("unimplemented type %s\n", lpszStoreProvider);
893 openFunc = NULL;
894 }
895
896 if (!openFunc)
897 hcs = CRYPT_ProvOpenStore(lpszStoreProvider, dwMsgAndCertEncodingType,
898 hCryptProv, dwFlags, pvPara);
899 else
900 hcs = openFunc(hCryptProv, dwFlags, pvPara);
901 return hcs;
902}
WINECRYPT_CERTSTORE * CRYPT_CollectionOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
WINECRYPT_CERTSTORE * CRYPT_ProvOpenStore(LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN
Definition: provstore.c:375
WINECRYPT_CERTSTORE * CRYPT_FileNameOpenStoreW(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN
Definition: filestore.c:292
struct WINE_CRYPTCERTSTORE *(* StoreOpenFunc)(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
WINECRYPT_CERTSTORE * CRYPT_FileNameOpenStoreA(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN
Definition: filestore.c:383
WINECRYPT_CERTSTORE * CRYPT_FileOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN
Definition: filestore.c:242
WINECRYPT_CERTSTORE * CRYPT_RegOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara) DECLSPEC_HIDDEN
Definition: regstore.c:512
#define IS_INTOID(x)
static WINECRYPT_CERTSTORE * CRYPT_SysOpenStoreW(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:544
static WINECRYPT_CERTSTORE * CRYPT_PKCSOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:735
static WINECRYPT_CERTSTORE * CRYPT_SysRegOpenStoreW(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:409
static WINECRYPT_CERTSTORE * CRYPT_SerializedOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:776
static WINECRYPT_CERTSTORE * CRYPT_PhysOpenStoreW(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:804
static WINECRYPT_CERTSTORE * CRYPT_MemOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:375
static WINECRYPT_CERTSTORE * CRYPT_SysOpenStoreA(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:616
static WINECRYPT_CERTSTORE * CRYPT_SysRegOpenStoreA(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:515
static WINECRYPT_CERTSTORE * CRYPT_MsgOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:657
#define strcasecmp
Definition: fake.h:9
#define LOWORD(l)
Definition: pedump.c:82
#define sz_CERT_STORE_PROV_SERIALIZED
Definition: wincrypt.h:2482
#define CERT_STORE_PROV_PKCS7
Definition: wincrypt.h:2458
#define sz_CERT_STORE_PROV_FILENAME_W
Definition: wincrypt.h:2477
#define CERT_STORE_PROV_COLLECTION
Definition: wincrypt.h:2465
#define CERT_STORE_PROV_FILENAME_A
Definition: wincrypt.h:2460
#define sz_CERT_STORE_PROV_COLLECTION
Definition: wincrypt.h:2483
#define sz_CERT_STORE_PROV_MEMORY
Definition: wincrypt.h:2476
#define sz_CERT_STORE_PROV_SYSTEM_REGISTRY
Definition: wincrypt.h:2485
#define sz_CERT_STORE_PROV_SYSTEM
Definition: wincrypt.h:2480
#define CERT_STORE_PROV_SERIALIZED
Definition: wincrypt.h:2459
#define CERT_STORE_PROV_SYSTEM_REGISTRY_W
Definition: wincrypt.h:2467
#define CERT_STORE_PROV_FILENAME_W
Definition: wincrypt.h:2461
#define CERT_STORE_PROV_SYSTEM_A
Definition: wincrypt.h:2462
#define sz_CERT_STORE_PROV_PKCS7
Definition: wincrypt.h:2481
#define CERT_STORE_PROV_MEMORY
Definition: wincrypt.h:2455
#define CERT_STORE_PROV_REG
Definition: wincrypt.h:2457
#define CERT_STORE_PROV_FILE
Definition: wincrypt.h:2456
#define CERT_STORE_PROV_MSG
Definition: wincrypt.h:2454
#define CERT_STORE_PROV_SYSTEM_W
Definition: wincrypt.h:2463
#define CERT_STORE_PROV_SYSTEM_REGISTRY_A
Definition: wincrypt.h:2466
#define CERT_STORE_PROV_PHYSICAL_W
Definition: wincrypt.h:2469

Referenced by cert_mgr_do_export(), CertOpenSystemStoreA(), CertOpenSystemStoreW(), CertRegisterSystemStore(), CertUnregisterSystemStore(), check_ssl_policy(), choose_store_for_cert(), create_root_store(), CRYPT_BuildCandidateChainFromCert(), CRYPT_CreateAny(), CRYPT_CreateChainEngine(), CRYPT_CreateContext(), CRYPT_FileControl(), CRYPT_FileNameOpenStoreW(), CRYPT_FileOpenStore(), CRYPT_FindIssuer(), CRYPT_MsgOpenStore(), CRYPT_ProvOpenStore(), CRYPT_QueryContextObject(), CRYPT_QueryMessageObject(), CRYPT_QuerySerializedStoreFromBlob(), CRYPT_QuerySerializedStoreFromFile(), CRYPT_RegControl(), CRYPT_RegOpenStore(), CRYPT_SerializedOpenStore(), CRYPT_SysOpenStoreW(), CRYPTDLG_IsCertAllowed(), CRYPTDLG_MakeEngine(), CryptGetMessageCertificates(), CryptMsgGetAndVerifySigner(), CryptVerifyDetachedMessageSignature(), CryptVerifyMessageSignature(), getChain(), import_crl(), import_ctl(), read_trusted_roots_from_known_locations(), save_cert_as_cms(), save_pfx(), show_cert_stores(), SOFTPUB_CreateStoreFromMessage(), SoftpubAuthenticode(), test_CERT_CHAIN_PARA_cbSize(), test_crypt_ui_wiz_import(), test_I_UpdateStore(), test_msg_get_and_verify_signer(), test_utils(), test_verifyRevocation(), testAddCert(), testAddCertificateLink(), testAddCRL(), testAddCTLToStore(), testAddSerialized(), testCertOpenSystemStore(), testCertRegisterSystemStore(), testCloseStore(), testCollectionStore(), testCreateCertChainEngine(), testDupCert(), testEmptyStore(), testFileNameStore(), testFileStore(), testFindCert(), testFindCRL(), testGetCertChain(), testGetCRLFromStore(), testGetIssuerCert(), testGetSubjectCert(), testIsValidCRLForCert(), testLinkCert(), testMemStore(), testMessageStore(), testRegStore(), testRegStoreSavedCerts(), testSerializedStore(), testStoreProperty(), testStoresInCollection(), testSystemRegStore(), testSystemStore(), testVerifyRevocation(), and WINTRUST_CreateChainForSigner().

◆ CertOpenSystemStoreA()

WINCRYPT32API HCERTSTORE WINAPI CertOpenSystemStoreA ( HCRYPTPROV_LEGACY  hProv,
LPCSTR  szSubSystemProtocol 
)

Definition at line 904 of file store.c.

906{
907 if (!szSubSystemProtocol)
908 {
910 return 0;
911 }
913 CERT_SYSTEM_STORE_CURRENT_USER, szSubSystemProtocol);
914}
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:815

Referenced by CertAddEncodedCertificateToSystemStoreA(), testAddCertificateLink(), and testCollectionStore().

◆ CertOpenSystemStoreW()

WINCRYPT32API HCERTSTORE WINAPI CertOpenSystemStoreW ( HCRYPTPROV_LEGACY  hProv,
LPCWSTR  szSubSystemProtocol 
)

Definition at line 916 of file store.c.

918{
919 if (!szSubSystemProtocol)
920 {
922 return 0;
923 }
925 CERT_SYSTEM_STORE_CURRENT_USER, szSubSystemProtocol);
926}

Referenced by CertAddEncodedCertificateToSystemStoreW(), CRYPT_CheckRestrictedRoot(), selected_item_to_store(), testCertOpenSystemStore(), and testStoreProperty().

◆ CertRDNValueToStrA()

WINCRYPT32API DWORD WINAPI CertRDNValueToStrA ( DWORD  dwValueType,
PCERT_RDN_VALUE_BLOB  pValue,
LPSTR  psz,
DWORD  csz 
)

Definition at line 33 of file str.c.

35{
36 DWORD ret = 0, len;
37
38 TRACE("(%d, %p, %p, %d)\n", dwValueType, pValue, psz, csz);
39
40 switch (dwValueType)
41 {
43 break;
52 len = pValue->cbData;
53 if (!psz || !csz)
54 ret = len;
55 else
56 {
57 DWORD chars = min(len, csz - 1);
58
59 if (chars)
60 {
61 memcpy(psz, pValue->pbData, chars);
62 ret += chars;
63 csz -= chars;
64 }
65 }
66 break;
70 pValue->cbData / sizeof(WCHAR), NULL, 0, NULL, NULL);
71 if (!psz || !csz)
72 ret = len;
73 else
74 {
75 DWORD chars = min(pValue->cbData / sizeof(WCHAR), csz - 1);
76
77 if (chars)
78 {
80 chars, psz, csz - 1, NULL, NULL);
81 csz -= ret;
82 }
83 }
84 break;
85 default:
86 FIXME("string type %d unimplemented\n", dwValueType);
87 }
88 if (psz && csz)
89 {
90 *(psz + ret) = '\0';
91 csz--;
92 ret++;
93 }
94 else
95 ret++;
96 TRACE("returning %d (%s)\n", ret, debugstr_a(psz));
97 return ret;
98}
PWCHAR pValue
#define CERT_RDN_UTF8_STRING
Definition: wincrypt.h:2940
#define CERT_RDN_IA5_STRING
Definition: wincrypt.h:2931
#define CERT_RDN_GENERAL_STRING
Definition: wincrypt.h:2935
#define CERT_RDN_PRINTABLE_STRING
Definition: wincrypt.h:2927
#define CERT_RDN_VISIBLE_STRING
Definition: wincrypt.h:2933
#define CERT_RDN_VIDEOTEX_STRING
Definition: wincrypt.h:2930
#define CERT_RDN_NUMERIC_STRING
Definition: wincrypt.h:2926
#define CERT_RDN_TELETEX_STRING
Definition: wincrypt.h:2928
#define CERT_RDN_BMP_STRING
Definition: wincrypt.h:2938
#define CERT_RDN_ANY_TYPE
Definition: wincrypt.h:2923
#define CERT_RDN_GRAPHIC_STRING
Definition: wincrypt.h:2932
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

Referenced by get_cert_common_name().

◆ CertRDNValueToStrW()

WINCRYPT32API DWORD WINAPI CertRDNValueToStrW ( DWORD  dwValueType,
PCERT_RDN_VALUE_BLOB  pValue,
LPWSTR  psz,
DWORD  csz 
)

Definition at line 100 of file str.c.

102{
103 DWORD ret = 0, len, i, strLen;
104
105 TRACE("(%d, %p, %p, %d)\n", dwValueType, pValue, psz, csz);
106
107 switch (dwValueType)
108 {
110 break;
119 len = pValue->cbData;
120 if (!psz || !csz)
121 ret = len;
122 else
123 {
124 WCHAR *ptr = psz;
125
126 for (i = 0; i < pValue->cbData && ptr - psz < csz; ptr++, i++)
127 *ptr = pValue->pbData[i];
128 ret = ptr - psz;
129 }
130 break;
133 strLen = len = pValue->cbData / sizeof(WCHAR);
134 if (!psz || !csz)
135 ret = len;
136 else
137 {
138 WCHAR *ptr = psz;
139
140 for (i = 0; i < strLen && ptr - psz < csz; ptr++, i++)
141 *ptr = ((LPCWSTR)pValue->pbData)[i];
142 ret = ptr - psz;
143 }
144 break;
145 default:
146 FIXME("string type %d unimplemented\n", dwValueType);
147 }
148 if (psz && csz)
149 {
150 *(psz + ret) = '\0';
151 csz--;
152 ret++;
153 }
154 else
155 ret++;
156 TRACE("returning %d (%s)\n", ret, debugstr_w(psz));
157 return ret;
158}
static PVOID ptr
Definition: dispmode.c:27

Referenced by cert_get_name_from_rdn_attr(), CertGetNameStringW(), and get_cps_str_from_qualifier().

◆ CertRegisterPhysicalStore()

WINCRYPT32API BOOL WINAPI CertRegisterPhysicalStore ( const void pvSystemStore,
DWORD  dwFlags,
LPCWSTR  pwszStoreName,
PCERT_PHYSICAL_STORE_INFO  pStoreInfo,
void pvReserved 
)

Definition at line 1429 of file store.c.

1431{
1433 FIXME("(%p, %08x, %s, %p, %p): stub\n", pvSystemStore, dwFlags,
1434 debugstr_w(pwszStoreName), pStoreInfo, pvReserved);
1435 else
1436 FIXME("(%s, %08x, %s, %p, %p): stub\n", debugstr_w(pvSystemStore),
1437 dwFlags, debugstr_w(pwszStoreName), pStoreInfo, pvReserved);
1438 return FALSE;
1439}

◆ CertRegisterSystemStore()

WINCRYPT32API BOOL WINAPI CertRegisterSystemStore ( const void store,
DWORD  flags,
CERT_SYSTEM_STORE_INFO info,
void reserved 
)

◆ CertRemoveEnhancedKeyUsageIdentifier()

WINCRYPT32API BOOL WINAPI CertRemoveEnhancedKeyUsageIdentifier ( PCCERT_CONTEXT  pCertContext,
LPCSTR  pszUsageIdentifier 
)

Definition at line 3063 of file cert.c.

3065{
3066 BOOL ret;
3067 DWORD size;
3069
3070 TRACE("(%p, %s)\n", pCertContext, debugstr_a(pszUsageIdentifier));
3071
3072 size = sizeof(usage);
3073 ret = CertGetEnhancedKeyUsage(pCertContext,
3075 if (!ret && GetLastError() == ERROR_MORE_DATA)
3076 {
3078
3079 if (pUsage)
3080 {
3081 ret = CertGetEnhancedKeyUsage(pCertContext,
3083 if (ret)
3084 {
3085 if (pUsage->cUsageIdentifier)
3086 {
3087 DWORD i;
3088 BOOL found = FALSE;
3089
3090 for (i = 0; i < pUsage->cUsageIdentifier; i++)
3091 {
3092 if (!strcmp(pUsage->rgpszUsageIdentifier[i],
3093 pszUsageIdentifier))
3094 found = TRUE;
3095 if (found && i < pUsage->cUsageIdentifier - 1)
3096 pUsage->rgpszUsageIdentifier[i] =
3097 pUsage->rgpszUsageIdentifier[i + 1];
3098 }
3099 pUsage->cUsageIdentifier--;
3100 /* Remove the usage if it's empty */
3101 if (pUsage->cUsageIdentifier)
3102 ret = CertSetEnhancedKeyUsage(pCertContext, pUsage);
3103 else
3104 ret = CertSetEnhancedKeyUsage(pCertContext, NULL);
3105 }
3106 }
3107 CryptMemFree(pUsage);
3108 }
3109 else
3110 ret = FALSE;
3111 }
3112 else
3113 {
3114 /* it fit in an empty usage, therefore there's nothing to remove */
3115 ret = TRUE;
3116 }
3117 return ret;
3118}

Referenced by testKeyUsage().

◆ CertRemoveStoreFromCollection()

WINCRYPT32API void WINAPI CertRemoveStoreFromCollection ( HCERTSTORE  hCollectionStore,
HCERTSTORE  hSiblingStore 
)

Definition at line 556 of file collectionstore.c.

558{
559 WINE_COLLECTIONSTORE *collection = hCollectionStore;
560 WINECRYPT_CERTSTORE *sibling = hSiblingStore;
562
563 TRACE("(%p, %p)\n", hCollectionStore, hSiblingStore);
564
565 if (!collection || !sibling)
566 return;
567 if (collection->hdr.dwMagic != WINE_CRYPTCERTSTORE_MAGIC)
568 {
570 return;
571 }
572 if (collection->hdr.type != StoreTypeCollection)
573 return;
574 if (sibling->dwMagic != WINE_CRYPTCERTSTORE_MAGIC)
575 {
577 return;
578 }
581 {
582 if (store->store == sibling)
583 {
584 list_remove(&store->entry);
585 CertCloseStore(store->store, 0);
586 CryptMemFree(store);
587 break;
588 }
589 }
591}
static void list_remove(struct list_entry *entry)
Definition: list.h:90
struct list entry
WINECRYPT_CERTSTORE * store

Referenced by testCollectionStore().

◆ CertResyncCertificateChainEngine()

WINCRYPT32API BOOL WINAPI CertResyncCertificateChainEngine ( HCERTCHAINENGINE  hChainEngine)

◆ CertSaveStore()

WINCRYPT32API BOOL WINAPI CertSaveStore ( HCERTSTORE  hCertStore,
DWORD  dwMsgAndCertEncodingType,
DWORD  dwSaveAs,
DWORD  dwSaveTo,
void pvSaveToPara,
DWORD  dwFlags 
)

Definition at line 895 of file serialize.c.

897{
898 BOOL (*saveFunc)(HCERTSTORE, DWORD, void *);
899 void *handle;
900 BOOL ret, closeFile = TRUE;
901
902 TRACE("(%p, %08x, %d, %d, %p, %08x)\n", hCertStore,
903 dwMsgAndCertEncodingType, dwSaveAs, dwSaveTo, pvSaveToPara, dwFlags);
904
905 switch (dwSaveAs)
906 {
908 if (dwSaveTo == CERT_STORE_SAVE_TO_MEMORY)
909 saveFunc = CRYPT_SaveSerializedToMem;
910 else
912 break;
914 if (dwSaveTo == CERT_STORE_SAVE_TO_MEMORY)
915 saveFunc = CRYPT_SavePKCSToMem;
916 else
917 saveFunc = CRYPT_SavePKCSToFile;
918 break;
919 default:
920 WARN("unimplemented for %d\n", dwSaveAs);
922 return FALSE;
923 }
924 switch (dwSaveTo)
925 {
927 handle = pvSaveToPara;
928 closeFile = FALSE;
929 break;
931 handle = CreateFileA(pvSaveToPara, GENERIC_WRITE, 0, NULL,
932 CREATE_ALWAYS, 0, NULL);
933 break;
935 handle = CreateFileW(pvSaveToPara, GENERIC_WRITE, 0, NULL,
936 CREATE_ALWAYS, 0, NULL);
937 break;
939 handle = pvSaveToPara;
940 break;
941 default:
942 WARN("unimplemented for %d\n", dwSaveTo);
944 return FALSE;
945 }
946 ret = saveFunc(hCertStore, dwMsgAndCertEncodingType, handle);
947 if (closeFile)
949 TRACE("returning %d\n", ret);
950 return ret;
951}
#define CloseHandle
Definition: compat.h:739
#define CreateFileA(a, b, c, d, e, f, g)
Definition: compat.h:740
#define CreateFileW
Definition: compat.h:741
#define CREATE_ALWAYS
Definition: disk.h:72
#define BOOL
Definition: nt_native.h:43
#define GENERIC_WRITE
Definition: nt_native.h:90
static BOOL CRYPT_SaveSerializedToFile(HCERTSTORE store, DWORD dwMsgAndCertEncodingType, void *handle)
Definition: serialize.c:818
static BOOL CRYPT_SaveSerializedToMem(HCERTSTORE store, DWORD dwMsgAndCertEncodingType, void *handle)
Definition: serialize.c:861
static BOOL CRYPT_SavePKCSToMem(HCERTSTORE store, DWORD dwMsgAndCertEncodingType, void *handle)
Definition: serialize.c:691
static BOOL CRYPT_SavePKCSToFile(HCERTSTORE store, DWORD dwMsgAndCertEncodingType, void *handle)
Definition: serialize.c:789
#define CERT_STORE_SAVE_AS_STORE
Definition: wincrypt.h:2793
void * HCERTSTORE
Definition: wincrypt.h:60
#define CERT_STORE_SAVE_AS_PKCS7
Definition: wincrypt.h:2794
#define CERT_STORE_SAVE_TO_MEMORY
Definition: wincrypt.h:2797
#define CERT_STORE_SAVE_TO_FILE
Definition: wincrypt.h:2796
#define CERT_STORE_SAVE_TO_FILENAME_A
Definition: wincrypt.h:2798
#define CERT_STORE_SAVE_TO_FILENAME_W
Definition: wincrypt.h:2799

Referenced by compareStore(), CRYPT_FileCloseStore(), CRYPT_FileControl(), save_serialized_store(), and save_store_as_cms().

◆ CertSerializeCertificateStoreElement()

WINCRYPT32API BOOL WINAPI CertSerializeCertificateStoreElement ( PCCERT_CONTEXT  pCertContext,
DWORD  dwFlags,
BYTE pbElement,
DWORD pcbElement 
)

Definition at line 144 of file serialize.c.

146{
147 return CRYPT_SerializeStoreElement(pCertContext,
148 pCertContext->pbCertEncoded, pCertContext->cbCertEncoded,
149 CERT_CERT_PROP_ID, pCertInterface, dwFlags, FALSE, pbElement, pcbElement);
150}
static BOOL CRYPT_SerializeStoreElement(const void *context, const BYTE *encodedContext, DWORD cbEncodedContext, DWORD contextPropID, const WINE_CONTEXT_INTERFACE *contextInterface, DWORD dwFlags, BOOL omitHashes, BYTE *pbElement, DWORD *pcbElement)
Definition: serialize.c:42
BYTE * pbCertEncoded
Definition: wincrypt.h:489
DWORD cbCertEncoded
Definition: wincrypt.h:490

Referenced by testAddCertificateLink(), and testMemStore().

◆ CertSerializeCRLStoreElement()

WINCRYPT32API BOOL WINAPI CertSerializeCRLStoreElement ( PCCRL_CONTEXT  pCrlContext,
DWORD  dwFlags,
BYTE pbElement,
DWORD pcbElement 
)

Definition at line 152 of file serialize.c.

154{
155 return CRYPT_SerializeStoreElement(pCrlContext,
156 pCrlContext->pbCrlEncoded, pCrlContext->cbCrlEncoded,
157 CERT_CRL_PROP_ID, pCRLInterface, dwFlags, FALSE, pbElement, pcbElement);
158}
DWORD cbCrlEncoded
Definition: wincrypt.h:733
BYTE * pbCrlEncoded
Definition: wincrypt.h:732

◆ CertSerializeCTLStoreElement()

WINCRYPT32API BOOL WINAPI CertSerializeCTLStoreElement ( PCCTL_CONTEXT  pCtlContext,
DWORD  dwFlags,
BYTE pbElement,
DWORD pcbElement 
)

Definition at line 160 of file serialize.c.

162{
163 return CRYPT_SerializeStoreElement(pCtlContext,
164 pCtlContext->pbCtlEncoded, pCtlContext->cbCtlEncoded,
165 CERT_CTL_PROP_ID, pCTLInterface, dwFlags, FALSE, pbElement, pcbElement);
166}

◆ CertSetCertificateContextProperty()

WINCRYPT32API BOOL WINAPI CertSetCertificateContextProperty ( PCCERT_CONTEXT  pCertContext,
DWORD  dwPropId,
DWORD  dwFlags,
const void pvData 
)

Definition at line 799 of file cert.c.

801{
802 BOOL ret;
803
804 TRACE("(%p, %d, %08x, %p)\n", pCertContext, dwPropId, dwFlags, pvData);
805
806 /* Handle special cases for "read-only"/invalid prop IDs. Windows just
807 * crashes on most of these, I'll be safer.
808 */
809 switch (dwPropId)
810 {
811 case 0:
814 case CERT_CRL_PROP_ID:
815 case CERT_CTL_PROP_ID:
817 return FALSE;
818 }
819 ret = CertContext_SetProperty(cert_from_ptr(pCertContext), dwPropId, dwFlags,
820 pvData);
821 TRACE("returning %d\n", ret);
822 return ret;
823}
static BOOL CertContext_SetProperty(cert_t *cert, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: cert.c:678

Referenced by CertContext_SetKeyProvInfo(), CertSetEnhancedKeyUsage(), CryptAcquireCertificatePrivateKey(), find_matching_provider(), save_pfx(), set_cert_string_property(), test_sign_message(), testAcquireCertPrivateKey(), testAcquireSecurityContext(), testAddCert(), testAddCertificateLink(), and testCertProperties().

◆ CertSetCRLContextProperty()

WINCRYPT32API BOOL WINAPI CertSetCRLContextProperty ( PCCRL_CONTEXT  pCRLContext,
DWORD  dwPropId,
DWORD  dwFlags,
const void pvData 
)

Definition at line 566 of file crl.c.

568{
569 BOOL ret;
570
571 TRACE("(%p, %d, %08x, %p)\n", pCRLContext, dwPropId, dwFlags, pvData);
572
573 /* Handle special cases for "read-only"/invalid prop IDs. Windows just
574 * crashes on most of these, I'll be safer.
575 */
576 switch (dwPropId)
577 {
578 case 0:
581 case CERT_CRL_PROP_ID:
582 case CERT_CTL_PROP_ID:
584 return FALSE;
585 }
586 ret = CRLContext_SetProperty(crl_from_ptr(pCRLContext), dwPropId, dwFlags, pvData);
587 TRACE("returning %d\n", ret);
588 return ret;
589}
static BOOL CRLContext_SetProperty(crl_t *crl, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: crl.c:511

Referenced by testCRLProperties().

◆ CertSetCTLContextProperty()

WINCRYPT32API BOOL WINAPI CertSetCTLContextProperty ( PCCTL_CONTEXT  pCTLContext,
DWORD  dwPropId,
DWORD  dwFlags,
const void pvData 
)

Definition at line 685 of file ctl.c.

687{
688 BOOL ret;
689
690 TRACE("(%p, %d, %08x, %p)\n", pCTLContext, dwPropId, dwFlags, pvData);
691
692 /* Handle special cases for "read-only"/invalid prop IDs. Windows just
693 * crashes on most of these, I'll be safer.
694 */
695 switch (dwPropId)
696 {
697 case 0:
700 case CERT_CRL_PROP_ID:
701 case CERT_CTL_PROP_ID:
703 return FALSE;
704 }
705 ret = CTLContext_SetProperty(ctl_from_ptr(pCTLContext), dwPropId, dwFlags, pvData);
706 TRACE("returning %d\n", ret);
707 return ret;
708}
static BOOL CTLContext_SetProperty(ctl_t *ctl, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: ctl.c:630

◆ CertSetEnhancedKeyUsage()

WINCRYPT32API BOOL WINAPI CertSetEnhancedKeyUsage ( PCCERT_CONTEXT  pCertContext,
PCERT_ENHKEY_USAGE  pUsage 
)

Definition at line 2952 of file cert.c.

2954{
2955 BOOL ret;
2956
2957 TRACE("(%p, %p)\n", pCertContext, pUsage);
2958
2959 if (pUsage)
2960 {
2961 CRYPT_DATA_BLOB blob = { 0, NULL };
2962
2964 pUsage, CRYPT_ENCODE_ALLOC_FLAG, NULL, &blob.pbData, &blob.cbData);
2965 if (ret)
2966 {
2969 LocalFree(blob.pbData);
2970 }
2971 }
2972 else
2975 return ret;
2976}
BOOL WINAPI CertSetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: cert.c:799

Referenced by apply_general_changes(), CertAddEnhancedKeyUsageIdentifier(), CertRemoveEnhancedKeyUsageIdentifier(), and testKeyUsage().

◆ CertSetStoreProperty()

WINCRYPT32API BOOL WINAPI CertSetStoreProperty ( HCERTSTORE  hCertStore,
DWORD  dwPropId,
DWORD  dwFlags,
const void pvData 
)

Definition at line 1236 of file store.c.

1238{
1239 WINECRYPT_CERTSTORE *store = hCertStore;
1240 BOOL ret = FALSE;
1241
1242 TRACE("(%p, %d, %08x, %p)\n", hCertStore, dwPropId, dwFlags, pvData);
1243
1244 if (!store->properties)
1246 switch (dwPropId)
1247 {
1250 break;
1251 default:
1252 if (pvData)
1253 {
1254 const CRYPT_DATA_BLOB *blob = pvData;
1255
1257 blob->pbData, blob->cbData);
1258 }
1259 else
1260 {
1262 ret = TRUE;
1263 }
1264 }
1265 return ret;
1266}
BOOL ContextPropertyList_SetProperty(CONTEXT_PROPERTY_LIST *list, DWORD id, const BYTE *pbData, size_t cbData) DECLSPEC_HIDDEN
Definition: proplist.c:95
void ContextPropertyList_RemoveProperty(CONTEXT_PROPERTY_LIST *list, DWORD id) DECLSPEC_HIDDEN
Definition: proplist.c:149
CONTEXT_PROPERTY_LIST * ContextPropertyList_Create(void) DECLSPEC_HIDDEN
Definition: proplist.c:43

Referenced by testStoreProperty().

◆ CertStrToNameA()

WINCRYPT32API BOOL WINAPI CertStrToNameA ( DWORD  dwCertEncodingType,
LPCSTR  pszX500,
DWORD  dwStrType,
void pvReserved,
BYTE pbEncoded,
DWORD pcbEncoded,
LPCSTR ppszError 
)

Definition at line 716 of file str.c.

719{
720 BOOL ret;
721 int len;
722
723 TRACE("(%08x, %s, %08x, %p, %p, %p, %p)\n", dwCertEncodingType,
725 ppszError);
726
728 if (len)
729 {
730 LPWSTR x500, errorStr;
731
732 if ((x500 = CryptMemAlloc(len * sizeof(WCHAR))))
733 {
734 MultiByteToWideChar(CP_ACP, 0, pszX500, -1, x500, len);
735 ret = CertStrToNameW(dwCertEncodingType, x500, dwStrType,
737 ppszError ? (LPCWSTR *)&errorStr : NULL);
738 if (ppszError)
739 {
740 if (!ret)
741 {
742 LONG i;
743
745 for (i = 0; i < errorStr - x500; i++)
747 }
748 else
749 *ppszError = NULL;
750 }
751 CryptMemFree(x500);
752 }
753 else
754 {
756 ret = FALSE;
757 }
758 }
759 else
760 {
762 if (ppszError)
764 ret = FALSE;
765 }
766 return ret;
767}
BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500, DWORD dwStrType, void *pvReserved, BYTE *pbEncoded, DWORD *pcbEncoded, LPCWSTR *ppszError)
Definition: str.c:1024
#define MultiByteToWideChar
Definition: compat.h:110
LPSTR WINAPI CharNextA(const char *ptr)
Definition: string.c:1107
static LPCSTR pszX500
Definition: str.c:196
static LPCSTR DWORD void BYTE DWORD LPCSTR * ppszError
Definition: str.c:197
static LPCSTR DWORD void BYTE DWORD * pcbEncoded
Definition: str.c:197
#define CRYPT_E_INVALID_X500_STRING
Definition: winerror.h:4442

◆ CertStrToNameW()

WINCRYPT32API BOOL WINAPI CertStrToNameW ( DWORD  dwCertEncodingType,
LPCWSTR  pszX500,
DWORD  dwStrType,
void pvReserved,
BYTE pbEncoded,
DWORD pcbEncoded,
LPCWSTR ppszError 
)

Definition at line 1024 of file str.c.

1027{
1028 CERT_NAME_INFO info = { 0, NULL };
1029 LPCWSTR str;
1030 struct KeynameKeeper keeper;
1031 DWORD i;
1032 BOOL ret = TRUE;
1033
1034 TRACE("(%08x, %s, %08x, %p, %p, %p, %p)\n", dwCertEncodingType,
1036 ppszError);
1037
1039 str = pszX500;
1040 while (str && *str && ret)
1041 {
1042 struct X500TokenW token;
1043
1045 if (ret && token.start)
1046 {
1047 PCCRYPT_OID_INFO keyOID;
1048
1050 keyOID = CryptFindOIDInfo(CRYPT_OID_INFO_NAME_KEY, keeper.keyName,
1052 if (!keyOID)
1053 {
1054 if (ppszError)
1055 *ppszError = token.start;
1057 ret = FALSE;
1058 }
1059 else
1060 {
1061 str = token.end;
1062 while (isspaceW(*str))
1063 str++;
1064 if (*str != '=')
1065 {
1066 if (ppszError)
1067 *ppszError = str;
1069 ret = FALSE;
1070 }
1071 else
1072 {
1073 static const WCHAR commaSep[] = { ',',0 };
1074 static const WCHAR semiSep[] = { ';',0 };
1075 static const WCHAR crlfSep[] = { '\r','\n',0 };
1076 static const WCHAR allSepsWithoutPlus[] = { ',',';','\r','\n',0 };
1077 static const WCHAR allSeps[] = { '+',',',';','\r','\n',0 };
1078 LPCWSTR sep;
1079 WCHAR sep_used;
1080
1081 str++;
1083 sep = commaSep;
1085 sep = semiSep;
1087 sep = crlfSep;
1089 sep = allSepsWithoutPlus;
1090 else
1091 sep = allSeps;
1092 ret = CRYPT_GetNextValueW(str, dwStrType, sep, &sep_used, &token,
1093 ppszError);
1094 if (ret)
1095 {
1096 str = token.end;
1097 /* if token.end points to the separator, skip it */
1098 if (str && sep_used && *str == sep_used) str++;
1099
1100 ret = CRYPT_ValueToRDN(dwCertEncodingType, &info,
1101 keyOID, &token, dwStrType, ppszError);
1102 }
1103 }
1104 }
1105 }
1106 }
1107 CRYPT_FreeKeynameKeeper(&keeper);
1108 if (ret)
1109 {
1110 if (ppszError)
1111 *ppszError = NULL;
1112 ret = CryptEncodeObjectEx(dwCertEncodingType, X509_NAME, &info,
1114 }
1115 for (i = 0; i < info.cRDN; i++)
1116 {
1117 DWORD j;
1118
1119 for (j = 0; j < info.rgRDN[i].cRDNAttr; j++)
1120 LocalFree(info.rgRDN[i].rgRDNAttr[j].Value.pbData);
1121 CryptMemFree(info.rgRDN[i].rgRDNAttr);
1122 }
1123 CryptMemFree(info.rgRDN);
1124 return ret;
1125}
static void CRYPT_FreeKeynameKeeper(struct KeynameKeeper *keeper)
Definition: str.c:782
static BOOL CRYPT_GetNextValueW(LPCWSTR str, DWORD dwFlags, LPCWSTR separators, WCHAR *separator_used, struct X500TokenW *token, LPCWSTR *ppszError)
Definition: str.c:839
static void CRYPT_InitializeKeynameKeeper(struct KeynameKeeper *keeper)
Definition: str.c:776
static void CRYPT_KeynameKeeperFromTokenW(struct KeynameKeeper *keeper, const struct X500TokenW *key)
Definition: str.c:794
static BOOL CRYPT_ValueToRDN(DWORD dwCertEncodingType, PCERT_NAME_INFO info, PCCRYPT_OID_INFO keyOID, struct X500TokenW *value, DWORD dwStrType, LPCWSTR *ppszError)
Definition: str.c:972
static BOOL CRYPT_GetNextKeyW(LPCWSTR str, struct X500TokenW *token, LPCWSTR *ppszError)
Definition: str.c:810
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat token
Definition: glfuncs.h:210
#define isspaceW(n)
Definition: unicode.h:58
const WCHAR * str
#define CRYPT_OID_INFO_NAME_KEY
Definition: wincrypt.h:1956
#define CERT_NAME_STR_COMMA_FLAG
Definition: wincrypt.h:3649

Referenced by CertStrToNameA(), and testGetIssuerCert().

◆ CertUnregisterPhysicalStore()

WINCRYPT32API BOOL WINAPI CertUnregisterPhysicalStore ( const void pvSystemStore,
DWORD  dwFlags,
LPCWSTR  pwszStoreName 
)

Definition at line 1441 of file store.c.

1443{
1444 FIXME("(%p, %08x, %s): stub\n", pvSystemStore, dwFlags, debugstr_w(pwszStoreName));
1445 return TRUE;
1446}

◆ CertUnregisterSystemStore()

WINCRYPT32API BOOL WINAPI CertUnregisterSystemStore ( const void store,
DWORD  flags 
)

Definition at line 1471 of file store.c.

1472{
1473 HCERTSTORE hstore;
1474
1476 {
1477 FIXME("(%p, %08x): flag not supported\n", pvSystemStore, dwFlags);
1478 return FALSE;
1479 }
1480 TRACE("(%s, %08x)\n", debugstr_w(pvSystemStore), dwFlags);
1481
1483 if (hstore == NULL)
1484 return FALSE;
1485
1487 if (hstore == NULL && GetLastError() == 0)
1488 return TRUE;
1489
1490 return FALSE;
1491}
#define CERT_STORE_OPEN_EXISTING_FLAG
Definition: wincrypt.h:2634
#define CERT_STORE_DELETE_FLAG
Definition: wincrypt.h:2624

Referenced by testCertRegisterSystemStore().

◆ CertVerifyCertificateChainPolicy()

WINCRYPT32API BOOL WINAPI CertVerifyCertificateChainPolicy ( LPCSTR  szPolicyOID,
PCCERT_CHAIN_CONTEXT  pChainContext,
PCERT_CHAIN_POLICY_PARA  pPolicyPara,
PCERT_CHAIN_POLICY_STATUS  pPolicyStatus 
)

Definition at line 3716 of file chain.c.

3719{
3720 static HCRYPTOIDFUNCSET set = NULL;
3721 BOOL ret = FALSE;
3723 HCRYPTOIDFUNCADDR hFunc = NULL;
3724
3725 TRACE("(%s, %p, %p, %p)\n", debugstr_a(szPolicyOID), pChainContext,
3726 pPolicyPara, pPolicyStatus);
3727 if (TRACE_ON(chain))
3728 dump_policy_para(pPolicyPara);
3729
3730 if (IS_INTOID(szPolicyOID))
3731 {
3732 switch (LOWORD(szPolicyOID))
3733 {
3735 verifyPolicy = verify_base_policy;
3736 break;
3738 verifyPolicy = verify_authenticode_policy;
3739 break;
3741 verifyPolicy = verify_ssl_policy;
3742 break;
3744 verifyPolicy = verify_basic_constraints_policy;
3745 break;
3747 verifyPolicy = verify_ms_root_policy;
3748 break;
3749 default:
3750 FIXME("unimplemented for %d\n", LOWORD(szPolicyOID));
3751 }
3752 }
3753 if (!verifyPolicy)
3754 {
3755 if (!set)
3759 (void **)&verifyPolicy, &hFunc);
3760 }
3761 if (verifyPolicy)
3762 ret = verifyPolicy(szPolicyOID, pChainContext, pPolicyPara,
3763 pPolicyStatus);
3764 if (hFunc)
3766 TRACE("returning %d (%08x)\n", ret, pPolicyStatus->dwError);
3767 return ret;
3768}
Definition: _set.h:50
static BOOL WINAPI verify_ms_root_policy(LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
Definition: chain.c:3665
static BOOL WINAPI verify_ssl_policy(LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
Definition: chain.c:3458
static BOOL WINAPI verify_basic_constraints_policy(LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
Definition: chain.c:3130
static void dump_policy_para(PCERT_CHAIN_POLICY_PARA para)
Definition: chain.c:3706
static BOOL WINAPI verify_base_policy(LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
Definition: chain.c:2998
static BOOL WINAPI verify_authenticode_policy(LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
Definition: chain.c:3089
BOOL(WINAPI * CertVerifyCertificateChainPolicyFunc)(LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
Definition: chain.c:3702
HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet(LPCSTR pszFuncName, DWORD dwFlags)
Definition: oid.c:114
BOOL WINAPI CryptGetOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCSTR pszOID, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
Definition: oid.c:387
BOOL WINAPI CryptFreeOIDFunctionAddress(HCRYPTOIDFUNCADDR hFuncAddr, DWORD dwFlags)
Definition: oid.c:468
#define CERT_CHAIN_POLICY_MICROSOFT_ROOT
Definition: wincrypt.h:1080
#define CERT_CHAIN_POLICY_BASE
Definition: wincrypt.h:1074
#define CERT_CHAIN_POLICY_BASIC_CONSTRAINTS
Definition: wincrypt.h:1078
#define CERT_CHAIN_POLICY_AUTHENTICODE
Definition: wincrypt.h:1075
#define CERT_CHAIN_POLICY_SSL
Definition: wincrypt.h:1077
#define CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC
Definition: wincrypt.h:2675

Referenced by netconn_verify_cert(), SoftpubAuthenticode(), and WINTRUST_DefaultPolicy().

◆ CertVerifyCRLRevocation()

WINCRYPT32API BOOL WINAPI CertVerifyCRLRevocation ( DWORD  dwCertEncodingType,
PCERT_INFO  pCertId,
DWORD  cCrlInfo,
PCRL_INFO  rgpCrlInfo[] 
)

Definition at line 762 of file crl.c.

764{
765 DWORD i;
767
768 TRACE("(%08x, %p, %d, %p)\n", dwCertEncodingType, pCertId, cCrlInfo,
769 rgpCrlInfo);
770
771 for (i = 0; !entry && i < cCrlInfo; i++)
772 entry = CRYPT_FindCertificateInCRL(pCertId, rgpCrlInfo[i]);
773 return entry == NULL;
774}
Definition: wincrypt.h:496

Referenced by CertVerifySubjectCertificateContext(), and testVerifyCRLRevocation().

◆ CertVerifyCRLTimeValidity()

WINCRYPT32API LONG WINAPI CertVerifyCRLTimeValidity ( LPFILETIME  pTimeToVerify,
PCRL_INFO  pCrlInfo 
)

Definition at line 776 of file crl.c.

778{
779 FILETIME fileTime;
780 LONG ret;
781
782 if (!pTimeToVerify)
783 {
784 GetSystemTimeAsFileTime(&fileTime);
785 pTimeToVerify = &fileTime;
786 }
787 if ((ret = CompareFileTime(pTimeToVerify, &pCrlInfo->ThisUpdate)) >= 0)
788 {
789 ret = CompareFileTime(pTimeToVerify, &pCrlInfo->NextUpdate);
790 if (ret < 0)
791 ret = 0;
792 }
793 return ret;
794}
VOID WINAPI GetSystemTimeAsFileTime(OUT PFILETIME lpFileTime)
Definition: time.c:128
FILETIME NextUpdate
Definition: wincrypt.h:508

Referenced by CertGetCRLFromStore().

◆ CertVerifyCTLUsage()

WINCRYPT32API BOOL WINAPI CertVerifyCTLUsage ( DWORD  dwEncodingType,
DWORD  dwSubjectType,
void pvSubject,
PCTL_USAGE  pSubjectUsage,
DWORD  dwFlags,
PCTL_VERIFY_USAGE_PARA  pVerifyUsagePara,
PCTL_VERIFY_USAGE_STATUS  pVerifyUsageStatus 
)

Definition at line 3667 of file cert.c.

3671{
3672 FIXME("(0x%x, %d, %p, %p, 0x%x, %p, %p): stub\n", dwEncodingType,
3673 dwSubjectType, pvSubject, pSubjectUsage, dwFlags, pVerifyUsagePara,
3674 pVerifyUsageStatus);
3676 return FALSE;
3677}
#define ERROR_CALL_NOT_IMPLEMENTED
Definition: compat.h:102

◆ CertVerifyRevocation()

WINCRYPT32API BOOL WINAPI CertVerifyRevocation ( DWORD  dwEncodingType,
DWORD  dwRevType,
DWORD  cContext,
PVOID  rgpvContext[],
DWORD  dwFlags,
PCERT_REVOCATION_PARA  pRevPara,
PCERT_REVOCATION_STATUS  pRevStatus 
)

Definition at line 1934 of file cert.c.

1937{
1938 BOOL ret;
1939
1940 TRACE("(%08x, %d, %d, %p, %08x, %p, %p)\n", dwEncodingType, dwRevType,
1941 cContext, rgpvContext, dwFlags, pRevPara, pRevStatus);
1942
1943 if (pRevStatus->cbSize != sizeof(OLD_CERT_REVOCATION_STATUS) &&
1944 pRevStatus->cbSize != sizeof(CERT_REVOCATION_STATUS))
1945 {
1947 return FALSE;
1948 }
1949 if (cContext)
1950 {
1951 static HCRYPTOIDFUNCSET set = NULL;
1952 DWORD size;
1953
1954 if (!set)
1956 ret = CryptGetDefaultOIDDllList(set, dwEncodingType, NULL, &size);
1957 if (ret)
1958 {
1959 if (size == 1)
1960 {
1961 /* empty list */
1963 ret = FALSE;
1964 }
1965 else
1966 {
1967 LPWSTR dllList = CryptMemAlloc(size * sizeof(WCHAR)), ptr;
1968
1969 if (dllList)
1970 {
1971 ret = CryptGetDefaultOIDDllList(set, dwEncodingType,
1972 dllList, &size);
1973 if (ret)
1974 {
1975 for (ptr = dllList; ret && *ptr;
1976 ptr += lstrlenW(ptr) + 1)
1977 {
1979 HCRYPTOIDFUNCADDR hFunc;
1980
1982 dwEncodingType, ptr, 0, (void **)&func, &hFunc);
1983 if (ret)
1984 {
1985 ret = func(dwEncodingType, dwRevType, cContext,
1986 rgpvContext, dwFlags, pRevPara, pRevStatus);
1988 }
1989 }
1990 }
1991 CryptMemFree(dllList);
1992 }
1993 else
1994 {
1996 ret = FALSE;
1997 }
1998 }
1999 }
2000 }
2001 else
2002 ret = TRUE;
2003 return ret;
2004}
BOOL(WINAPI * CertVerifyRevocationFunc)(DWORD, DWORD, DWORD, void **, DWORD, PCERT_REVOCATION_PARA, PCERT_REVOCATION_STATUS)
Definition: cert.c:1931
BOOL WINAPI CryptGetDefaultOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCWSTR pwszDll, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
Definition: oid.c:511
BOOL WINAPI CryptGetDefaultOIDDllList(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPWSTR pwszDllList, DWORD *pcchDllList)
Definition: oid.c:193
#define lstrlenW
Definition: compat.h:750
GLenum func
Definition: glext.h:6028
#define CRYPT_OID_VERIFY_REVOCATION_FUNC
Definition: wincrypt.h:2666
#define CRYPT_E_NO_REVOCATION_DLL
Definition: winerror.h:4435

Referenced by CRYPT_VerifyChainRevocation(), test_verifyRevocation(), and testVerifyRevocation().

◆ CertVerifySubjectCertificateContext()

WINCRYPT32API BOOL WINAPI CertVerifySubjectCertificateContext ( PCCERT_CONTEXT  pSubject,
PCCERT_CONTEXT  pIssuer,
DWORD pdwFlags 
)

Definition at line 1845 of file cert.c.

1847{
1848 static const DWORD supportedFlags = CERT_STORE_REVOCATION_FLAG |
1850
1851 if (*pdwFlags & ~supportedFlags)
1852 {
1854 return FALSE;
1855 }
1856 if (*pdwFlags & CERT_STORE_REVOCATION_FLAG)
1857 {
1858 DWORD flags = 0;
1859 PCCRL_CONTEXT crl = CertGetCRLFromStore(pSubject->hCertStore, pSubject,
1860 NULL, &flags);
1861
1862 /* FIXME: what if the CRL has expired? */
1863 if (crl)
1864 {
1866 pSubject->pCertInfo, 1, (PCRL_INFO *)&crl->pCrlInfo))
1867 *pdwFlags &= CERT_STORE_REVOCATION_FLAG;
1868 }
1869 else
1870 *pdwFlags |= CERT_STORE_NO_CRL_FLAG;
1871 }
1872 if (*pdwFlags & CERT_STORE_TIME_VALIDITY_FLAG)
1873 {
1874 if (0 == CertVerifyTimeValidity(NULL, pSubject->pCertInfo))
1875 *pdwFlags &= ~CERT_STORE_TIME_VALIDITY_FLAG;
1876 }
1877 if (*pdwFlags & CERT_STORE_SIGNATURE_FLAG)
1878 {
1880 CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT, (void *)pSubject,
1881 CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT, (void *)pIssuer, 0, NULL))
1882 *pdwFlags &= ~CERT_STORE_SIGNATURE_FLAG;
1883 }
1884 return TRUE;
1885}
LONG WINAPI CertVerifyTimeValidity(LPFILETIME pTimeToVerify, PCERT_INFO pCertInfo)
Definition: cert.c:2158
PCCRL_CONTEXT WINAPI CertGetCRLFromStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pIssuerContext, PCCRL_CONTEXT pPrevCrlContext, DWORD *pdwFlags)
Definition: crl.c:337
BOOL WINAPI CertVerifyCRLRevocation(DWORD dwCertEncodingType, PCERT_INFO pCertId, DWORD cCrlInfo, PCRL_INFO rgpCrlInfo[])
Definition: crl.c:762
GLbitfield flags
Definition: glext.h:7161
#define CERT_STORE_REVOCATION_FLAG
Definition: wincrypt.h:3618
#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT
Definition: wincrypt.h:3627
#define CERT_STORE_NO_CRL_FLAG
Definition: wincrypt.h:3619

Referenced by CertGetIssuerCertificateFromStore(), rdssl_certs_ok(), and testVerifySubjectCert().

◆ CertVerifyTimeValidity()

WINCRYPT32API LONG WINAPI CertVerifyTimeValidity ( LPFILETIME  pTimeToVerify,
PCERT_INFO  pCertInfo 
)

Definition at line 2158 of file cert.c.

2160{
2161 FILETIME fileTime;
2162 LONG ret;
2163
2164 if (!pTimeToVerify)
2165 {
2166 GetSystemTimeAsFileTime(&fileTime);
2167 pTimeToVerify = &fileTime;
2168 }
2169 if ((ret = CompareFileTime(pTimeToVerify, &pCertInfo->NotBefore)) >= 0)
2170 {
2171 ret = CompareFileTime(pTimeToVerify, &pCertInfo->NotAfter);
2172 if (ret < 0)
2173 ret = 0;
2174 }
2175 return ret;
2176}
FILETIME NotBefore
Definition: wincrypt.h:254
FILETIME NotAfter
Definition: wincrypt.h:255

Referenced by CertTrustFinalPolicy(), CertVerifySubjectCertificateContext(), CertVerifyValidityNesting(), CRYPT_CheckSimpleChain(), and test_verifyTimeValidity().

◆ CertVerifyValidityNesting()

WINCRYPT32API BOOL WINAPI CertVerifyValidityNesting ( PCERT_INFO  pSubjectInfo,
PCERT_INFO  pIssuerInfo 
)

Definition at line 2178 of file cert.c.

2180{
2181 TRACE("(%p, %p)\n", pSubjectInfo, pIssuerInfo);
2182
2183 return CertVerifyTimeValidity(&pSubjectInfo->NotBefore, pIssuerInfo) == 0
2184 && CertVerifyTimeValidity(&pSubjectInfo->NotAfter, pIssuerInfo) == 0;
2185}

◆ CryptAcquireCertificatePrivateKey()

WINCRYPT32API BOOL WINAPI CryptAcquireCertificatePrivateKey ( PCCERT_CONTEXT  pCert,
DWORD  dwFlags,
void pvReserved,
HCRYPTPROV_OR_NCRYPT_KEY_HANDLE phCryptProv,
DWORD pdwKeySpec,
BOOL pfCallerFreeProv 
)

Definition at line 881 of file cert.c.

884{
885 BOOL ret = FALSE, cache = FALSE;
887 CERT_KEY_CONTEXT keyContext;
888 DWORD size;
889
890 TRACE("(%p, %08x, %p, %p, %p, %p)\n", pCert, dwFlags, pvReserved,
891 phCryptProv, pdwKeySpec, pfCallerFreeProv);
892
894 {
895 DWORD size = 0;
896
899 if (ret)
900 {
904 if (ret)
906 }
907 }
909 cache = TRUE;
910 *phCryptProv = 0;
911 if (cache)
912 {
913 size = sizeof(keyContext);
915 &keyContext, &size);
916 if (ret)
917 {
918 *phCryptProv = keyContext.hCryptProv;
919 if (pdwKeySpec)
920 *pdwKeySpec = keyContext.dwKeySpec;
921 if (pfCallerFreeProv)
922 *pfCallerFreeProv = !cache;
923 }
924 }
925 if (!*phCryptProv)
926 {
928 &keyContext.hCryptProv, &keyContext.dwKeySpec);
929 if (ret)
930 {
931 *phCryptProv = keyContext.hCryptProv;
932 if (pdwKeySpec)
933 *pdwKeySpec = keyContext.dwKeySpec;
934 if (cache)
935 {
936 keyContext.cbSize = sizeof(keyContext);
938 CERT_KEY_CONTEXT_PROP_ID, 0, &keyContext))
939 {
940 if (pfCallerFreeProv)
941 *pfCallerFreeProv = FALSE;
942 }
943 }
944 else
945 {
946 if (pfCallerFreeProv)
947 *pfCallerFreeProv = TRUE;
948 }
949 }
950 }
952 return ret;
953}
static BOOL CRYPT_AcquirePrivateKeyFromProvInfo(PCCERT_CONTEXT pCert, PCRYPT_KEY_PROV_INFO info, HCRYPTPROV *phCryptProv, DWORD *pdwKeySpec)
Definition: cert.c:829
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
Definition: cache.c:49
#define CERT_SET_KEY_CONTEXT_PROP_ID
Definition: wincrypt.h:3755
#define CRYPT_ACQUIRE_USE_PROV_INFO_FLAG
Definition: wincrypt.h:3762
#define CRYPT_ACQUIRE_CACHE_FLAG
Definition: wincrypt.h:3761

Referenced by CryptSignMessage(), and init_function_pointers().

◆ CryptAcquireContextA()

WINADVAPI BOOL WINAPI CryptAcquireContextA ( HCRYPTPROV phProv,
LPCSTR  pszContainer,
LPCSTR  pszProvider,
DWORD  dwProvType,
DWORD  dwFlags 
)

Definition at line 569 of file crypt.c.

571{
572 PWSTR pProvider = NULL, pContainer = NULL;
573 BOOL ret = FALSE;
574
575 TRACE("(%p, %s, %s, %d, %08x)\n", phProv, debugstr_a(pszContainer),
576 debugstr_a(pszProvider), dwProvType, dwFlags);
577
578 if ( !CRYPT_ANSIToUnicode(pszContainer, &pContainer, -1) )
579 {
581 return FALSE;
582 }
583 if ( !CRYPT_ANSIToUnicode(pszProvider, &pProvider, -1) )
584 {
585 CRYPT_Free(pContainer);
587 return FALSE;
588 }
589
590 ret = CryptAcquireContextW(phProv, pContainer, pProvider, dwProvType, dwFlags);
591
592 CRYPT_Free(pContainer);
594
595 return ret;
596}
#define ERROR_NOT_ENOUGH_MEMORY
Definition: dderror.h:7
#define CRYPT_Free(buffer)
Definition: crypt.c:62
static BOOL CRYPT_ANSIToUnicode(LPCSTR str, LPWSTR *wstr, int wstrsize)
Definition: crypt.c:158
FxWmiProvider * pProvider
Definition: fxwmiapi.cpp:54
uint16_t * PWSTR
Definition: typedefs.h:56

Referenced by clean_up_aes_environment(), clean_up_base_environment(), CRYPT_CreateKeyProv(), init_aes_environment(), init_base_environment(), init_function_pointers(), test_container_sd(), test_hashes(), test_key_initialization(), test_null_provider(), test_rsa_round_trip(), test_schannel_provider(), and testPortPublicKeyInfo().

◆ CryptAcquireContextW()

WINADVAPI BOOL WINAPI CryptAcquireContextW ( HCRYPTPROV phProv,
LPCWSTR  pszContainer,
LPCWSTR  pszProvider,
DWORD  dwProvType,
DWORD  dwFlags 
)

Definition at line 358 of file crypt.c.

360{
361 PCRYPTPROV pProv = NULL;
362 HKEY key;
363 PWSTR imagepath = NULL, keyname = NULL, provname = NULL, temp = NULL;
364 PSTR provnameA = NULL, pszContainerA = NULL;
365 DWORD keytype, type, len;
366 ULONG r;
367 static const WCHAR nameW[] = {'N','a','m','e',0};
368 static const WCHAR typeW[] = {'T','y','p','e',0};
369 static const WCHAR imagepathW[] = {'I','m','a','g','e',' ','P','a','t','h',0};
370
371 TRACE("(%p, %s, %s, %d, %08x)\n", phProv, debugstr_w(pszContainer),
372 debugstr_w(pszProvider), dwProvType, dwFlags);
373
374 if (dwProvType < 1 || dwProvType > MAXPROVTYPES)
375 {
377 return FALSE;
378 }
379
380 if (!phProv)
381 {
383 return FALSE;
384 }
385
386 /* Make sure the MachineGuid value exists */
388
389 if (!pszProvider || !*pszProvider)
390 {
391 /* No CSP name specified so try the user default CSP first
392 * then try the machine default CSP
393 */
394 if ( !(keyname = CRYPT_GetTypeKeyName(dwProvType, TRUE)) ) {
395 TRACE("No provider registered for crypto provider type %d.\n", dwProvType);
397 return FALSE;
398 }
399 if (RegOpenKeyW(HKEY_CURRENT_USER, keyname, &key))
400 {
401 CRYPT_Free(keyname);
402 if ( !(keyname = CRYPT_GetTypeKeyName(dwProvType, FALSE)) ) {
403 TRACE("No type registered for crypto provider type %d.\n", dwProvType);
406 goto error;
407 }
408 if (RegOpenKeyW(HKEY_LOCAL_MACHINE, keyname, &key)) {
409 TRACE("Did not find registry entry of crypto provider for %s.\n", debugstr_w(keyname));
410 CRYPT_Free(keyname);
413 goto error;
414 }
415 }
416 CRYPT_Free(keyname);
417 r = RegQueryValueExW(key, nameW, NULL, &keytype, NULL, &len);
418 if( r != ERROR_SUCCESS || !len || keytype != REG_SZ)
419 {
420 TRACE("error %d reading size of 'Name' from registry\n", r );
423 goto error;
424 }
425 if(!(provname = CRYPT_Alloc(len)))
426 {
429 goto error;
430 }
431 r = RegQueryValueExW(key, nameW, NULL, NULL, (LPBYTE)provname, &len);
432 if( r != ERROR_SUCCESS )
433 {
434 TRACE("error %d reading 'Name' from registry\n", r );
437 goto error;
438 }
440 } else {
441 if ( !(provname = CRYPT_Alloc((strlenW(pszProvider) +1)*sizeof(WCHAR))) )
442 {
444 goto error;
445 }
446 strcpyW(provname, pszProvider);
447 }
448
449 keyname = CRYPT_GetProvKeyName(provname);
450 r = RegOpenKeyW(HKEY_LOCAL_MACHINE, keyname, &key);
451 CRYPT_Free(keyname);
452 if (r != ERROR_SUCCESS)
453 {
455 goto error;
456 }
457 len = sizeof(DWORD);
459 if (r != ERROR_SUCCESS)
460 {
462 goto error;
463 }
464 if (type != dwProvType)
465 {
466 TRACE("Crypto provider has wrong type (%d vs expected %d).\n", type, dwProvType);
468 goto error;
469 }
470
471 r = RegQueryValueExW(key, imagepathW, NULL, &keytype, NULL, &len);
472 if ( r != ERROR_SUCCESS || keytype != REG_SZ)
473 {
474 TRACE("error %d reading size of 'Image Path' from registry\n", r );
477 goto error;
478 }
479 if (!(temp = CRYPT_Alloc(len)))
480 {
483 goto error;
484 }
485 r = RegQueryValueExW(key, imagepathW, NULL, NULL, (LPBYTE)temp, &len);
486 if( r != ERROR_SUCCESS )
487 {
488 TRACE("error %d reading 'Image Path' from registry\n", r );
491 goto error;
492 }
495 if ( !(imagepath = CRYPT_Alloc(len*sizeof(WCHAR))) )
496 {
498 goto error;
499 }
500 if (!ExpandEnvironmentStringsW(temp, imagepath, len))
501 {
502 /* ExpandEnvironmentStrings will call SetLastError */
503 goto error;
504 }
505 pProv = CRYPT_LoadProvider(imagepath);
506 if (!pProv) {
507 /* CRYPT_LoadProvider calls SetLastError */
508 goto error;
509 }
510 pProv->pVTable->dwProvType = dwProvType;
511 if(!CRYPT_UnicodeToANSI(provname, &provnameA, 0))
512 {
513 /* CRYPT_UnicodeToANSI calls SetLastError */
514 goto error;
515 }
516 pProv->pVTable->pszProvName = provnameA;
517 if(!CRYPT_UnicodeToANSI(pszContainer, &pszContainerA, 0))
518 {
519 /* CRYPT_UnicodeToANSI calls SetLastError */
520 goto error;
521 }
522 if (pProv->pFuncs->pCPAcquireContext(&pProv->hPrivate, pszContainerA, dwFlags, pProv->pVTable))
523 {
524 /* MSDN: When this flag is set, the value returned in phProv is undefined,
525 * and thus, the CryptReleaseContext function need not be called afterwards.
526 * Therefore, we must clean up everything now.
527 */
529 {
530 pProv->dwMagic = 0;
531 FreeLibrary(pProv->hModule);
532 CRYPT_Free(provnameA);
533 CRYPT_Free(pProv->pVTable);
534 CRYPT_Free(pProv->pFuncs);
535 CRYPT_Free(pProv);
536 } else {
537 *phProv = (HCRYPTPROV)pProv;
538 }
539 CRYPT_Free(pszContainerA);
540 CRYPT_Free(provname);
542 CRYPT_Free(imagepath);
543 return TRUE;
544 }
545 /* FALLTHROUGH TO ERROR IF FALSE - CSP internal error! */
546error:
547 if (pProv)
548 {
549 pProv->dwMagic = 0;
550 if (pProv->hModule)
551 FreeLibrary(pProv->hModule);
552 CRYPT_Free(pProv->pVTable);
553 CRYPT_Free(pProv->pFuncs);
554 CRYPT_Free(pProv);
555 }
556 CRYPT_Free(pszContainerA);
557 CRYPT_Free(provnameA);
558 CRYPT_Free(provname);
560 CRYPT_Free(imagepath);
561 return FALSE;
562}
static const WCHAR nameW[]
Definition: main.c:49
#define RegCloseKey(hKey)
Definition: registry.h:49
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3268
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4103
#define CRYPT_Alloc(size)
Definition: crypt.c:61
static PWSTR CRYPT_GetProvKeyName(PCWSTR pProvName)
Definition: crypt.c:64
static PCRYPTPROV CRYPT_LoadProvider(PCWSTR pImage)
Definition: crypt.c:204
static PWSTR CRYPT_GetTypeKeyName(DWORD dwType, BOOL user)
Definition: crypt.c:85
static BOOL CRYPT_UnicodeToANSI(LPCWSTR wstr, LPSTR *str, int strsize)
Definition: crypt.c:125
static void CRYPT_CreateMachineGuid(void)
Definition: crypt.c:277
#define MAXPROVTYPES
Definition: crypt.h:89
#define FreeLibrary(x)
Definition: compat.h:748
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
Definition: environ.c:519
static const WCHAR typeW[]
Definition: name.c:51
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define REG_SZ
Definition: layer.c:22
#define error(str)
Definition: mkdosfs.c:1605
#define strcpyW(d, s)
Definition: unicode.h:35
static calc_node_t temp
Definition: rpn_ieee.c:38
LPSTR pszProvName
Definition: wincrypt.h:820
DWORD dwProvType
Definition: wincrypt.h:817
HMODULE hModule
Definition: crypt.h:69
PVTableProvStruc pVTable
Definition: crypt.h:72
PPROVFUNCS pFuncs
Definition: crypt.h:70
HCRYPTPROV hPrivate
Definition: crypt.h:71
DWORD dwMagic
Definition: crypt.h:67
char * PSTR
Definition: typedefs.h:51
uint32_t ULONG
Definition: typedefs.h:59
ULONG_PTR HCRYPTPROV
Definition: wincrypt.h:55
#define CRYPT_DELETEKEYSET
Definition: wincrypt.h:2275
#define NTE_BAD_PROV_TYPE
Definition: winerror.h:4268
#define NTE_KEYSET_NOT_DEF
Definition: winerror.h:4273
#define NTE_PROV_TYPE_ENTRY_BAD
Definition: winerror.h:4272
#define NTE_PROV_TYPE_NO_MATCH
Definition: winerror.h:4275
#define NTE_PROV_TYPE_NOT_DEF
Definition: winerror.h:4271
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by CertCreateSelfSignCertificate(), CRYPT_AcquirePrivateKeyFromProvInfo(), CRYPT_GetDefaultProvider(), CryptAcquireContextA(), CryptCATAdminCalcHashFromFileHandle(), CryptCATAdminEnumCatalogFromHash(), CryptProtectData(), CryptUnprotectData(), DllRegisterServer(), export_acquire_private_key(), find_key_prov_info_in_provider(), hash_file(), I_CryptGetDefaultCryptProv(), init_function_pointers(), key_prov_info_matches_cert(), save_pfx(), SOFTPUB_VerifyImageHash(), START_TEST(), and testAcquireSecurityContext().

◆ CryptBinaryToStringA()

WINCRYPT32API BOOL WINAPI CryptBinaryToStringA ( const BYTE pbBinary,
DWORD  cbBinary,
DWORD  dwFlags,
LPSTR  pszString,
DWORD pcchString 
)

Definition at line 253 of file base64.c.

255{
257
258 TRACE("(%p, %d, %08x, %p, %p)\n", pbBinary, cbBinary, dwFlags, pszString,
259 pcchString);
260
261 if (!pbBinary)
262 {
264 return FALSE;
265 }
266 if (!pcchString)
267 {
269 return FALSE;
270 }
271
272 switch (dwFlags & 0x0fffffff)
273 {
276 break;
282 break;
283 case CRYPT_STRING_HEX:
287 FIXME("Unimplemented type %d\n", dwFlags & 0x0fffffff);
288 /* fall through */
289 default:
291 return FALSE;
292 }
293 return encoder(pbBinary, cbBinary, dwFlags, pszString, pcchString);
294}
BOOL(* BinaryToStringAFunc)(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString)
Definition: base64.c:70
static BOOL EncodeBinaryToBinaryA(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString)
Definition: base64.c:75
static BOOL BinaryToBase64A(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString)
Definition: base64.c:176
#define CRYPT_STRING_BINARY
Definition: wincrypt.h:3133
#define CRYPT_STRING_BASE64X509CRLHEADER
Definition: wincrypt.h:3140
#define CRYPT_STRING_HEXADDR
Definition: wincrypt.h:3141
#define CRYPT_STRING_BASE64REQUESTHEADER
Definition: wincrypt.h:3134
#define CRYPT_STRING_BASE64HEADER
Definition: wincrypt.h:3131
#define CRYPT_STRING_HEX
Definition: wincrypt.h:3135
#define CRYPT_STRING_BASE64
Definition: wincrypt.h:3132
#define CRYPT_STRING_HEXASCII
Definition: wincrypt.h:3136
#define CRYPT_STRING_HEXASCIIADDR
Definition: wincrypt.h:3142

Referenced by encodeAndCompareBase64_A(), save_base64(), and test_CryptBinaryToString().

◆ CryptBinaryToStringW()

WINCRYPT32API BOOL WINAPI CryptBinaryToStringW ( const BYTE pbBinary,
DWORD  cbBinary,
DWORD  dwFlags,
LPWSTR  pszString,
DWORD pcchString 
)

Definition at line 473 of file base64.c.

475{
477
478 TRACE("(%p, %d, %08x, %p, %p)\n", pbBinary, cbBinary, dwFlags, pszString,
479 pcchString);
480
481 if (!pbBinary)
482 {
484 return FALSE;
485 }
486 if (!pcchString)
487 {
489 return FALSE;
490 }
491
492 switch (dwFlags & 0x0fffffff)
493 {
496 break;
502 break;
503 case CRYPT_STRING_HEX:
507 FIXME("Unimplemented type %d\n", dwFlags & 0x0fffffff);
508 /* fall through */
509 default:
511 return FALSE;
512 }
513 return encoder(pbBinary, cbBinary, dwFlags, pszString, pcchString);
514}
static BOOL EncodeBinaryToBinaryW(const BYTE *in_buf, DWORD in_len, DWORD flags, WCHAR *out_buf, DWORD *out_len)
Definition: base64.c:296
static BOOL BinaryToBase64W(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString)
Definition: base64.c:396
BOOL(* BinaryToStringWFunc)(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString)
Definition: base64.c:72

Referenced by encode_compare_base64_W(), and test_CryptBinaryToString().

◆ CryptCancelAsyncRetrieval()

BOOL WINAPI CryptCancelAsyncRetrieval ( HCRYPTASYNC  hAsyncRetrieval)

◆ CryptCloseAsyncHandle()

WINCRYPT32API BOOL WINAPI CryptCloseAsyncHandle ( HCRYPTASYNC  hAsync)

◆ CryptContextAddRef()

WINADVAPI BOOL WINAPI CryptContextAddRef ( HCRYPTPROV  hProv,
DWORD pdwReserved,
DWORD  dwFlags 
)

Definition at line 613 of file crypt.c.

614{
615 PCRYPTPROV pProv = (PCRYPTPROV)hProv;
616
617 TRACE("(0x%lx, %p, %08x)\n", hProv, pdwReserved, dwFlags);
618
619 if (!pProv)
620 {
622 return FALSE;
623 }
624
625 if (pProv->dwMagic != MAGIC_CRYPTPROV)
626 {
628 return FALSE;
629 }
630
632 return TRUE;
633}
struct tagCRYPTPROV * PCRYPTPROV
#define MAGIC_CRYPTPROV
Definition: crypt.h:61
LONG refcount
Definition: crypt.h:68
#define NTE_BAD_UID
Definition: winerror.h:4246

Referenced by I_CryptGetDefaultCryptProv().

◆ CryptCreateAsyncHandle()

WINCRYPT32API BOOL WINAPI CryptCreateAsyncHandle ( DWORD  dwFlags,
PHCRYPTASYNC  phAsync 
)

◆ CryptCreateHash()

WINADVAPI BOOL WINAPI CryptCreateHash ( HCRYPTPROV  hProv,
ALG_ID  Algid,
HCRYPTKEY  hKey,
DWORD  dwFlags,
HCRYPTHASH phHash 
)

Definition at line 740 of file crypt.c.

742{
746
747 TRACE("(0x%lx, 0x%x, 0x%lx, %08x, %p)\n", hProv, Algid, hKey, dwFlags, phHash);
748
749 if (!prov || !phHash || prov->dwMagic != MAGIC_CRYPTPROV ||
750 (key && key->dwMagic != MAGIC_CRYPTKEY))
751 {
753 return FALSE;
754 }
755 if (dwFlags)
756 {
758 return FALSE;
759 }
760 if ( !(hash = CRYPT_Alloc(sizeof(CRYPTHASH))) )
761 {
763 return FALSE;
764 }
765
766 hash->pProvider = prov;
767 hash->dwMagic = MAGIC_CRYPTHASH;
768 if (prov->pFuncs->pCPCreateHash(prov->hPrivate, Algid,
769 key ? key->hPrivate : 0, 0, &hash->hPrivate))
770 {
771 *phHash = (HCRYPTHASH)hash;
772 return TRUE;
773 }
774
775 /* CSP error! */
776 hash->dwMagic = 0;
778 *phHash = 0;
779 return FALSE;
780}
#define MAGIC_CRYPTHASH
Definition: crypt.h:63
#define MAGIC_CRYPTKEY
Definition: crypt.h:62
struct tagCRYPTKEY * PCRYPTKEY
Definition: _hash_fun.h:40
ULONG_PTR HCRYPTHASH
Definition: wincrypt.h:59

Referenced by CDecodeMsg_FinalizeHashedContent(), CHashEncodeMsg_Open(), create_silly_rename(), CRYPT_VerifySignature(), CryptCATAdminCalcHashFromFileHandle(), CryptHashCertificate(), CryptHashPublicKeyInfo(), CryptHashToBeSigned(), CryptProtectData(), CryptSignCertificate(), CryptUnprotectData(), CSignedMsgData_ConstructSignerHandles(), derive_key(), hash_dib(), hash_file(), load_encryption_key(), nfs41_client_owner(), rdssl_hash_clear(), rdssl_hash_info_create(), rdssl_hmac_md5(), SOFTPUB_VerifyImageHash(), test_hashes(), test_hmac(), test_import_hmac(), test_key_derivation(), test_mac(), test_rc2(), test_rc4(), test_schannel_provider(), test_sha2(), test_verify_signature(), and verifySig().

◆ CryptDecodeMessage()

WINCRYPT32API BOOL WINAPI CryptDecodeMessage ( DWORD  dwMsgTypeFlags,
PCRYPT_DECRYPT_MESSAGE_PARA  pDecryptPara,
PCRYPT_VERIFY_MESSAGE_PARA  pVerifyPara,
DWORD  dwSignerIndex,
const BYTE pbEncodedBlob,
DWORD  cbEncodedBlob,
DWORD  dwPrevInnerContentType,
DWORD pdwMsgType,
DWORD pdwInnerContentType,
BYTE pbDecoded,
DWORD pcbDecoded,
PCCERT_CONTEXT ppXchgCert,
PCCERT_CONTEXT ppSignerCert 
)

◆ CryptDecodeObject()

WINCRYPT32API BOOL WINAPI CryptDecodeObject ( DWORD  dwCertEncodingType,
LPCSTR  lpszStructType,
const BYTE pbEncoded,
DWORD  cbEncoded,
DWORD  dwFlags,
void pvStructInfo,
DWORD pcbStructInfo 
)

Definition at line 6278 of file decode.c.

6281{
6282 return CryptDecodeObjectEx(dwCertEncodingType, lpszStructType,
6283 pbEncoded, cbEncoded, dwFlags, NULL, pvStructInfo, pcbStructInfo);
6284}

Referenced by CertComparePublicKeyInfo(), CRYPT_ImportPublicKeyInfoEx(), CryptCATEnumerateMember(), decode_inner_content(), and SOFTPUB_DecodeInnerContent().

◆ CryptDecodeObjectEx()

WINCRYPT32API BOOL WINAPI CryptDecodeObjectEx ( DWORD  dwCertEncodingType,
LPCSTR  lpszStructType,
const BYTE pbEncoded,
DWORD  cbEncoded,
DWORD  dwFlags,
PCRYPT_DECODE_PARA  pDecodePara,
void pvStructInfo,
DWORD pcbStructInfo 
)

Definition at line 6286 of file decode.c.

6289{
6290 BOOL ret = FALSE;
6291 CryptDecodeObjectExFunc decodeFunc;
6292 HCRYPTOIDFUNCADDR hFunc = NULL;
6293
6294 TRACE_(crypt)("(0x%08x, %s, %p, %d, 0x%08x, %p, %p, %p)\n",
6295 dwCertEncodingType, debugstr_a(lpszStructType), pbEncoded,
6296 cbEncoded, dwFlags, pDecodePara, pvStructInfo, pcbStructInfo);
6297
6298 if (!pvStructInfo && !pcbStructInfo)
6299 {
6301 return FALSE;
6302 }
6303 if (cbEncoded > MAX_ENCODED_LEN)
6304 {
6306 return FALSE;
6307 }
6308
6311 {
6312 if (!pvStructInfo)
6313 {
6315 return FALSE;
6316 }
6317 *(BYTE **)pvStructInfo = NULL;
6318 }
6319 decodeFunc = CRYPT_GetBuiltinDecoder(dwCertEncodingType, lpszStructType);
6320 if (!decodeFunc)
6321 {
6322 TRACE_(crypt)("OID %s not found or unimplemented, looking for DLL\n",
6323 debugstr_a(lpszStructType));
6324 decodeFunc = CRYPT_LoadDecoderExFunc(dwCertEncodingType, lpszStructType,
6325 &hFunc);
6326 }
6327 if (decodeFunc)
6328 ret = decodeFunc(dwCertEncodingType, lpszStructType, pbEncoded,
6329 cbEncoded, dwFlags, pDecodePara, pvStructInfo, pcbStructInfo);
6330 else
6331 {
6332 CryptDecodeObjectFunc pCryptDecodeObject =
6333 CRYPT_LoadDecoderFunc(dwCertEncodingType, lpszStructType, &hFunc);
6334
6335 /* Try CryptDecodeObject function. Don't call CryptDecodeObject
6336 * directly, as that could cause an infinite loop.
6337 */
6338 if (pCryptDecodeObject)
6339 {
6341 {
6342 ret = pCryptDecodeObject(dwCertEncodingType, lpszStructType,
6343 pbEncoded, cbEncoded, dwFlags, NULL, pcbStructInfo);
6344 if (ret && (ret = CRYPT_DecodeEnsureSpace(dwFlags, pDecodePara,
6345 pvStructInfo, pcbStructInfo, *pcbStructInfo)))
6346 {
6347 ret = pCryptDecodeObject(dwCertEncodingType,
6348 lpszStructType, pbEncoded, cbEncoded, dwFlags,
6349 *(BYTE **)pvStructInfo, pcbStructInfo);
6350 if (!ret)
6351 CRYPT_FreeSpace(pDecodePara, *(BYTE **)pvStructInfo);
6352 }
6353 }
6354 else
6355 ret = pCryptDecodeObject(dwCertEncodingType, lpszStructType,
6356 pbEncoded, cbEncoded, dwFlags, pvStructInfo, pcbStructInfo);
6357 }
6358 }
6359 if (hFunc)
6361 TRACE_(crypt)("returning %d\n", ret);
6362 return ret;
6363}
#define MAX_ENCODED_LEN
Definition: decode.c:53
static void CRYPT_FreeSpace(const CRYPT_DECODE_PARA *pDecodePara, LPVOID pv)
Definition: decode.c:235
BOOL(WINAPI * CryptDecodeObjectExFunc)(DWORD, LPCSTR, const BYTE *, DWORD, DWORD, PCRYPT_DECODE_PARA, void *, DWORD *)
Definition: decode.c:63
static CryptDecodeObjectExFunc CRYPT_LoadDecoderExFunc(DWORD dwCertEncodingType, LPCSTR lpszStructType, HCRYPTOIDFUNCADDR *hFunc)
Definition: decode.c:6265
static CryptDecodeObjectExFunc CRYPT_GetBuiltinDecoder(DWORD dwCertEncodingType, LPCSTR lpszStructType)
Definition: decode.c:6048
BOOL(WINAPI * CryptDecodeObjectFunc)(DWORD, LPCSTR, const BYTE *, DWORD, DWORD, void *, DWORD *)
Definition: decode.c:61
static BOOL CRYPT_DecodeEnsureSpace(DWORD dwFlags, const CRYPT_DECODE_PARA *pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo, DWORD bytesNeeded)
Definition: decode.c:207
static CryptDecodeObjectFunc CRYPT_LoadDecoderFunc(DWORD dwCertEncodingType, LPCSTR lpszStructType, HCRYPTOIDFUNCADDR *hFunc)
Definition: decode.c:6252
#define NOERROR
Definition: winerror.h:3449
#define CRYPT_E_ASN1_LARGE
Definition: winerror.h:4504

Referenced by CDecodeMsg_DecodeContent(), CDecodeMsg_DecodeDataContent(), CDecodeMsg_FinalizeSignedContent(), CDecodeSignedMsg_GetParam(), Cert_clone(), cert_find_alt_name_entry(), cert_get_name_from_rdn_attr(), cert_name_to_str_with_indent(), CertContext_GetProperty(), CertCreateCertificateContext(), CertCreateCRLContext(), CertCreateCTLContext(), CertGetEnhancedKeyUsage(), CertGetIntendedKeyUsage(), CertGetNameStringW(), CertGetPublicKeyLength(), CertIsRDNAttrsInCertificateName(), CertIsValidCRLForCertificate(), CertNameToStrA(), CNG_ImportECCPubKey(), CNG_PrepareSignatureECC(), compare_alt_name_with_constraints(), compare_crl_issued_by(), compare_subject_with_email_constraints(), CRL_clone(), CRYPT_CheckUsages(), CRYPT_DecodeBasicConstraints(), CRYPT_FormatAltName(), CRYPT_FormatAuthorityInfoAccess(), CRYPT_FormatAuthorityKeyId2(), CRYPT_FormatBasicConstraints2(), CRYPT_FormatCPS(), CRYPT_FormatCRLDistPoints(), CRYPT_FormatEnhancedKeyUsage(), CRYPT_FormatKeyUsage(), CRYPT_FormatNetscapeCertType(), CRYPT_FormatSpcFinancialCriteria(), CRYPT_FormatUnicodeString(), CRYPT_FormatUserNotice(), CRYPT_GetIssuer(), CRYPT_GetNameConstraints(), CRYPT_GetPolicies(), CRYPT_GetUrlFromCertificateIssuer(), CRYPT_GetUrlFromCRLDistPointsExt(), CRYPT_IsCertificateSelfSigned(), CRYPT_KeyUsageValid(), CryptDecodeObject(), CryptHashToBeSigned(), CryptVerifyCertificateSignatureEx(), directory_name_matches(), display_app_usages(), dump_alt_name(), dump_basic_constraints(), dump_basic_constraints2(), dump_cert_policies(), dump_enhanced_key_usage(), dump_key_usage(), dump_name_constraints(), dump_netscape_cert_type(), find_cert_by_issuer(), FormatVerisignExtension(), get_cert_common_name(), get_cps_str_from_qualifier(), get_user_notice_from_qualifier(), is_ca_cert(), match_dns_to_subject_alt_name(), match_dns_to_subject_dn(), set_issuer_statement(), TrustIsCertificateSelfSigned(), verify_cert_revocation(), verify_cert_revocation_from_aia_ext(), WINTRUST_GetTimeFromCounterSigner(), and WINTRUST_GetTimeFromSigner().

◆ CryptDecrypt()

WINADVAPI BOOL WINAPI CryptDecrypt ( HCRYPTKEY  hKey,
HCRYPTHASH  hHash,
BOOL  Final,
DWORD  dwFlags,
BYTE pbData,
DWORD pdwDataLen 
)

Definition at line 800 of file crypt.c.

802{
803 PCRYPTPROV prov;
805 PCRYPTHASH hash = (PCRYPTHASH)hHash;
806
807 TRACE("(0x%lx, 0x%lx, %d, %08x, %p, %p)\n", hKey, hHash, Final, dwFlags, pbData, pdwDataLen);
808
809 if (!key || !pbData || !pdwDataLen ||
810 !key->pProvider || key->dwMagic != MAGIC_CRYPTKEY ||
811 key->pProvider->dwMagic != MAGIC_CRYPTPROV)
812 {
814 return FALSE;
815 }
816
817 prov = key->pProvider;
818 return prov->pFuncs->pCPDecrypt(prov->hPrivate, key->hPrivate, hash ? hash->hPrivate : 0,
819 Final, dwFlags, pbData, pdwDataLen);
820}
struct tagCRYPTHASH * PCRYPTHASH

Referenced by CDecodeEnvelopedMsg_CrtlDecrypt(), CryptUnprotectData(), test_3des(), test_3des112(), test_aes(), test_block_cipher_modes(), test_des(), test_import_private(), test_rc2(), test_rc4(), test_rsa_encrypt(), and test_rsa_round_trip().

◆ CryptDecryptAndVerifyMessageSignature()

WINCRYPT32API BOOL WINAPI CryptDecryptAndVerifyMessageSignature ( PCRYPT_DECRYPT_MESSAGE_PARA  pDecryptPara,
PCRYPT_VERIFY_MESSAGE_PARA  pVerifyPara,
DWORD  dwSignerIndex,
const BYTE pbEncryptedBlob,
DWORD  cbEncryptedBlob,
BYTE pbDecrypted,
DWORD pcbDecrypted,
PCCERT_CONTEXT ppXchgCert,
PCCERT_CONTEXT ppSignerCert 
)

◆ CryptDecryptMessage()

WINCRYPT32API BOOL WINAPI CryptDecryptMessage ( PCRYPT_DECRYPT_MESSAGE_PARA  pDecryptPara,
const BYTE pbEncryptedBlob,
DWORD  cbEncryptedBlob,
BYTE pbDecrypted,
DWORD pcbDecrypted,
PCCERT_CONTEXT ppXchgCert 
)

◆ CryptDeriveKey()

WINADVAPI BOOL WINAPI CryptDeriveKey ( HCRYPTPROV  hProv,
ALG_ID  Algid,
HCRYPTHASH  hBaseData,
DWORD  dwFlags,
HCRYPTKEY phKey 
)

Definition at line 838 of file crypt.c.

840{
842 PCRYPTHASH hash = (PCRYPTHASH)hBaseData;
844
845 TRACE("(0x%lx, 0x%08x, 0x%lx, 0x%08x, %p)\n", hProv, Algid, hBaseData, dwFlags, phKey);
846
847 if (!prov || !hash)
848 {
850 return FALSE;
851 }
852 if (!phKey || prov->dwMagic != MAGIC_CRYPTPROV || hash->dwMagic != MAGIC_CRYPTHASH)
853 {
855 return FALSE;
856 }
857 if ( !(key = CRYPT_Alloc(sizeof(CRYPTKEY))) )
858 {
860 return FALSE;
861 }
862
863 key->pProvider = prov;
864 key->dwMagic = MAGIC_CRYPTKEY;
865 if (prov->pFuncs->pCPDeriveKey(prov->hPrivate, Algid, hash->hPrivate, dwFlags, &key->hPrivate))
866 {
867 *phKey = (HCRYPTKEY)key;
868 return TRUE;
869 }
870
871 /* CSP error! */
872 key->dwMagic = 0;
874 *phKey = 0;
875 return FALSE;
876}
#define ERROR_INVALID_HANDLE
Definition: compat.h:98

Referenced by derive_key(), load_encryption_key(), test_key_derivation(), test_rc2(), test_rc4(), and test_schannel_provider().

◆ CryptDestroyHash()

◆ CryptDestroyKey()

WINADVAPI BOOL WINAPI CryptDestroyKey ( HCRYPTKEY  hKey)

Definition at line 930 of file crypt.c.

931{
933 PCRYPTPROV prov;
934 BOOL ret;
935
936 TRACE("(0x%lx)\n", hKey);
937
938 if (!key)
939 {
941 return FALSE;
942 }
943
944 if (!key->pProvider || key->dwMagic != MAGIC_CRYPTKEY ||
945 key->pProvider->dwMagic != MAGIC_CRYPTPROV)
946 {
948 return FALSE;
949 }
950
951 prov = key->pProvider;
952 ret = prov->pFuncs->pCPDestroyKey(prov->hPrivate, key->hPrivate);
953 key->dwMagic = 0;
955 return ret;
956}

Referenced by CDecodeEnvelopedMsg_CrtlDecrypt(), CDecodeSignedMsg_VerifySignatureWithKey(), CEnvelopedEncodeMsg_Close(), CertCreateSelfSignCertificate(), CertGetPublicKeyLength(), CRYPT_CreateKeyProv(), CRYPT_ExportKeyTrans(), CRYPT_ExportPublicKeyInfoEx(), CRYPT_ImportKeyTrans(), CRYPT_VerifySignature(), CryptProtectData(), CryptUnprotectData(), export_is_key_exportable(), init_aes_environment(), init_base_environment(), rdssl_cert_to_rkey(), rdssl_rc4_info_delete(), rdssl_rc4_set_key(), test_3des(), test_3des112(), test_aes(), test_block_cipher_modes(), test_decode_msg_get_param(), test_des(), test_hashes(), test_hmac(), test_import_export(), test_import_hmac(), test_import_private(), test_key_derivation(), test_key_initialization(), test_key_permissions(), test_mac(), test_null_provider(), test_rc2(), test_rc4(), test_rsa_encrypt(), test_rsa_round_trip(), test_schannel_provider(), test_sign_message(), test_signed_msg_encoding(), test_signed_msg_update(), test_verify_signature(), testAcquireCertPrivateKey(), testAcquireSecurityContext(), testCreateSelfSignCert(), testExportPublicKey(), testImportPublicKey(), and testSignCert().

◆ CryptDuplicateHash()

WINADVAPI BOOL WINAPI CryptDuplicateHash ( HCRYPTHASH  hHash,
DWORD pdwReserved,
DWORD  dwFlags,
HCRYPTHASH phHash 
)

Definition at line 973 of file crypt.c.

975{
976 PCRYPTPROV prov;
977 PCRYPTHASH orghash, newhash;
978
979 TRACE("(0x%lx, %p, %08x, %p)\n", hHash, pdwReserved, dwFlags, phHash);
980
981 orghash = (PCRYPTHASH)hHash;
982 if (!orghash || pdwReserved || !phHash || !orghash->pProvider ||
983 orghash->dwMagic != MAGIC_CRYPTHASH || orghash->pProvider->dwMagic != MAGIC_CRYPTPROV)
984 {
986 return FALSE;
987 }
988
989 prov = orghash->pProvider;
990 if (!prov->pFuncs->pCPDuplicateHash)
991 {
993 return FALSE;
994 }
995
996 if ( !(newhash = CRYPT_Alloc(sizeof(CRYPTHASH))) )
997 {
999 return FALSE;
1000 }
1001
1002 newhash->pProvider = prov;
1003 newhash->dwMagic = MAGIC_CRYPTHASH;
1004 if (prov->pFuncs->pCPDuplicateHash(prov->hPrivate, orghash->hPrivate, pdwReserved, dwFlags, &newhash->hPrivate))
1005 {
1006 *phHash = (HCRYPTHASH)newhash;
1007 return TRUE;
1008 }
1009 newhash->dwMagic = 0;
1010 CRYPT_Free(newhash);
1011 return FALSE;
1012}
PCRYPTPROV pProvider
Definition: crypt.h:85
HCRYPTHASH hPrivate
Definition: crypt.h:86
DWORD dwMagic
Definition: crypt.h:84

◆ CryptDuplicateKey()

WINADVAPI BOOL WINAPI CryptDuplicateKey ( HCRYPTKEY  hKey,
DWORD pdwReserved,
DWORD  dwFlags,
HCRYPTKEY phKey 
)

Definition at line 1029 of file crypt.c.

1030{
1031 PCRYPTPROV prov;
1032 PCRYPTKEY orgkey, newkey;
1033
1034 TRACE("(0x%lx, %p, %08x, %p)\n", hKey, pdwReserved, dwFlags, phKey);
1035
1036 orgkey = (PCRYPTKEY)hKey;
1037 if (!orgkey || pdwReserved || !phKey || !orgkey->pProvider ||
1038 orgkey->dwMagic != MAGIC_CRYPTKEY ||
1039 orgkey->pProvider->dwMagic != MAGIC_CRYPTPROV)
1040 {
1042 return FALSE;
1043 }
1044
1045 prov = orgkey->pProvider;
1046 if (!prov->pFuncs->pCPDuplicateKey)
1047 {
1049 return FALSE;
1050 }
1051
1052 if ( !(newkey = CRYPT_Alloc(sizeof(CRYPTKEY))) )
1053 {
1055 return FALSE;
1056 }
1057
1058 newkey->pProvider = prov;
1059 newkey->dwMagic = MAGIC_CRYPTKEY;
1060 if (prov->pFuncs->pCPDuplicateKey(prov->hPrivate, orgkey->hPrivate, pdwReserved, dwFlags, &newkey->hPrivate))
1061 {
1062 *phKey = (HCRYPTKEY)newkey;
1063 return TRUE;
1064 }
1065 newkey->dwMagic = 0;
1066 CRYPT_Free(newkey);
1067 return FALSE;
1068}
HCRYPTKEY hPrivate
Definition: crypt.h:79
DWORD dwMagic
Definition: crypt.h:77
PCRYPTPROV pProvider
Definition: crypt.h:78

◆ CryptEncodeObject()

WINCRYPT32API BOOL WINAPI CryptEncodeObject ( DWORD  dwCertEncodingType,
LPCSTR  lpszStructType,
const void pvStructInfo,
BYTE pbEncoded,
DWORD pcbEncoded 
)

Definition at line 4655 of file encode.c.

4657{
4658 BOOL ret = FALSE;
4659 HCRYPTOIDFUNCADDR hFunc = NULL;
4660 CryptEncodeObjectFunc pCryptEncodeObject = NULL;
4661 CryptEncodeObjectExFunc pCryptEncodeObjectEx = NULL;
4662
4663 TRACE_(crypt)("(0x%08x, %s, %p, %p, %p)\n", dwCertEncodingType,
4664 debugstr_a(lpszStructType), pvStructInfo, pbEncoded,
4665 pcbEncoded);
4666
4667 if (!pbEncoded && !pcbEncoded)
4668 {
4670 return FALSE;
4671 }
4672
4673 if (!(pCryptEncodeObjectEx = CRYPT_GetBuiltinEncoder(dwCertEncodingType,
4674 lpszStructType)))
4675 {
4676 TRACE_(crypt)("OID %s not found or unimplemented, looking for DLL\n",
4677 debugstr_a(lpszStructType));
4678 pCryptEncodeObject = CRYPT_LoadEncoderFunc(dwCertEncodingType,
4679 lpszStructType, &hFunc);
4680 if (!pCryptEncodeObject)
4681 pCryptEncodeObjectEx = CRYPT_LoadEncoderExFunc(dwCertEncodingType,
4682 lpszStructType, &hFunc);
4683 }
4684 if (pCryptEncodeObject)
4685 ret = pCryptEncodeObject(dwCertEncodingType, lpszStructType,
4686 pvStructInfo, pbEncoded, pcbEncoded);
4687 else if (pCryptEncodeObjectEx)
4688 ret = pCryptEncodeObjectEx(dwCertEncodingType, lpszStructType,
4689 pvStructInfo, 0, NULL, pbEncoded, pcbEncoded);
4690 if (hFunc)
4692 TRACE_(crypt)("returning %d\n", ret);
4693 return ret;
4694}
BOOL(WINAPI * CryptEncodeObjectExFunc)(DWORD, LPCSTR, const void *, DWORD, PCRYPT_ENCODE_PARA, BYTE *, DWORD *)
static CryptEncodeObjectExFunc CRYPT_LoadEncoderExFunc(DWORD dwCertEncodingType, LPCSTR lpszStructType, HCRYPTOIDFUNCADDR *hFunc)
Definition: encode.c:4642
BOOL(WINAPI * CryptEncodeObjectFunc)(DWORD, LPCSTR, const void *, BYTE *, DWORD *)
Definition: encode.c:55
static CryptEncodeObjectFunc CRYPT_LoadEncoderFunc(DWORD dwCertEncodingType, LPCSTR lpszStructType, HCRYPTOIDFUNCADDR *hFunc)
Definition: encode.c:4629
static CryptEncodeObjectExFunc CRYPT_GetBuiltinEncoder(DWORD dwCertEncodingType, LPCSTR lpszStructType)
Definition: encode.c:4435

Referenced by CDataEncodeMsg_GetParam(), CRYPT_CopyKeyIdAsIssuerAndSerial(), CRYPT_ExportPublicKeyInfoEx(), CRYPT_SizeOfKeyIdAsIssuerAndSerial(), and CryptSignAndEncodeCertificate().

◆ CryptEncodeObjectEx()

WINCRYPT32API BOOL WINAPI CryptEncodeObjectEx ( DWORD  dwCertEncodingType,
LPCSTR  lpszStructType,
const void pvStructInfo,
DWORD  dwFlags,
PCRYPT_ENCODE_PARA  pEncodePara,
void pvEncoded,
DWORD pcbEncoded 
)

Definition at line 4696 of file encode.c.

4699{
4700 BOOL ret = FALSE;
4701 HCRYPTOIDFUNCADDR hFunc = NULL;
4702 CryptEncodeObjectExFunc encodeFunc = NULL;
4703
4704 TRACE_(crypt)("(0x%08x, %s, %p, 0x%08x, %p, %p, %p)\n", dwCertEncodingType,
4705 debugstr_a(lpszStructType), pvStructInfo, dwFlags, pEncodePara,
4706 pvEncoded, pcbEncoded);
4707
4708 if (!pvEncoded && !pcbEncoded)
4709 {
4711 return FALSE;
4712 }
4713
4716 if (!pvEncoded) {
4718 return FALSE;
4719 }
4720 *(BYTE **)pvEncoded = NULL;
4721 }
4722 encodeFunc = CRYPT_GetBuiltinEncoder(dwCertEncodingType, lpszStructType);
4723 if (!encodeFunc)
4724 {
4725 TRACE_(crypt)("OID %s not found or unimplemented, looking for DLL\n",
4726 debugstr_a(lpszStructType));
4727 encodeFunc = CRYPT_LoadEncoderExFunc(dwCertEncodingType, lpszStructType,
4728 &hFunc);
4729 }
4730 if (encodeFunc)
4731 ret = encodeFunc(dwCertEncodingType, lpszStructType, pvStructInfo,
4732 dwFlags, pEncodePara, pvEncoded, pcbEncoded);
4733 else
4734 {
4735 CryptEncodeObjectFunc pCryptEncodeObject =
4736 CRYPT_LoadEncoderFunc(dwCertEncodingType, lpszStructType, &hFunc);
4737
4738 if (pCryptEncodeObject)
4739 {
4741 {
4742 ret = pCryptEncodeObject(dwCertEncodingType, lpszStructType,
4743 pvStructInfo, NULL, pcbEncoded);
4744 if (ret && (ret = CRYPT_EncodeEnsureSpace(dwFlags, pEncodePara,
4745 pvEncoded, pcbEncoded, *pcbEncoded)))
4746 ret = pCryptEncodeObject(dwCertEncodingType,
4747 lpszStructType, pvStructInfo, *(BYTE **)pvEncoded,
4748 pcbEncoded);
4749 }
4750 else
4751 ret = pCryptEncodeObject(dwCertEncodingType, lpszStructType,
4752 pvStructInfo, pvEncoded, pcbEncoded);
4753 }
4754 }
4755 if (hFunc)
4757 TRACE_(crypt)("returning %d\n", ret);
4758 return ret;
4759}
BOOL CRYPT_EncodeEnsureSpace(DWORD dwFlags, const CRYPT_ENCODE_PARA *pEncodePara, BYTE *pbEncoded, DWORD *pcbEncoded, DWORD bytesNeeded)
Definition: encode.c:103

Referenced by CDataEncodeMsg_Update(), CDecodeSignedMsg_GetParam(), CEnvelopedEncodeMsg_GetParam(), CertCreateSelfSignCertificate(), CertSetEnhancedKeyUsage(), CertStrToNameW(), CHashEncodeMsg_GetParam(), CRYPT_CreateSignedCert(), CRYPT_EncodeValueWithType(), CryptMsgEncodeAndSignCTL(), CSignedEncodeMsg_GetParam(), CSignedMsgData_UpdateAuthenticatedAttributes(), and init_function_pointers().

◆ CryptEncrypt()

WINADVAPI BOOL WINAPI CryptEncrypt ( HCRYPTKEY  hKey,
HCRYPTHASH  hHash,
BOOL  Final,
DWORD  dwFlags,
BYTE pbData,
DWORD pdwDataLen,
DWORD  dwBufLen 
)

Definition at line 1093 of file crypt.c.

1095{
1096 PCRYPTPROV prov;
1098 PCRYPTHASH hash = (PCRYPTHASH)hHash;
1099
1100 TRACE("(0x%lx, 0x%lx, %d, %08x, %p, %p, %d)\n", hKey, hHash, Final, dwFlags, pbData, pdwDataLen, dwBufLen);
1101
1102 if (!key || !pdwDataLen || !key->pProvider ||
1103 key->dwMagic != MAGIC_CRYPTKEY || key->pProvider->dwMagic != MAGIC_CRYPTPROV)
1104 {
1106 return FALSE;
1107 }
1108
1109 prov = key->pProvider;
1110 return prov->pFuncs->pCPEncrypt(prov->hPrivate, key->hPrivate, hash ? hash->hPrivate : 0,
1111 Final, dwFlags, pbData, pdwDataLen, dwBufLen);
1112}

Referenced by CEnvelopedEncodeMsg_Update(), CryptProtectData(), rdssl_rc4_crypt(), test_3des(), test_3des112(), test_aes(), test_block_cipher_modes(), test_des(), test_key_derivation(), test_mac(), test_rc2(), test_rc4(), test_rsa_encrypt(), test_rsa_round_trip(), and test_schannel_provider().

◆ CryptEncryptMessage()

WINCRYPT32API BOOL WINAPI CryptEncryptMessage ( PCRYPT_ENCRYPT_MESSAGE_PARA  pEncryptPara,
DWORD  cRecipientCert,
PCCERT_CONTEXT  rgpRecipientCert[],
const BYTE pbToBeEncrypted,
DWORD  cbToBeEncrypted,
BYTE pbEncryptedBlob,
DWORD pcbEncryptedBlob 
)

Definition at line 521 of file message.c.

525{
526 BOOL ret = TRUE;
527 DWORD i;
528 PCERT_INFO *certInfo = NULL;
529 CMSG_ENVELOPED_ENCODE_INFO envelopedInfo;
530 HCRYPTMSG msg = 0;
531
532 TRACE("(%p, %d, %p, %p, %d, %p, %p)\n", pEncryptPara, cRecipientCert,
533 rgpRecipientCert, pbToBeEncrypted, cbToBeEncrypted, pbEncryptedBlob,
534 pcbEncryptedBlob);
535
536 if (pEncryptPara->cbSize != sizeof(CRYPT_ENCRYPT_MESSAGE_PARA) ||
539 {
540 *pcbEncryptedBlob = 0;
542 return FALSE;
543 }
544
545 memset(&envelopedInfo, 0, sizeof(envelopedInfo));
546 envelopedInfo.cbSize = sizeof(envelopedInfo);
547 envelopedInfo.hCryptProv = pEncryptPara->hCryptProv;
548 envelopedInfo.ContentEncryptionAlgorithm =
549 pEncryptPara->ContentEncryptionAlgorithm;
550 envelopedInfo.pvEncryptionAuxInfo = pEncryptPara->pvEncryptionAuxInfo;
551
552 if (cRecipientCert)
553 {
554 certInfo = CryptMemAlloc(sizeof(PCERT_INFO) * cRecipientCert);
555 if (certInfo)
556 {
557 for (i = 0; i < cRecipientCert; ++i)
558 certInfo[i] = rgpRecipientCert[i]->pCertInfo;
559 envelopedInfo.cRecipients = cRecipientCert;
560 envelopedInfo.rgpRecipientCert = certInfo;
561 }
562 else
563 ret = FALSE;
564 }
565
566 if (ret)
567 msg = CryptMsgOpenToEncode(pEncryptPara->dwMsgEncodingType, 0,
568 CMSG_ENVELOPED, &envelopedInfo, NULL, NULL);
569 if (msg)
570 {
571 ret = CryptMsgUpdate(msg, pbToBeEncrypted, cbToBeEncrypted, TRUE);
572 if (ret)
573 ret = CryptMsgGetParam(msg, CMSG_CONTENT_PARAM, 0, pbEncryptedBlob,
574 pcbEncryptedBlob);
576 }
577 else
578 ret = FALSE;
579
580 CryptMemFree(certInfo);
581 if (!ret) *pcbEncryptedBlob = 0;
582 return ret;
583}
HCRYPTMSG WINAPI CryptMsgOpenToEncode(DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID, PCMSG_STREAM_INFO pStreamInfo)
Definition: msg.c:2034
HCRYPTPROV_LEGACY hCryptProv
Definition: wincrypt.h:3984
PCERT_INFO * rgpRecipientCert
Definition: wincrypt.h:3988
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm
Definition: wincrypt.h:3985
HCRYPTPROV_LEGACY hCryptProv
Definition: wincrypt.h:1694
CRYPT_ALGORITHM_IDENTIFIER ContentEncryptionAlgorithm
Definition: wincrypt.h:1695
#define CMSG_ENVELOPED
Definition: wincrypt.h:3846
#define GET_CMSG_ENCODING_TYPE(x)
Definition: wincrypt.h:2497

Referenced by test_encrypt_message().

◆ CryptEnumOIDFunction()

WINCRYPT32API BOOL WINAPI CryptEnumOIDFunction ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
LPCSTR  pszOID,
DWORD  dwFlags,
void pvArg,
PFN_CRYPT_ENUM_OID_FUNC  pfnEnumOIDFunc 
)

◆ CryptEnumOIDInfo()

WINCRYPT32API BOOL WINAPI CryptEnumOIDInfo ( DWORD  dwGroupId,
DWORD  dwFlags,
void pvArg,
PFN_CRYPT_ENUM_OID_INFO  pfnEnumOIDInfo 
)

Definition at line 1776 of file oid.c.

1778{
1779 BOOL ret = TRUE;
1780 struct OIDInfo *info;
1781
1782 TRACE("(%d, %08x, %p, %p)\n", dwGroupId, dwFlags, pvArg,
1783 pfnEnumOIDInfo);
1784
1787 {
1788 if (!dwGroupId || dwGroupId == info->info.dwGroupId)
1789 {
1790 ret = pfnEnumOIDInfo(&info->info, pvArg);
1791 if (!ret)
1792 break;
1793 }
1794 }
1796 return ret;
1797}
static CRITICAL_SECTION oidInfoCS
Definition: oid.c:1198
Definition: oid.c:1566
CRYPT_OID_INFO info
Definition: oid.c:1567

Referenced by PrintOID(), and WTHelperGetKnownUsages().

◆ CryptEnumProvidersA()

WINADVAPI BOOL WINAPI CryptEnumProvidersA ( DWORD  dwIndex,
DWORD pdwReserved,
DWORD  dwFlags,
DWORD pdwProvType,
LPSTR  pszProvName,
DWORD pcbProvName 
)

Definition at line 1228 of file crypt.c.

1230{
1231 PWSTR str = NULL;
1232 DWORD bufsize;
1233 BOOL ret;
1234
1235 TRACE("(%d, %p, %08x, %p, %p, %p)\n", dwIndex, pdwReserved, dwFlags,
1236 pdwProvType, pszProvName, pcbProvName);
1237
1238 if(!CryptEnumProvidersW(dwIndex, pdwReserved, dwFlags, pdwProvType, NULL, &bufsize))
1239 return FALSE;
1240 if ( pszProvName && !(str = CRYPT_Alloc(bufsize)) )
1241 {
1243 return FALSE;
1244 }
1245 ret = CryptEnumProvidersW(dwIndex, pdwReserved, dwFlags, pdwProvType, str, &bufsize);
1246 if (str)
1247 CRYPT_UnicodeToANSI(str, &pszProvName, *pcbProvName);
1248 *pcbProvName = bufsize / sizeof(WCHAR); /* FIXME: not correct */
1249 if (str)
1250 {
1251 CRYPT_Free(str);
1253 {
1255 return FALSE;
1256 }
1257 }
1258 return ret;
1259}
#define ERROR_INSUFFICIENT_BUFFER
Definition: dderror.h:10
BOOL WINAPI CryptEnumProvidersW(DWORD dwIndex, DWORD *pdwReserved, DWORD dwFlags, DWORD *pdwProvType, LPWSTR pszProvName, DWORD *pcbProvName)
Definition: crypt.c:1136
GLenum GLuint GLsizei bufsize
Definition: glext.h:7473

◆ CryptEnumProvidersW()

WINADVAPI BOOL WINAPI CryptEnumProvidersW ( DWORD  dwIndex,
DWORD pdwReserved,
DWORD  dwFlags,
DWORD pdwProvType,
LPWSTR  pszProvName,
DWORD pcbProvName 
)

Definition at line 1136 of file crypt.c.

1138{
1139 HKEY hKey;
1140 static const WCHAR providerW[] = {
1141 'S','o','f','t','w','a','r','e','\\',
1142 'M','i','c','r','o','s','o','f','t','\\',
1143 'C','r','y','p','t','o','g','r','a','p','h','y','\\',
1144 'D','e','f','a','u','l','t','s','\\',
1145 'P','r','o','v','i','d','e','r',0
1146 };
1147 static const WCHAR typeW[] = {'T','y','p','e',0};
1148 BOOL ret;
1149
1150 TRACE("(%d, %p, %d, %p, %p, %p)\n", dwIndex, pdwReserved, dwFlags,
1151 pdwProvType, pszProvName, pcbProvName);
1152
1153 if (pdwReserved || !pcbProvName)
1154 {
1156 return FALSE;
1157 }
1158 if (dwFlags)
1159 {
1161 return FALSE;
1162 }
1163
1164 if (RegOpenKeyW(HKEY_LOCAL_MACHINE, providerW, &hKey))
1165 {
1167 return FALSE;
1168 }
1169
1170 ret = TRUE;
1171 if (!pszProvName)
1172 {
1173 DWORD numkeys;
1174 WCHAR *provNameW;
1175
1176 RegQueryInfoKeyW(hKey, NULL, NULL, NULL, &numkeys, pcbProvName,
1177 NULL, NULL, NULL, NULL, NULL, NULL);
1178
1179 if (!(provNameW = CRYPT_Alloc(*pcbProvName * sizeof(WCHAR))))
1180 {
1183 return FALSE;
1184 }
1185
1186 RegEnumKeyExW(hKey, dwIndex, provNameW, pcbProvName, NULL, NULL, NULL, NULL);
1187 CRYPT_Free(provNameW);
1188 (*pcbProvName)++;
1189 *pcbProvName *= sizeof(WCHAR);
1190
1191 if (dwIndex >= numkeys)
1192 {
1194 ret = FALSE;
1195 }
1196 } else {
1197 DWORD size = sizeof(DWORD);
1198 DWORD result;
1199 HKEY subkey;
1200
1201 result = RegEnumKeyW(hKey, dwIndex, pszProvName, *pcbProvName / sizeof(WCHAR));
1202 if (result)
1203 {
1206 return FALSE;
1207 }
1208 if (RegOpenKeyW(hKey, pszProvName, &subkey))
1209 {
1211 return FALSE;
1212 }
1213
1214 if (RegQueryValueExW(subkey, typeW, NULL, NULL, (BYTE*)pdwProvType, &size))
1215 ret = FALSE;
1216
1217 RegCloseKey(subkey);
1218 }
1220 return ret;
1221}
LONG WINAPI RegQueryInfoKeyW(HKEY hKey, LPWSTR lpClass, LPDWORD lpcClass, LPDWORD lpReserved, LPDWORD lpcSubKeys, LPDWORD lpcMaxSubKeyLen, LPDWORD lpcMaxClassLen, LPDWORD lpcValues, LPDWORD lpcMaxValueNameLen, LPDWORD lpcMaxValueLen, LPDWORD lpcbSecurityDescriptor, PFILETIME lpftLastWriteTime)
Definition: reg.c:3662
LONG WINAPI RegEnumKeyW(HKEY hKey, DWORD dwIndex, LPWSTR lpName, DWORD cbName)
Definition: reg.c:2393
GLuint64EXT * result
Definition: glext.h:11304
#define NTE_FAIL
Definition: winerror.h:4280

Referenced by CryptEnumProvidersA(), find_matching_provider(), and I_CryptGetDefaultCryptProv().

◆ CryptEnumProviderTypesA()

WINADVAPI BOOL WINAPI CryptEnumProviderTypesA ( DWORD  dwIndex,
DWORD pdwReserved,
DWORD  dwFlags,
DWORD pdwProvType,
LPSTR  pszTypeName,
DWORD pcbTypeName 
)

Definition at line 1362 of file crypt.c.

1364{
1365 PWSTR str = NULL;
1366 DWORD bufsize;
1367 BOOL ret;
1368
1369 TRACE("(%d, %p, %08x, %p, %p, %p)\n", dwIndex, pdwReserved, dwFlags,
1370 pdwProvType, pszTypeName, pcbTypeName);
1371
1372 if(!CryptEnumProviderTypesW(dwIndex, pdwReserved, dwFlags, pdwProvType, NULL, &bufsize))
1373 return FALSE;
1374 if ( pszTypeName && !(str = CRYPT_Alloc(bufsize)) )
1375 {
1377 return FALSE;
1378 }
1379 ret = CryptEnumProviderTypesW(dwIndex, pdwReserved, dwFlags, pdwProvType, str, &bufsize);
1380 if (str)
1381 CRYPT_UnicodeToANSI(str, &pszTypeName, *pcbTypeName);
1382 *pcbTypeName = bufsize / sizeof(WCHAR);
1383 if (str)
1384 {
1385 CRYPT_Free(str);
1387 {
1389 return FALSE;
1390 }
1391 }
1392 return ret;
1393}
BOOL WINAPI CryptEnumProviderTypesW(DWORD dwIndex, DWORD *pdwReserved, DWORD dwFlags, DWORD *pdwProvType, LPWSTR pszTypeName, DWORD *pcbTypeName)
Definition: crypt.c:1283

◆ CryptEnumProviderTypesW()

WINADVAPI BOOL WINAPI CryptEnumProviderTypesW ( DWORD  dwIndex,
DWORD pdwReserved,
DWORD  dwFlags,
DWORD pdwProvType,
LPWSTR  pszTypeName,
DWORD pcbTypeName 
)

Definition at line 1283 of file crypt.c.

1285{
1286 HKEY hKey, hSubkey;
1287 DWORD keylen, numkeys, dwType;
1288 PWSTR keyname, ch;
1289 DWORD result;
1290 static const WCHAR KEYSTR[] = {
1291 'S','o','f','t','w','a','r','e','\\',
1292 'M','i','c','r','o','s','o','f','t','\\',
1293 'C','r','y','p','t','o','g','r','a','p','h','y','\\',
1294 'D','e','f','a','u','l','t','s','\\',
1295 'P','r','o','v','i','d','e','r',' ','T','y','p','e','s',0
1296 };
1297 static const WCHAR typenameW[] = {'T','y','p','e','N','a','m','e',0};
1298
1299 TRACE("(%d, %p, %08x, %p, %p, %p)\n", dwIndex, pdwReserved,
1300 dwFlags, pdwProvType, pszTypeName, pcbTypeName);
1301
1302 if (pdwReserved || !pdwProvType || !pcbTypeName)
1303 {
1305 return FALSE;
1306 }
1307 if (dwFlags)
1308 {
1310 return FALSE;
1311 }
1312
1313 if (RegOpenKeyW(HKEY_LOCAL_MACHINE, KEYSTR, &hKey))
1314 return FALSE;
1315
1316 RegQueryInfoKeyW(hKey, NULL, NULL, NULL, &numkeys, &keylen, NULL, NULL, NULL, NULL, NULL, NULL);
1317 if (dwIndex >= numkeys)
1318 {
1321 return FALSE;
1322 }
1323 keylen++;
1324 if ( !(keyname = CRYPT_Alloc(keylen*sizeof(WCHAR))) )
1325 {
1328 return FALSE;
1329 }
1330 if ( RegEnumKeyW(hKey, dwIndex, keyname, keylen) ) {
1331 CRYPT_Free(keyname);
1333 return FALSE;
1334 }
1335 RegOpenKeyW(hKey, keyname, &hSubkey);
1337
1338 ch = keyname + strlenW(keyname);
1339 /* Convert "Type 000" to 0, etc/ */
1340 *pdwProvType = *(--ch) - '0';
1341 *pdwProvType += (*(--ch) - '0') * 10;
1342 *pdwProvType += (*(--ch) - '0') * 100;
1343 CRYPT_Free(keyname);
1344
1345 result = RegQueryValueExW(hSubkey, typenameW, NULL, &dwType, (LPBYTE)pszTypeName, pcbTypeName);
1346 if (result)
1347 {
1349 RegCloseKey(hSubkey);
1350 return FALSE;
1351 }
1352
1353 RegCloseKey(hSubkey);
1354 return TRUE;
1355}

Referenced by CryptEnumProviderTypesA().

◆ CryptExportKey()

WINADVAPI BOOL WINAPI CryptExportKey ( HCRYPTKEY  hKey,
HCRYPTKEY  hExpKey,
DWORD  dwBlobType,
DWORD  dwFlags,
BYTE pbData,
DWORD pdwDataLen 
)

Definition at line 1416 of file crypt.c.

1418{
1419 PCRYPTPROV prov;
1420 PCRYPTKEY key = (PCRYPTKEY)hKey, expkey = (PCRYPTKEY)hExpKey;
1421
1422 TRACE("(0x%lx, 0x%lx, %d, %08x, %p, %p)\n", hKey, hExpKey, dwBlobType, dwFlags, pbData, pdwDataLen);
1423
1424 if (!key || !pdwDataLen || !key->pProvider ||
1425 key->dwMagic != MAGIC_CRYPTKEY || key->pProvider->dwMagic != MAGIC_CRYPTPROV)
1426 {
1428 return FALSE;
1429 }
1430
1431 prov = key->pProvider;
1432 return prov->pFuncs->pCPExportKey(prov->hPrivate, key->hPrivate, expkey ? expkey->hPrivate : 0,
1433 dwBlobType, dwFlags, pbData, pdwDataLen);
1434}

Referenced by CRYPT_ExportKeyTrans(), CRYPT_ExportPublicKeyInfoEx(), rdssl_cert_to_rkey(), test_import_export(), test_import_private(), test_key_permissions(), test_rsa_encrypt(), test_rsa_round_trip(), and testAcquireCertPrivateKey().

◆ CryptExportPublicKeyInfo()

WINCRYPT32API BOOL WINAPI CryptExportPublicKeyInfo ( HCRYPTPROV_OR_NCRYPT_KEY_HANDLE  hCryptProv,
DWORD  dwKeySpec,
DWORD  dwCertEncodingType,
PCERT_PUBLIC_KEY_INFO  pInfo,
DWORD pcbInfo 
)

Definition at line 4775 of file encode.c.

4777{
4778 return CryptExportPublicKeyInfoEx(hCryptProv, dwKeySpec, dwCertEncodingType,
4779 NULL, 0, NULL, pInfo, pcbInfo);
4780}
BOOL WINAPI CryptExportPublicKeyInfoEx(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, LPSTR pszPublicKeyObjId, DWORD dwFlags, void *pvAuxInfo, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo)
Definition: encode.c:4934

Referenced by CertCreateSelfSignCertificate().

◆ CryptExportPublicKeyInfoEx()

WINCRYPT32API BOOL WINAPI CryptExportPublicKeyInfoEx ( HCRYPTPROV_OR_NCRYPT_KEY_HANDLE  hCryptProv,
DWORD  dwKeySpec,
DWORD  dwCertEncodingType,
LPSTR  pszPublicKeyObjId,
DWORD  dwFlags,
void pvAuxInfo,
PCERT_PUBLIC_KEY_INFO  pInfo,
DWORD pcbInfo 
)

Definition at line 4934 of file encode.c.

4937{
4938 static HCRYPTOIDFUNCSET set = NULL;
4939 BOOL ret;
4940 ExportPublicKeyInfoExFunc exportFunc = NULL;
4941 HCRYPTOIDFUNCADDR hFunc = NULL;
4942
4943 TRACE_(crypt)("(%08lx, %d, %08x, %s, %08x, %p, %p, %d)\n", hCryptProv,
4944 dwKeySpec, dwCertEncodingType, debugstr_a(pszPublicKeyObjId), dwFlags,
4945 pvAuxInfo, pInfo, pInfo ? *pcbInfo : 0);
4946
4947 if (!hCryptProv)
4948 {
4950 return FALSE;
4951 }
4952
4953 if (pszPublicKeyObjId)
4954 {
4955 if (!set)
4957 0);
4958 CryptGetOIDFunctionAddress(set, dwCertEncodingType, pszPublicKeyObjId,
4959 0, (void **)&exportFunc, &hFunc);
4960 }
4961 if (!exportFunc)
4962 exportFunc = CRYPT_ExportPublicKeyInfoEx;
4963 ret = exportFunc(hCryptProv, dwKeySpec, dwCertEncodingType,
4964 pszPublicKeyObjId, dwFlags, pvAuxInfo, pInfo, pcbInfo);
4965 if (hFunc)
4967 return ret;
4968}
static BOOL WINAPI CRYPT_ExportPublicKeyInfoEx(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, LPSTR pszPublicKeyObjId, DWORD dwFlags, void *pvAuxInfo, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo)
Definition: encode.c:4786
BOOL(WINAPI * ExportPublicKeyInfoExFunc)(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, LPSTR pszPublicKeyObjId, DWORD dwFlags, void *pvAuxInfo, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo)
Definition: encode.c:4930
#define CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC
Definition: wincrypt.h:2671

Referenced by CryptExportPublicKeyInfo(), testAcquireCertPrivateKey(), testExportPublicKey(), testVerifyCertSig(), and testVerifyCertSigEx().

◆ CryptFindCertificateKeyProvInfo()

WINCRYPT32API BOOL WINAPI CryptFindCertificateKeyProvInfo ( PCCERT_CONTEXT  pCert,
DWORD  dwFlags,
void pvReserved 
)

Definition at line 1153 of file cert.c.

1155{
1156 BOOL matches;
1157
1158 TRACE("(%p, %08x, %p)\n", pCert, dwFlags, pvReserved);
1159
1161 if (!matches)
1163 return matches;
1164}
static BOOL cert_prov_info_matches_cert(PCCERT_CONTEXT pCert)
Definition: cert.c:1132
static BOOL find_matching_provider(PCCERT_CONTEXT pCert, DWORD dwFlags)
Definition: cert.c:1063

◆ CryptFindLocalizedName()

WINCRYPT32API LPCWSTR WINAPI CryptFindLocalizedName ( LPCWSTR  pwszCryptName)

Definition at line 1182 of file oid.c.

1183{
1184 unsigned int i;
1185
1186 for(i = 0; i < ARRAY_SIZE(LocalizedKeys); i++)
1187 {
1188 if(!lstrcmpiW(LocalizedKeys[i], pwszCryptName))
1189 {
1190 return LocalizedNames[i];
1191 }
1192 }
1193
1194 FIXME("No name for: %s - stub\n",debugstr_w(pwszCryptName));
1195 return NULL;
1196}
static const LPCWSTR LocalizedKeys[]
Definition: oid.c:77
static WCHAR LocalizedNames[ARRAY_SIZE(LocalizedKeys)][256]
Definition: oid.c:78
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4265

Referenced by enum_store_callback(), and show_cert_stores().

◆ CryptFindOIDInfo()

WINCRYPT32API PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo ( DWORD  dwKeyType,
void pvKey,
DWORD  dwGroupId 
)

Definition at line 1799 of file oid.c.

1801{
1803
1804 TRACE("(%d, %p, %d)\n", dwKeyType, pvKey, dwGroupId);
1805
1806 switch(dwKeyType)
1807 {
1809 {
1810 struct OIDInfo *info;
1811
1812 TRACE("CRYPT_OID_INFO_ALGID_KEY: %d\n", *(DWORD *)pvKey);
1815 {
1816 if (info->info.u.Algid == *(DWORD *)pvKey &&
1817 (!dwGroupId || info->info.dwGroupId == dwGroupId))
1818 {
1819 ret = &info->info;
1820 break;
1821 }
1822 }
1824 break;
1825 }
1827 {
1828 struct OIDInfo *info;
1829
1830 TRACE("CRYPT_OID_INFO_NAME_KEY: %s\n", debugstr_w(pvKey));
1833 {
1834 if (!lstrcmpW(info->info.pwszName, pvKey) &&
1835 (!dwGroupId || info->info.dwGroupId == dwGroupId))
1836 {
1837 ret = &info->info;
1838 break;
1839 }
1840 }
1842 break;
1843 }
1845 {
1846 struct OIDInfo *info;
1847 LPSTR oid = pvKey;
1848
1849 TRACE("CRYPT_OID_INFO_OID_KEY: %s\n", debugstr_a(oid));
1852 {
1853 if (!lstrcmpA(info->info.pszOID, oid) &&
1854 (!dwGroupId || info->info.dwGroupId == dwGroupId))
1855 {
1856 ret = &info->info;
1857 break;
1858 }
1859 }
1861 break;
1862 }
1864 {
1865 struct OIDInfo *info;
1866
1867 TRACE("CRYPT_OID_INFO_SIGN_KEY: %d\n", *(DWORD *)pvKey);
1870 {
1871 if (info->info.u.Algid == *(DWORD *)pvKey &&
1872 info->info.ExtraInfo.cbData >= sizeof(DWORD) &&
1873 *(DWORD *)info->info.ExtraInfo.pbData ==
1874 *(DWORD *)((LPBYTE)pvKey + sizeof(DWORD)) &&
1875 (!dwGroupId || info->info.dwGroupId == dwGroupId))
1876 {
1877 ret = &info->info;
1878 break;
1879 }
1880 }
1882 break;
1883 }
1884 }
1885 return ret;
1886}
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4246
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
Definition: locale.c:4198
#define CRYPT_OID_INFO_SIGN_KEY
Definition: wincrypt.h:1958

Referenced by add_cert_extension_detail(), add_oid_text_to_control(), cert_name_to_str_with_indent(), CertAlgIdToOID(), CertGetPublicKeyLength(), CertNameToStrA(), CertOIDToAlgId(), CertStrToNameW(), CRYPT_FormatEnhancedKeyUsage(), CRYPT_VerifyCertSignatureFromPublicKeyInfo(), CryptHashToBeSigned(), CryptSignCertificate(), field_format_public_key(), find_oid_in_list(), get_cert_usages(), initialize_purpose_selection(), request_query_option(), show_cert_usages(), test_findOIDInfo(), and test_registerOIDInfo().

◆ CryptFlushTimeValidObject()

BOOL WINAPI CryptFlushTimeValidObject ( LPCSTR  pszFlushTimeValidOid,
void pvPara,
PCCERT_CONTEXT  pIssuer,
DWORD  dwFlags,
void pvReserved 
)

◆ CryptFormatObject()

WINCRYPT32API BOOL WINAPI CryptFormatObject ( DWORD  dwCertEncodingType,
DWORD  dwFormatType,
DWORD  dwFormatStrType,
void pFormatStruct,
LPCSTR  lpszStructType,
const BYTE pbEncoded,
DWORD  cbEncoded,
void pbFormat,
DWORD pcbFormat 
)

Definition at line 2549 of file object.c.

2552{
2554 HCRYPTOIDFUNCADDR hFunc = NULL;
2555 BOOL ret = FALSE;
2556
2557 TRACE("(%08x, %d, %08x, %p, %s, %p, %d, %p, %p)\n", dwCertEncodingType,
2558 dwFormatType, dwFormatStrType, pFormatStruct, debugstr_a(lpszStructType),
2559 pbEncoded, cbEncoded, pbFormat, pcbFormat);
2560
2561 if (!(format = CRYPT_GetBuiltinFormatFunction(dwCertEncodingType,
2562 dwFormatStrType, lpszStructType)))
2563 {
2564 static HCRYPTOIDFUNCSET set = NULL;
2565
2566 if (!set)
2568 CryptGetOIDFunctionAddress(set, dwCertEncodingType, lpszStructType, 0,
2569 (void **)&format, &hFunc);
2570 }
2571 if (!format && (dwCertEncodingType & CERT_ENCODING_TYPE_MASK) ==
2572 X509_ASN_ENCODING && !(dwFormatStrType & CRYPT_FORMAT_STR_NO_HEX))
2574 if (format)
2575 ret = format(dwCertEncodingType, dwFormatType, dwFormatStrType,
2576 pFormatStruct, lpszStructType, pbEncoded, cbEncoded, pbFormat,
2577 pcbFormat);
2578 if (hFunc)
2580 return ret;
2581}
static BOOL WINAPI CRYPT_FormatHexString(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
Definition: object.c:788
static CryptFormatObjectFunc CRYPT_GetBuiltinFormatFunction(DWORD encodingType, DWORD formatStrType, LPCSTR lpszStructType)
Definition: object.c:2474
BOOL(WINAPI * CryptFormatObjectFunc)(DWORD, DWORD, DWORD, void *, LPCSTR, const BYTE *, DWORD, void *, DWORD *)
Definition: object.c:2471
Definition: format.c:58
#define CRYPT_OID_FORMAT_OBJECT_FUNC
Definition: wincrypt.h:2668
#define CRYPT_FORMAT_STR_NO_HEX
Definition: wincrypt.h:3671

Referenced by crypt_format_extension().

◆ CryptFreeOIDFunctionAddress()

WINCRYPT32API BOOL WINAPI CryptFreeOIDFunctionAddress ( HCRYPTOIDFUNCADDR  hFuncAddr,
DWORD  dwFlags 
)

Definition at line 468 of file oid.c.

470{
471 TRACE("(%p, %08x)\n", hFuncAddr, dwFlags);
472
473 /* FIXME: as MSDN states, need to check for DllCanUnloadNow in the DLL,
474 * and only unload it if it can be unloaded. Also need to implement ref
475 * counting on the functions.
476 */
477 if (hFuncAddr)
478 {
479 struct FuncAddr *addr = hFuncAddr;
480
481 if (!is_module_registered(addr->lib))
482 {
483 CryptMemFree(addr->dllList);
484 FreeLibrary(addr->lib);
486 }
487 }
488 return TRUE;
489}
static BOOL is_module_registered(HMODULE hModule)
Definition: oid.c:436
GLenum const GLvoid * addr
Definition: glext.h:9621
Definition: oid.c:292

Referenced by CertVerifyCertificateChainPolicy(), CertVerifyRevocation(), CRYPT_ExportEncryptedKey(), CRYPT_ExportPublicKeyInfoEx(), CRYPT_GenKey(), CRYPT_ImportEncryptedKey(), CRYPT_ImportPublicKeyInfoEx(), CRYPT_ProvOpenStore(), CryptDecodeObjectEx(), CryptEncodeObject(), CryptEncodeObjectEx(), CryptExportPublicKeyInfoEx(), CryptFormatObject(), CryptGetDefaultOIDFunctionAddress(), CryptGetObjectUrl(), CryptImportPublicKeyInfoEx(), CryptRetrieveObjectByUrlW(), and test_installOIDFunctionAddress().

◆ CryptGenKey()

WINADVAPI BOOL WINAPI CryptGenKey ( HCRYPTPROV  hProv,
ALG_ID  Algid,
DWORD  dwFlags,
HCRYPTKEY phKey 
)

Definition at line 1451 of file crypt.c.

1452{
1453 PCRYPTPROV prov = (PCRYPTPROV)hProv;
1454 PCRYPTKEY key;
1455
1456 TRACE("(0x%lx, %d, %08x, %p)\n", hProv, Algid, dwFlags, phKey);
1457
1458 if (!phKey || !prov || prov->dwMagic != MAGIC_CRYPTPROV)
1459 {
1461 return FALSE;
1462 }
1463 if ( !(key = CRYPT_Alloc(sizeof(CRYPTKEY))) )
1464 {
1466 return FALSE;
1467 }
1468
1469 key->pProvider = prov;
1470 key->dwMagic = MAGIC_CRYPTKEY;
1471 if (prov->pFuncs->pCPGenKey(prov->hPrivate, Algid, dwFlags, &key->hPrivate))
1472 {
1473 *phKey = (HCRYPTKEY)key;
1474 return TRUE;
1475 }
1476
1477 /* CSP error! */
1478 key->dwMagic = 0;
1479 CRYPT_Free(key);
1480 return FALSE;
1481}

Referenced by CertCreateSelfSignCertificate(), CRYPT_CreateKeyProv(), CRYPT_GenKey(), init_aes_environment(), init_base_environment(), test_null_provider(), test_rsa_round_trip(), testCreateSelfSignCert(), testExportPublicKey(), and testSignCert().

◆ CryptGenRandom()

WINADVAPI BOOL WINAPI CryptGenRandom ( HCRYPTPROV  hProv,
DWORD  dwLen,
BYTE pbBuffer 
)

Definition at line 700 of file crypt.c.

701{
703
704 TRACE("(0x%lx, %d, %p)\n", hProv, dwLen, pbBuffer);
705
706 if (!hProv)
707 {
709 return FALSE;
710 }
711
712 if (prov->dwMagic != MAGIC_CRYPTPROV)
713 {
715 return FALSE;
716 }
717
718 return prov->pFuncs->pCPGenRandom(prov->hPrivate, dwLen, pbBuffer);
719}

Referenced by CertCreateSelfSignCertificate(), fill_protect_data(), and test_gen_random().

◆ CryptGetAsyncParam()

WINCRYPT32API BOOL WINAPI CryptGetAsyncParam ( HCRYPTASYNC  hAsync,
LPSTR  pszParamOid,
LPVOID ppvParam,
PFN_CRYPT_ASYNC_PARAM_FREE_FUNC ppfnFree 
)

◆ CryptGetDefaultOIDDllList()

WINCRYPT32API BOOL WINAPI CryptGetDefaultOIDDllList ( HCRYPTOIDFUNCSET  hFuncSet,
DWORD  dwEncodingType,
LPWSTR  pwszDllList,
DWORD pcchDllList 
)

Definition at line 193 of file oid.c.

195{
196 BOOL ret = TRUE;
197 struct OIDFunctionSet *set = hFuncSet;
198 char *keyName;
199 HKEY key;
200 LSTATUS rc;
201
202 TRACE("(%p, %d, %p, %p)\n", hFuncSet, dwEncodingType, pwszDllList,
203 pcchDllList);
204
205 keyName = CRYPT_GetKeyName(dwEncodingType, set->name, "DEFAULT");
206 rc = RegCreateKeyExA(HKEY_LOCAL_MACHINE, keyName, 0, NULL, 0,
207 KEY_READ, NULL, &key, NULL);
208 if (!rc)
209 {
210 DWORD size = *pcchDllList * sizeof(WCHAR);
211
212 rc = RegQueryValueExW(key, DllW, NULL, NULL, (LPBYTE)pwszDllList,
213 &size);
214 if (!rc)
215 *pcchDllList = size / sizeof(WCHAR);
216 else
217 {
218 /* No value, return an empty list */
219 if (pwszDllList && *pcchDllList)
220 *pwszDllList = '\0';
221 *pcchDllList = 1;
222 }
224 }
225 else
226 {
227 /* No value, return an empty list */
228 if (pwszDllList && *pcchDllList)
229 *pwszDllList = '\0';
230 *pcchDllList = 1;
231 }
232 CryptMemFree(keyName);
233
234 return ret;
235}
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
LONG WINAPI RegCreateKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD Reserved, _In_ LPSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_ LPDWORD lpdwDisposition)
Definition: reg.c:1034
static const WCHAR DllW[]
Definition: oid.c:43
static char * CRYPT_GetKeyName(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
Definition: oid.c:157
#define KEY_READ
Definition: nt_native.h:1023

Referenced by CertVerifyRevocation(), CryptGetDefaultOIDFunctionAddress(), and test_oidFunctionSet().

◆ CryptGetDefaultOIDFunctionAddress()

WINCRYPT32API BOOL WINAPI CryptGetDefaultOIDFunctionAddress ( HCRYPTOIDFUNCSET  hFuncSet,
DWORD  dwEncodingType,
LPCWSTR  pwszDll,
DWORD  dwFlags,
void **  ppvFuncAddr,
HCRYPTOIDFUNCADDR phFuncAddr 
)

Definition at line 511 of file oid.c.

514{
515 struct OIDFunctionSet *set = hFuncSet;
516 BOOL ret = FALSE;
517
518 TRACE("(%p, %d, %s, %08x, %p, %p)\n", hFuncSet, dwEncodingType,
519 debugstr_w(pwszDll), dwFlags, ppvFuncAddr, phFuncAddr);
520
521 if (pwszDll)
522 {
523 HMODULE lib;
524
525 *phFuncAddr = NULL;
526 ret = CRYPT_GetFuncFromDll(pwszDll, set->name, &lib, ppvFuncAddr);
527 if (ret)
528 {
529 struct FuncAddr *addr = CryptMemAlloc(sizeof(struct FuncAddr));
530
531 if (addr)
532 {
533 addr->lib = lib;
534 addr->dllList = addr->currentDll = NULL;
535 *phFuncAddr = addr;
536 }
537 else
538 {
540 *ppvFuncAddr = NULL;
542 ret = FALSE;
543 }
544 }
545 else
547 }
548 else
549 {
550 struct FuncAddr *addr = *phFuncAddr;
551
552 if (!addr)
553 {
554 DWORD size;
555
556 ret = CryptGetDefaultOIDDllList(hFuncSet, dwEncodingType, NULL,
557 &size);
558 if (ret)
559 {
561
562 if (dllList)
563 {
564 ret = CryptGetDefaultOIDDllList(hFuncSet, dwEncodingType,
565 dllList, &size);
566 if (ret)
567 {
568 addr = CryptMemAlloc(sizeof(struct FuncAddr));
569 if (addr)
570 {
571 addr->dllList = dllList;
572 addr->currentDll = dllList;
573 addr->lib = NULL;
574 *phFuncAddr = addr;
575 }
576 else
577 {
580 ret = FALSE;
581 }
582 }
583 }
584 else
585 {
587 ret = FALSE;
588 }
589 }
590 }
591 if (addr)
592 {
593 if (!*addr->currentDll)
594 {
595 CryptFreeOIDFunctionAddress(*phFuncAddr, 0);
597 *phFuncAddr = NULL;
598 ret = FALSE;
599 }
600 else
601 {
602 /* FIXME: as elsewhere, can't free until DllCanUnloadNow says
603 * it's possible, and should defer unloading for some time to
604 * avoid repeated LoadLibrary/FreeLibrary on the same dll.
605 */
606 FreeLibrary(addr->lib);
607 ret = CRYPT_GetFuncFromDll(addr->currentDll, set->name,
608 &addr->lib, ppvFuncAddr);
609 if (ret)
610 {
611 /* Move past the current DLL */
612 addr->currentDll += lstrlenW(addr->currentDll) + 1;
613 *phFuncAddr = addr;
614 }
615 else
616 {
617 CryptFreeOIDFunctionAddress(*phFuncAddr, 0);
619 *phFuncAddr = NULL;
620 }
621 }
622 }
623 }
624 return ret;
625}
static BOOL CRYPT_GetFuncFromDll(LPCWSTR dll, LPCSTR func, HMODULE *lib, void **ppvFuncAddr)
Definition: oid.c:491
LPWSTR dllList
Definition: oid.c:294
HMODULE lib
Definition: oid.c:293

Referenced by CertVerifyRevocation(), and test_getDefaultOIDFunctionAddress().

◆ CryptGetDefaultProviderA()

WINADVAPI BOOL WINAPI CryptGetDefaultProviderA ( DWORD  dwProvType,
DWORD pdwReserved,
DWORD  dwFlags,
LPSTR  pszProvName,
DWORD pcbProvName 
)

Definition at line 1560 of file crypt.c.

1562{
1563 PWSTR str = NULL;
1564 DWORD bufsize;
1565 BOOL ret;
1566
1567 TRACE("(%d, %p, %08x, %p, %p)\n", dwProvType, pdwReserved, dwFlags, pszProvName, pcbProvName);
1568
1569 CryptGetDefaultProviderW(dwProvType, pdwReserved, dwFlags, NULL, &bufsize);
1570 if ( pszProvName && !(str = CRYPT_Alloc(bufsize)) )
1571 {
1573 return FALSE;
1574 }
1575 ret = CryptGetDefaultProviderW(dwProvType, pdwReserved, dwFlags, str, &bufsize);
1576 if (str)
1577 CRYPT_UnicodeToANSI(str, &pszProvName, *pcbProvName);
1578 *pcbProvName = bufsize / sizeof(WCHAR);
1579 if (str)
1580 {
1581 CRYPT_Free(str);
1583 {
1585 return FALSE;
1586 }
1587 }
1588 return ret;
1589}
BOOL WINAPI CryptGetDefaultProviderW(DWORD dwProvType, DWORD *pdwReserved, DWORD dwFlags, LPWSTR pszProvName, DWORD *pcbProvName)
Definition: crypt.c:1503

◆ CryptGetDefaultProviderW()

WINADVAPI BOOL WINAPI CryptGetDefaultProviderW ( DWORD  dwProvType,
DWORD pdwReserved,
DWORD  dwFlags,
LPWSTR  pszProvName,
DWORD pcbProvName 
)

Definition at line 1503 of file crypt.c.

1505{
1506 HKEY hKey;
1507 PWSTR keyname;
1508 DWORD result;
1509 static const WCHAR nameW[] = {'N','a','m','e',0};
1510
1511 if (pdwReserved || !pcbProvName)
1512 {
1514 return FALSE;
1515 }
1517 {
1519 return FALSE;
1520 }
1521 if (dwProvType > 999)
1522 {
1524 return FALSE;
1525 }
1526 if ( !(keyname = CRYPT_GetTypeKeyName(dwProvType, dwFlags & CRYPT_USER_DEFAULT)) )
1527 {
1529 return FALSE;
1530 }
1532 {
1533 CRYPT_Free(keyname);
1535 return FALSE;
1536 }
1537 CRYPT_Free(keyname);
1538
1539 result = RegQueryValueExW(hKey, nameW, NULL, NULL, (LPBYTE)pszProvName, pcbProvName);
1541
1542 if (result)
1543 {
1544 if (result != ERROR_MORE_DATA)
1546 else
1548
1549 return FALSE;
1550 }
1551
1552 return TRUE;
1553}
#define CRYPT_MACHINE_DEFAULT
Definition: wincrypt.h:2280
#define CRYPT_USER_DEFAULT
Definition: wincrypt.h:2281

Referenced by CryptGetDefaultProviderA().

◆ CryptGetHashParam()

WINADVAPI BOOL WINAPI CryptGetHashParam ( HCRYPTHASH  hHash,
DWORD  dwParam,
BYTE pbData,
DWORD pdwDataLen,
DWORD  dwFlags 
)

◆ CryptGetKeyParam()

WINADVAPI BOOL WINAPI CryptGetKeyParam ( HCRYPTKEY  hKey,
DWORD  dwParam,
BYTE pbData,
DWORD pdwDataLen,
DWORD  dwFlags 
)

Definition at line 1649 of file crypt.c.

1651{
1652 PCRYPTPROV prov;
1654
1655 TRACE("(0x%lx, %d, %p, %p, %08x)\n", hKey, dwParam, pbData, pdwDataLen, dwFlags);
1656
1657 if (!key || !pdwDataLen || !key->pProvider ||
1658 key->dwMagic != MAGIC_CRYPTKEY || key->pProvider->dwMagic != MAGIC_CRYPTPROV)
1659 {
1661 return FALSE;
1662 }
1663
1664 prov = key->pProvider;
1665 return prov->pFuncs->pCPGetKeyParam(prov->hPrivate, key->hPrivate, dwParam,
1666 pbData, pdwDataLen, dwFlags);
1667}

Referenced by CertGetPublicKeyLength(), export_is_key_exportable(), test_aes(), test_block_cipher_modes(), test_des(), test_import_export(), test_import_private(), test_key_derivation(), test_key_permissions(), test_rc2(), test_rc4(), test_rsa_encrypt(), and testImportPublicKey().

◆ CryptGetMessageCertificates()

WINCRYPT32API HCERTSTORE WINAPI CryptGetMessageCertificates ( DWORD  dwMsgAndCertEncodingType,
HCRYPTPROV_LEGACY  hCryptProv,
DWORD  dwFlags,
const BYTE pbSignedBlob,
DWORD  cbSignedBlob 
)

Definition at line 28 of file message.c.

31{
32 CRYPT_DATA_BLOB blob = { cbSignedBlob, (LPBYTE)pbSignedBlob };
33
34 TRACE("(%08x, %ld, %d08x %p, %d)\n", dwMsgAndCertEncodingType, hCryptProv,
35 dwFlags, pbSignedBlob, cbSignedBlob);
36
37 return CertOpenStore(CERT_STORE_PROV_PKCS7, dwMsgAndCertEncodingType,
38 hCryptProv, dwFlags, &blob);
39}

◆ CryptGetMessageSignerCount()

WINCRYPT32API LONG WINAPI CryptGetMessageSignerCount ( DWORD  dwMsgEncodingType,
const BYTE pbSignedBlob,
DWORD  cbSignedBlob 
)

Definition at line 41 of file message.c.

43{
45 LONG count = -1;
46
47 TRACE("(%08x, %p, %d)\n", dwMsgEncodingType, pbSignedBlob, cbSignedBlob);
48
49 msg = CryptMsgOpenToDecode(dwMsgEncodingType, 0, 0, 0, NULL, NULL);
50 if (msg)
51 {
52 if (CryptMsgUpdate(msg, pbSignedBlob, cbSignedBlob, TRUE))
53 {
54 DWORD size = sizeof(count);
55
57 }
59 }
60 return count;
61}
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define CMSG_SIGNER_COUNT_PARAM
Definition: wincrypt.h:4094

Referenced by test_msg_get_signer_count().

◆ CryptGetObjectUrl()

BOOL WINAPI CryptGetObjectUrl ( LPCSTR  pszUrlOid,
LPVOID  pvPara,
DWORD  dwFlags,
PCRYPT_URL_ARRAY  pUrlArray,
DWORD pcbUrlArray,
PCRYPT_URL_INFO  pUrlInfo,
DWORD pcbUrlInfo,
LPVOID  pvReserved 
)

Definition at line 351 of file cryptnet_main.c.

354{
356 HCRYPTOIDFUNCADDR hFunc = NULL;
357 BOOL ret = FALSE;
358
359 TRACE("(%s, %p, %08x, %p, %p, %p, %p, %p)\n", debugstr_a(pszUrlOid),
360 pvPara, dwFlags, pUrlArray, pcbUrlArray, pUrlInfo, pcbUrlInfo, pvReserved);
361
362 if (IS_INTOID(pszUrlOid))
363 {
364 switch (LOWORD(pszUrlOid))
365 {
368 break;
371 break;
372 default:
373 FIXME("unimplemented for %s\n", url_oid_to_str(pszUrlOid));
375 }
376 }
377 else
378 {
379 static HCRYPTOIDFUNCSET set = NULL;
380
381 if (!set)
384 (void **)&func, &hFunc);
385 }
386 if (func)
387 ret = func(pszUrlOid, pvPara, dwFlags, pUrlArray, pcbUrlArray,
388 pUrlInfo, pcbUrlInfo, pvReserved);
389 if (hFunc)
391 return ret;
392}
static BOOL WINAPI CRYPT_GetUrlFromCertificateCRLDistPoint(LPCSTR pszUrlOid, LPVOID pvPara, DWORD dwFlags, PCRYPT_URL_ARRAY pUrlArray, DWORD *pcbUrlArray, PCRYPT_URL_INFO pUrlInfo, DWORD *pcbUrlInfo, LPVOID pvReserved)
static const char * url_oid_to_str(LPCSTR oid)
Definition: cryptnet_main.c:73
BOOL(WINAPI * UrlDllGetObjectUrlFunc)(LPCSTR, LPVOID, DWORD, PCRYPT_URL_ARRAY, DWORD *, PCRYPT_URL_INFO, DWORD *, LPVOID)
#define IS_INTOID(x)
Definition: cryptnet_main.c:39
static BOOL WINAPI CRYPT_GetUrlFromCertificateIssuer(LPCSTR pszUrlOid, LPVOID pvPara, DWORD dwFlags, PCRYPT_URL_ARRAY pUrlArray, DWORD *pcbUrlArray, PCRYPT_URL_INFO pUrlInfo, DWORD *pcbUrlInfo, LPVOID pvReserved)
#define URL_OID_CERTIFICATE_ISSUER
Definition: wincrypt.h:1748
#define URL_OID_GET_OBJECT_URL_FUNC
Definition: wincrypt.h:2678
#define URL_OID_CERTIFICATE_CRL_DIST_POINT
Definition: wincrypt.h:1749

Referenced by CRYPT_FindIssuer(), and test_getObjectUrl().

◆ CryptGetOIDFunctionAddress()

WINCRYPT32API BOOL WINAPI CryptGetOIDFunctionAddress ( HCRYPTOIDFUNCSET  hFuncSet,
DWORD  dwEncodingType,
LPCSTR  pszOID,
DWORD  dwFlags,
void **  ppvFuncAddr,
HCRYPTOIDFUNCADDR phFuncAddr 
)

Definition at line 387 of file oid.c.

390{
391 BOOL ret = FALSE;
392 struct OIDFunctionSet *set = hFuncSet;
393
394 TRACE("(%p, %d, %s, %08x, %p, %p)\n", hFuncSet, dwEncodingType,
395 debugstr_a(pszOID), dwFlags, ppvFuncAddr, phFuncAddr);
396
397 *ppvFuncAddr = NULL;
399 {
400 struct OIDFunction *function;
401
403 LIST_FOR_EACH_ENTRY(function, &set->functions, struct OIDFunction, next)
404 {
405 if (function->encoding == GET_CERT_ENCODING_TYPE(dwEncodingType))
406 {
407 if (!IS_INTOID(pszOID))
408 {
409 if (!IS_INTOID(function->entry.pszOID) &&
410 !strcasecmp(function->entry.pszOID, pszOID))
411 {
412 *ppvFuncAddr = function->entry.pvFuncAddr;
413 *phFuncAddr = NULL; /* FIXME: what should it be? */
414 ret = TRUE;
415 break;
416 }
417 }
418 else if (function->entry.pszOID == pszOID)
419 {
420 *ppvFuncAddr = function->entry.pvFuncAddr;
421 *phFuncAddr = NULL; /* FIXME: what should it be? */
422 ret = TRUE;
423 break;
424 }
425 }
426 }
428 }
429 if (!*ppvFuncAddr)
430 ret = CRYPT_GetFuncFromReg(dwEncodingType, pszOID, set->name,
431 ppvFuncAddr, phFuncAddr);
432 TRACE("returning %d\n", ret);
433 return ret;
434}
static BOOL CRYPT_GetFuncFromReg(DWORD dwEncodingType, LPCSTR pszOID, LPCSTR szFuncName, LPVOID *ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
Definition: oid.c:298
static unsigned __int64 next
Definition: rand_nt.c:6
CRYPT_OID_FUNC_ENTRY entry
Definition: oid.c:67
DWORD encoding
Definition: oid.c:66
void * pvFuncAddr
Definition: wincrypt.h:1570
LPCSTR pszOID
Definition: wincrypt.h:1569
#define CRYPT_GET_INSTALLED_OID_FUNC_FLAG
Definition: wincrypt.h:2703

Referenced by CertVerifyCertificateChainPolicy(), CRYPT_ExportEncryptedKey(), CRYPT_ExportPublicKeyInfoEx(), CRYPT_GenKey(), CRYPT_GetCreateFunction(), CRYPT_GetRetrieveFunction(), CRYPT_ImportEncryptedKey(), CRYPT_ImportPublicKeyInfoEx(), CRYPT_LoadDecoderExFunc(), CRYPT_LoadDecoderFunc(), CRYPT_LoadEncoderExFunc(), CRYPT_LoadEncoderFunc(), CRYPT_ProvOpenStore(), CryptExportPublicKeyInfoEx(), CryptFormatObject(), CryptGetObjectUrl(), CryptImportPublicKeyInfoEx(), test_installOIDFunctionAddress(), and test_oidFunctionSet().

◆ CryptGetOIDFunctionValue()

WINCRYPT32API BOOL WINAPI CryptGetOIDFunctionValue ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
LPCSTR  pszOID,
LPCWSTR  szValueName,
DWORD pdwValueType,
BYTE pbValueData,
DWORD pcbValueData 
)

Definition at line 854 of file oid.c.

857{
858 LPSTR szKey;
859 LONG rc;
860 HKEY hKey;
861
862 TRACE("%x %s %s %s %p %p %p\n", dwEncodingType, debugstr_a(pszFuncName),
863 debugstr_a(pszOID), debugstr_w(pwszValueName), pdwValueType, pbValueData,
864 pcbValueData);
865
866 if (!GET_CERT_ENCODING_TYPE(dwEncodingType))
867 return TRUE;
868
869 if (!pszFuncName || !pszOID || !pwszValueName)
870 {
872 return FALSE;
873 }
874
875 szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
876 rc = RegOpenKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
877 CryptMemFree(szKey);
878 if (rc)
879 SetLastError(rc);
880 else
881 {
882 rc = RegQueryValueExW(hKey, pwszValueName, NULL, pdwValueType,
883 pbValueData, pcbValueData);
884 if (rc)
885 SetLastError(rc);
887 }
888 return !rc;
889}
LONG WINAPI RegOpenKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3234
_In_z_ PCWSTR pwszValueName
Definition: ntuser.h:42

◆ CryptGetProvParam()

WINADVAPI BOOL WINAPI CryptGetProvParam ( HCRYPTPROV  hProv,
DWORD  dwParam,
BYTE pbData,
DWORD pdwDataLen,
DWORD  dwFlags 
)

Definition at line 1688 of file crypt.c.

1690{
1691 PCRYPTPROV prov = (PCRYPTPROV)hProv;
1692
1693 TRACE("(0x%lx, %d, %p, %p, %08x)\n", hProv, dwParam, pbData, pdwDataLen, dwFlags);
1694
1695 if (!prov || prov->dwMagic != MAGIC_CRYPTPROV)
1696 {
1698 return FALSE;
1699 }
1700
1701 return prov->pFuncs->pCPGetProvParam(prov->hPrivate, dwParam, pbData, pdwDataLen, dwFlags);
1702}

Referenced by CertContext_SetKeyProvInfo(), find_key_prov_info_in_provider(), is_supported_algid(), test_container_sd(), test_enum_container(), test_getDefaultCryptProv(), test_null_provider(), and test_prov().

◆ CryptGetTimeValidObject()

BOOL WINAPI CryptGetTimeValidObject ( LPCSTR  pszTimeValidOid,
void pvPara,
PCCERT_CONTEXT  pIssuer,
LPFILETIME  pftValidFor,
DWORD  dwFlags,
DWORD  dwTimeout,
void **  ppvObject,
PCRYPT_CREDENTIALS  pCredentials,
void pvReserved 
)

◆ CryptGetUserKey()

WINADVAPI BOOL WINAPI CryptGetUserKey ( HCRYPTPROV  hProv,
DWORD  dwKeySpec,
HCRYPTKEY phUserKey 
)

Definition at line 1718 of file crypt.c.

1719{
1720 PCRYPTPROV prov = (PCRYPTPROV)hProv;
1721 PCRYPTKEY key;
1722
1723 TRACE("(0x%lx, %d, %p)\n", hProv, dwKeySpec, phUserKey);
1724
1725 if (!prov)
1726 {
1728 return FALSE;
1729 }
1730 if (!phUserKey || prov->dwMagic != MAGIC_CRYPTPROV)
1731 {
1733 return FALSE;
1734 }
1735 if ( !(key = CRYPT_Alloc(sizeof(CRYPTKEY))) )
1736 {
1738 return FALSE;
1739 }
1740
1741 key->pProvider = prov;
1742 key->dwMagic = MAGIC_CRYPTKEY;
1743 if (prov->pFuncs->pCPGetUserKey(prov->hPrivate, dwKeySpec, &key->hPrivate))
1744 {
1745 *phUserKey = (HCRYPTKEY)key;
1746 return TRUE;
1747 }
1748
1749 /* CSP Error */
1750 key->dwMagic = 0;
1751 CRYPT_Free(key);
1752 *phUserKey = 0;
1753 return FALSE;
1754}

Referenced by CertCreateSelfSignCertificate(), CRYPT_ExportPublicKeyInfoEx(), CRYPT_ImportKeyTrans(), export_is_key_exportable(), test_import_export(), test_key_initialization(), test_key_permissions(), test_null_provider(), test_rsa_encrypt(), and test_rsa_round_trip().

◆ CryptHashCertificate()

WINCRYPT32API BOOL WINAPI CryptHashCertificate ( HCRYPTPROV_LEGACY  hCryptProv,
ALG_ID  Algid,
DWORD  dwFlags,
const BYTE pbEncoded,
DWORD  cbEncoded,
BYTE pbComputedHash,
DWORD pcbComputedHash 
)

Definition at line 2187 of file cert.c.

2190{
2191 BOOL ret = TRUE;
2192 HCRYPTHASH hHash = 0;
2193
2194 TRACE("(%08lx, %d, %08x, %p, %d, %p, %p)\n", hCryptProv, Algid, dwFlags,
2195 pbEncoded, cbEncoded, pbComputedHash, pcbComputedHash);
2196
2197 if (!hCryptProv)
2198 hCryptProv = I_CryptGetDefaultCryptProv(0);
2199 if (!Algid)
2200 Algid = CALG_SHA1;
2201 if (ret)
2202 {
2203 ret = CryptCreateHash(hCryptProv, Algid, 0, 0, &hHash);
2204 if (ret)
2205 {
2206 ret = CryptHashData(hHash, pbEncoded, cbEncoded, 0);
2207 if (ret)
2208 ret = CryptGetHashParam(hHash, HP_HASHVAL, pbComputedHash,
2209 pcbComputedHash, 0);
2210 CryptDestroyHash(hHash);
2211 }
2212 }
2213 return ret;
2214}
BOOL WINAPI CryptCreateHash(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags, HCRYPTHASH *phHash)
Definition: crypt.c:740
BOOL WINAPI CryptGetHashParam(HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
Definition: crypt.c:1610
BOOL WINAPI CryptDestroyHash(HCRYPTHASH hHash)
Definition: crypt.c:890
BOOL WINAPI CryptHashData(HCRYPTHASH hHash, const BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
Definition: crypt.c:1771
#define CALG_SHA1
Definition: wincrypt.h:2060
#define HP_HASHVAL
Definition: wincrypt.h:2387

Referenced by CertContext_GetHashProp(), checkCRLHash(), checkHash(), CRLContext_GetHashProp(), CTLContext_GetHashProp(), test_communication(), testAddSerialized(), testCryptHashCert(), and testRegStore().

◆ CryptHashCertificate2()

WINCRYPT32API BOOL WINAPI CryptHashCertificate2 ( LPCWSTR  pwszCNGHashAlgid,
DWORD  dwFlags,
void pvReserved,
const BYTE pbEncoded,
DWORD  cbEncoded,
BYTE pbComputedHash,
DWORD pcbComputedHash 
)

◆ CryptHashData()

◆ CryptHashMessage()

WINCRYPT32API BOOL WINAPI CryptHashMessage ( PCRYPT_HASH_MESSAGE_PARA  pHashPara,
BOOL  fDetachedHash,
DWORD  cToBeHashed,
const BYTE rgpbToBeHashed[],
DWORD  rgcbToBeHashed[],
BYTE pbHashedBlob,
DWORD pcbHashedBlob,
BYTE pbComputedHash,
DWORD pcbComputedHash 
)

Definition at line 255 of file message.c.

259{
260 DWORD i, flags;
261 BOOL ret = FALSE;
264
265 TRACE("(%p, %d, %d, %p, %p, %p, %p, %p, %p)\n", pHashPara, fDetachedHash,
266 cToBeHashed, rgpbToBeHashed, rgcbToBeHashed, pbHashedBlob, pcbHashedBlob,
267 pbComputedHash, pcbComputedHash);
268
269 if (pHashPara->cbSize != sizeof(CRYPT_HASH_MESSAGE_PARA))
270 {
272 return FALSE;
273 }
274 /* Native seems to ignore any encoding type other than the expected
275 * PKCS_7_ASN_ENCODING
276 */
279 return TRUE;
280 /* Native also seems to do nothing if the output parameter isn't given */
281 if (!pcbHashedBlob)
282 return TRUE;
283
284 flags = fDetachedHash ? CMSG_DETACHED_FLAG : 0;
285 memset(&info, 0, sizeof(info));
286 info.cbSize = sizeof(info);
287 info.hCryptProv = pHashPara->hCryptProv;
288 info.HashAlgorithm = pHashPara->HashAlgorithm;
289 info.pvHashAuxInfo = pHashPara->pvHashAuxInfo;
291 &info, NULL, NULL);
292 if (msg)
293 {
294 for (i = 0, ret = TRUE; ret && i < cToBeHashed; i++)
295 ret = CryptMsgUpdate(msg, rgpbToBeHashed[i], rgcbToBeHashed[i], i == cToBeHashed - 1);
296 if (ret)
297 {
298 ret = CryptMsgGetParam(msg, CMSG_CONTENT_PARAM, 0, pbHashedBlob,
299 pcbHashedBlob);
300 if (ret && pcbComputedHash)
302 pbComputedHash, pcbComputedHash);
303 }
305 }
306 return ret;
307}
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
Definition: wincrypt.h:1717
HCRYPTPROV_LEGACY hCryptProv
Definition: wincrypt.h:1716
#define CMSG_HASHED
Definition: wincrypt.h:3848
#define CMSG_COMPUTED_HASH_PARAM
Definition: wincrypt.h:4110
#define CMSG_DETACHED_FLAG
Definition: wincrypt.h:4027

Referenced by test_hash_message().

◆ CryptHashPublicKeyInfo()

WINCRYPT32API BOOL WINAPI CryptHashPublicKeyInfo ( HCRYPTPROV_LEGACY  hCryptProv,
ALG_ID  Algid,
DWORD  dwFlags,
DWORD  dwCertEncodingType,
PCERT_PUBLIC_KEY_INFO  pInfo,
BYTE pbComputedHash,
DWORD pcbComputedHash 
)

Definition at line 2216 of file cert.c.

2219{
2220 BOOL ret = TRUE;
2221 HCRYPTHASH hHash = 0;
2222
2223 TRACE("(%08lx, %d, %08x, %d, %p, %p, %p)\n", hCryptProv, Algid, dwFlags,
2224 dwCertEncodingType, pInfo, pbComputedHash, pcbComputedHash);
2225
2226 if (!hCryptProv)
2227 hCryptProv = I_CryptGetDefaultCryptProv(0);
2228 if (!Algid)
2229 Algid = CALG_MD5;
2230 if ((dwCertEncodingType & CERT_ENCODING_TYPE_MASK) != X509_ASN_ENCODING)
2231 {
2233 return FALSE;
2234 }
2235 if (ret)
2236 {
2237 BYTE *buf;
2238 DWORD size = 0;
2239
2240 ret = CRYPT_AsnEncodePubKeyInfoNoNull(dwCertEncodingType,
2242 (LPBYTE)&buf, &size);
2243 if (ret)
2244 {
2245 ret = CryptCreateHash(hCryptProv, Algid, 0, 0, &hHash);
2246 if (ret)
2247 {
2248 ret = CryptHashData(hHash, buf, size, 0);
2249 if (ret)
2250 ret = CryptGetHashParam(hHash, HP_HASHVAL, pbComputedHash,
2251 pcbComputedHash, 0);
2252 CryptDestroyHash(hHash);
2253 }
2254 LocalFree(buf);
2255 }
2256 }
2257 return ret;
2258}
BOOL WINAPI CRYPT_AsnEncodePubKeyInfoNoNull(DWORD dwCertEncodingType, LPCSTR lpszStructType, const void *pvStructInfo, DWORD dwFlags, PCRYPT_ENCODE_PARA pEncodePara, BYTE *pbEncoded, DWORD *pcbEncoded) DECLSPEC_HIDDEN
Definition: encode.c:484
#define CALG_MD5
Definition: wincrypt.h:2058
#define X509_PUBLIC_KEY_INFO
Definition: wincrypt.h:3525

Referenced by testHashPublicKeyInfo().

◆ CryptHashSessionKey()

WINADVAPI BOOL WINAPI CryptHashSessionKey ( HCRYPTHASH  hHash,
HCRYPTKEY  hKey,
DWORD  dwFlags 
)

Definition at line 1808 of file crypt.c.

1809{
1810 PCRYPTHASH hash = (PCRYPTHASH)hHash;
1812 PCRYPTPROV prov;
1813
1814 TRACE("(0x%lx, 0x%lx, %08x)\n", hHash, hKey, dwFlags);
1815
1816 if (!hash || !key)
1817 {
1819 return FALSE;
1820 }
1821
1822 if (!hash->pProvider || hash->dwMagic != MAGIC_CRYPTHASH ||
1823 hash->pProvider->dwMagic != MAGIC_CRYPTPROV || key->dwMagic != MAGIC_CRYPTKEY)
1824 {
1826 return FALSE;
1827 }
1828
1829 prov = hash->pProvider;
1830 return prov->pFuncs->pCPHashSessionKey(prov->hPrivate, hash->hPrivate, key->hPrivate, dwFlags);
1831}

◆ CryptHashToBeSigned()

WINCRYPT32API BOOL WINAPI CryptHashToBeSigned ( HCRYPTPROV_LEGACY  hCryptProv,
DWORD  dwCertEncodingType,
const BYTE pbEncoded,
DWORD  cbEncoded,
BYTE pbComputedHash,
DWORD pcbComputedHash 
)

Definition at line 2260 of file cert.c.

2263{
2264 BOOL ret;
2266 DWORD size;
2267
2268 TRACE("(%08lx, %08x, %p, %d, %p, %d)\n", hCryptProv, dwCertEncodingType,
2269 pbEncoded, cbEncoded, pbComputedHash, *pcbComputedHash);
2270
2271 ret = CryptDecodeObjectEx(dwCertEncodingType, X509_CERT,
2273 if (ret)
2274 {
2276 HCRYPTHASH hHash;
2277
2278 if (!hCryptProv)
2279 hCryptProv = I_CryptGetDefaultCryptProv(0);
2281 info->SignatureAlgorithm.pszObjId, 0);
2282 if (!oidInfo)
2283 {
2285 ret = FALSE;
2286 }
2287 else
2288 {
2289 ret = CryptCreateHash(hCryptProv, oidInfo->u.Algid, 0, 0, &hHash);
2290 if (ret)
2291 {
2292 ret = CryptHashData(hHash, info->ToBeSigned.pbData,
2293 info->ToBeSigned.cbData, 0);
2294 if (ret)
2295 ret = CryptGetHashParam(hHash, HP_HASHVAL, pbComputedHash,
2296 pcbComputedHash, 0);
2297 CryptDestroyHash(hHash);
2298 }
2299 }
2300 LocalFree(info);
2301 }
2302 return ret;
2303}
#define X509_CERT
Definition: wincrypt.h:3517
#define NTE_BAD_ALGID
Definition: winerror.h:4256

Referenced by CertContext_GetProperty(), and testHashToBeSigned().

◆ CryptImportKey()

WINADVAPI BOOL WINAPI CryptImportKey ( HCRYPTPROV  hProv,
const BYTE pbData,
DWORD  dwDataLen,
HCRYPTKEY  hPubKey,
DWORD  dwFlags,
HCRYPTKEY phKey 
)

Definition at line 1850 of file crypt.c.

1852{
1853 PCRYPTPROV prov = (PCRYPTPROV)hProv;
1854 PCRYPTKEY pubkey = (PCRYPTKEY)hPubKey, importkey;
1855
1856 TRACE("(0x%lx, %p, %d, 0x%lx, %08x, %p)\n", hProv, pbData, dwDataLen, hPubKey, dwFlags, phKey);
1857
1858 if (!prov || !pbData || !dwDataLen || !phKey ||
1859 prov->dwMagic != MAGIC_CRYPTPROV ||
1860 (pubkey && pubkey->dwMagic != MAGIC_CRYPTKEY))
1861 {
1863 return FALSE;
1864 }
1865
1866 if ( !(importkey = CRYPT_Alloc(sizeof(CRYPTKEY))) )
1867 {
1869 return FALSE;
1870 }
1871
1872 importkey->pProvider = prov;
1873 importkey->dwMagic = MAGIC_CRYPTKEY;
1874 if (prov->pFuncs->pCPImportKey(prov->hPrivate, pbData, dwDataLen,
1875 pubkey ? pubkey->hPrivate : 0, dwFlags, &importkey->hPrivate))
1876 {
1877 *phKey = (HCRYPTKEY)importkey;
1878 return TRUE;
1879 }
1880
1881 importkey->dwMagic = 0;
1882 CRYPT_Free(importkey);
1883 return FALSE;
1884}
static const WCHAR pubkey[]
Definition: asmname.c:68

Referenced by CRYPT_ImportKeyTrans(), CRYPT_ImportPublicKeyInfoEx(), rdssl_hmac_md5(), rdssl_rc4_set_key(), test_decode_msg_get_param(), test_hashes(), test_import_export(), test_import_hmac(), test_import_private(), test_key_initialization(), test_null_provider(), test_rsa_round_trip(), test_schannel_provider(), test_sign_message(), test_signed_msg_encoding(), test_signed_msg_update(), test_verify_signature(), testAcquireCertPrivateKey(), and testAcquireSecurityContext().

◆ CryptImportPublicKeyInfo()

WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfo ( HCRYPTPROV  hCryptProv,
DWORD  dwCertEncodingType,
PCERT_PUBLIC_KEY_INFO  pInfo,
HCRYPTKEY phKey 
)

Definition at line 4970 of file encode.c.

4972{
4973 return CryptImportPublicKeyInfoEx(hCryptProv, dwCertEncodingType, pInfo,
4974 0, 0, NULL, phKey);
4975}
BOOL WINAPI CryptImportPublicKeyInfoEx(HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, ALG_ID aiKeyAlg, DWORD dwFlags, void *pvAuxInfo, HCRYPTKEY *phKey)
Definition: encode.c:5044

Referenced by CDecodeSignedMsg_VerifySignatureWithKey(), CertGetPublicKeyLength(), CRYPT_ExportKeyTrans(), and testAcquireCertPrivateKey().

◆ CryptImportPublicKeyInfoEx()

WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfoEx ( HCRYPTPROV  hCryptProv,
DWORD  dwCertEncodingType,
PCERT_PUBLIC_KEY_INFO  pInfo,
ALG_ID  aiKeyAlg,
DWORD  dwFlags,
void pvAuxInfo,
HCRYPTKEY phKey 
)

Definition at line 5044 of file encode.c.

5047{
5048 static HCRYPTOIDFUNCSET set = NULL;
5049 BOOL ret;
5050 ImportPublicKeyInfoExFunc importFunc = NULL;
5051 HCRYPTOIDFUNCADDR hFunc = NULL;
5052
5053 TRACE_(crypt)("(%08lx, %08x, %p, %08x, %08x, %p, %p)\n", hCryptProv,
5054 dwCertEncodingType, pInfo, aiKeyAlg, dwFlags, pvAuxInfo, phKey);
5055
5056 if (!set)
5058 CryptGetOIDFunctionAddress(set, dwCertEncodingType,
5059 pInfo->Algorithm.pszObjId, 0, (void **)&importFunc, &hFunc);
5060 if (!importFunc)
5061 importFunc = CRYPT_ImportPublicKeyInfoEx;
5062 ret = importFunc(hCryptProv, dwCertEncodingType, pInfo, aiKeyAlg, dwFlags,
5063 pvAuxInfo, phKey);
5064 if (hFunc)
5066 return ret;
5067}
static BOOL WINAPI CRYPT_ImportPublicKeyInfoEx(HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, ALG_ID aiKeyAlg, DWORD dwFlags, void *pvAuxInfo, HCRYPTKEY *phKey)
Definition: encode.c:4981
BOOL(WINAPI * ImportPublicKeyInfoExFunc)(HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, ALG_ID aiKeyAlg, DWORD dwFlags, void *pvAuxInfo, HCRYPTKEY *phKey)
Definition: encode.c:5040
#define CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC
Definition: wincrypt.h:2672

Referenced by CRYPT_VerifySignature(), CryptImportPublicKeyInfo(), rdssl_cert_to_rkey(), and testImportPublicKey().

◆ CryptImportPublicKeyInfoEx2()

WINCRYPT32API BOOL WINAPI CryptImportPublicKeyInfoEx2 ( DWORD  dwCertEncodingType,
PCERT_PUBLIC_KEY_INFO  pInfo,
DWORD  dwFlags,
void pvAuxInfo,
BCRYPT_KEY_HANDLE phKey 
)

◆ CryptInitOIDFunctionSet()

WINCRYPT32API HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet ( LPCSTR  pszFuncName,
DWORD  dwFlags 
)

Definition at line 114 of file oid.c.

116{
117 struct OIDFunctionSet *cursor, *ret = NULL;
118
119 TRACE("(%s, %x)\n", debugstr_a(pszFuncName), dwFlags);
120
123 {
124 if (!strcasecmp(pszFuncName, cursor->name))
125 {
126 ret = cursor;
127 break;
128 }
129 }
130 if (!ret)
131 {
132 ret = CryptMemAlloc(sizeof(struct OIDFunctionSet));
133 if (ret)
134 {
135 memset(ret, 0, sizeof(*ret));
136 ret->name = CryptMemAlloc(strlen(pszFuncName) + 1);
137 if (ret->name)
138 {
140 ret->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": OIDFunctionSet.cs");
141 list_init(&ret->functions);
142 strcpy(ret->name, pszFuncName);
143 list_add_tail(&funcSets, &ret->next);
144 }
145 else
146 {
148 ret = NULL;
149 }
150 }
151 }
153
154 return ret;
155}
static void list_init(struct list_entry *head)
Definition: list.h:51
static CRITICAL_SECTION funcSetCS
Definition: oid.c:45
static struct list funcSets
Definition: oid.c:53
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
Definition: synch.c:751
#define DWORD_PTR
Definition: treelist.c:76

Referenced by CertVerifyCertificateChainPolicy(), CertVerifyRevocation(), CRYPT_ExportEncryptedKey(), CRYPT_ExportPublicKeyInfoEx(), CRYPT_GenKey(), CRYPT_GetCreateFunction(), CRYPT_GetRetrieveFunction(), CRYPT_ImportEncryptedKey(), CRYPT_ImportPublicKeyInfoEx(), CRYPT_LoadDecoderExFunc(), CRYPT_LoadDecoderFunc(), CRYPT_LoadEncoderExFunc(), CRYPT_LoadEncoderFunc(), CRYPT_ProvOpenStore(), CryptExportPublicKeyInfoEx(), CryptFormatObject(), CryptGetObjectUrl(), CryptImportPublicKeyInfoEx(), CryptInstallOIDFunctionAddress(), test_getDefaultOIDFunctionAddress(), test_installOIDFunctionAddress(), and test_oidFunctionSet().

◆ CryptInstallCancelRetrieval()

BOOL WINAPI CryptInstallCancelRetrieval ( PFN_CRYPT_CANCEL_RETRIEVAL  pfnCancel,
const void pvArg,
DWORD  dwFlags,
void pvReserved 
)

◆ CryptInstallDefaultContext()

WINCRYPT32API BOOL WINAPI CryptInstallDefaultContext ( HCRYPTPROV  hCryptProv,
DWORD  dwDefaultType,
const void pvDefaultPara,
DWORD  dwFlags,
void pvReserved,
HCRYPTDEFAULTCONTEXT phDefaultContext 
)

◆ CryptInstallOIDFunctionAddress()

WINCRYPT32API BOOL WINAPI CryptInstallOIDFunctionAddress ( HMODULE  hModule,
DWORD  dwEncodingType,
LPCSTR  pszFuncName,
DWORD  cFuncEntry,
const CRYPT_OID_FUNC_ENTRY  rgFuncEntry[],
DWORD  dwFlags 
)

Definition at line 237 of file oid.c.

240{
241 BOOL ret = TRUE;
242 struct OIDFunctionSet *set;
243
244 TRACE("(%p, %d, %s, %d, %p, %08x)\n", hModule, dwEncodingType,
245 debugstr_a(pszFuncName), cFuncEntry, rgFuncEntry, dwFlags);
246
247 set = CryptInitOIDFunctionSet(pszFuncName, 0);
248 if (set)
249 {
250 DWORD i;
251
253 for (i = 0; ret && i < cFuncEntry; i++)
254 {
255 struct OIDFunction *func;
256
257 TRACE("OID %s, func %p\n", debugstr_a(rgFuncEntry[i].pszOID), rgFuncEntry[i].pvFuncAddr);
258
259 if (!IS_INTOID(rgFuncEntry[i].pszOID))
260 func = CryptMemAlloc(sizeof(struct OIDFunction)
261 + strlen(rgFuncEntry[i].pszOID) + 1);
262 else
263 func = CryptMemAlloc(sizeof(struct OIDFunction));
264 if (func)
265 {
266 func->encoding = GET_CERT_ENCODING_TYPE(dwEncodingType);
267 if (!IS_INTOID(rgFuncEntry[i].pszOID))
268 {
269 LPSTR oid;
270
271 oid = (LPSTR)((LPBYTE)func + sizeof(*func));
272 strcpy(oid, rgFuncEntry[i].pszOID);
273 func->entry.pszOID = oid;
274 }
275 else
276 func->entry.pszOID = rgFuncEntry[i].pszOID;
277 func->entry.pvFuncAddr = rgFuncEntry[i].pvFuncAddr;
278 func->hModule = hModule;
279 list_add_tail(&set->functions, &func->next);
280 }
281 else
282 ret = FALSE;
283 }
285 }
286 else
287 ret = FALSE;
288 return ret;
289}
HMODULE hModule
Definition: animate.c:44

Referenced by test_installOIDFunctionAddress().

◆ CryptMemAlloc() [1/2]

LPVOID WINAPI CryptMemAlloc ( _In_ ULONG  cbSize)

◆ CryptMemAlloc() [2/2]

WINCRYPT32API LPVOID WINAPI CryptMemAlloc ( ULONG  cbSize)

Definition at line 131 of file main.c.

132{
133 return HeapAlloc(GetProcessHeap(), 0, cbSize);
134}

Referenced by accumulating_stream_output(), add_line_to_buffer(), CContentEncryptInfo_Construct(), CDataEncodeMsg_Open(), CDecodeHashMsg_VerifyHash(), CDecodeMsg_CopyData(), CDecodeMsg_FinalizeHashedContent(), CDecodeMsg_SaveAlgorithmID(), CEnvelopedEncodeMsg_GetParam(), CEnvelopedEncodeMsg_Open(), CEnvelopedEncodeMsg_Update(), Cert_clone(), cert_prov_info_matches_cert(), CertAddEnhancedKeyUsageIdentifier(), CertAddStoreToCollection(), CertContext_SetKeyProvInfo(), CertContext_SetKeyProvInfoProperty(), CertCreateCertificateContext(), CertCreateCRLContext(), CertCreateCTLContext(), CertCreateSelfSignCertificate(), CertGetEnhancedKeyUsage(), CertGetNameStringA(), CertGetValidUsages(), CertRemoveEnhancedKeyUsageIdentifier(), CertStrToNameA(), CertVerifyRevocation(), CHashEncodeMsg_GetParam(), CHashEncodeMsg_Open(), CHashEncodeMsg_Update(), CNG_CalcHash(), CNG_ImportECCPubKey(), CNG_PrepareSignature(), CNG_PrepareSignatureECC(), compare_cert_by_cert_id(), compare_cert_by_name_str(), compare_cert_by_signature_hash(), compare_crl_issued_by(), container_matches_cert(), Context_CreateDataContext(), Context_CreateLinkContext(), ContextPropertyList_Create(), ContextPropertyList_SetProperty(), convert_hash_to_blob(), convert_str_to_blob(), CRL_clone(), CRYPT_AddAlternateChainToChain(), CRYPT_AddCertToSimpleChain(), CRYPT_AddStringToMultiString(), CRYPT_AsnDecodeArray(), CRYPT_AsnEncodeBitsSwapBytes(), CRYPT_AsnEncodeNameConstraints(), CRYPT_AsnEncodeRdn(), CRYPT_BuildCandidateChainFromCert(), CRYPT_CacheSIP(), CRYPT_CacheURL(), CRYPT_CollectionOpenStore(), CRYPT_ConstructAlgorithmId(), CRYPT_ConstructAttribute(), CRYPT_ConstructAttributes(), CRYPT_ConstructBitBlob(), CRYPT_ConstructBlob(), CRYPT_ConstructBlobArray(), CRYPT_CopyChainToElement(), CRYPT_CopySimpleChainToElement(), CRYPT_CrackUrl(), CRYPT_CreateBlob(), CRYPT_CreateChainEngine(), CRYPT_CreateFileStore(), CRYPT_CreateSignedCert(), CRYPT_DEREncodeItemsAsSet(), CRYPT_DownloadObject(), CRYPT_EncodePKCSDigestedData(), CRYPT_EncodeValueWithType(), CRYPT_ExportKeyTrans(), CRYPT_ExportPublicKeyInfoEx(), CRYPT_FileNameOpenStoreA(), CRYPT_GetDefaultOIDDlls(), CRYPT_GetFuncFromReg(), CRYPT_GetKeyName(), CRYPT_GetObjectFromCache(), CRYPT_GetObjectFromFile(), CRYPT_GetRetrieveFunction(), CRYPT_GetSignerCertInfoFromMsg(), CRYPT_GetSimpleChainForCert(), CRYPT_ImportKeyTrans(), CRYPT_ImportPublicKeyInfoEx(), CRYPT_IsCertificateSelfSigned(), CRYPT_KeynameKeeperFromTokenW(), CRYPT_MakeInetContext(), CRYPT_MemOpenStore(), CRYPT_MsgOpenStore(), CRYPT_ProvCreateStore(), CRYPT_QueryContextObject(), CRYPT_QueryEmbeddedMessageObject(), CRYPT_QueryMessageObject(), CRYPT_ReadBlobFromFile(), CRYPT_ReadSerializedStore(), CRYPT_RegDeleteContext(), CRYPT_RegOpenStore(), CRYPT_RegReadSerializedFromReg(), CRYPT_SavePKCSToFile(), CRYPT_SavePKCSToMem(), CRYPT_SerializeContextsToReg(), CRYPT_SerializeContextsToStream(), CRYPT_SerializeStoreElement(), CRYPT_SetBitInField(), CRYPT_SysOpenStoreA(), CRYPT_SysRegOpenStoreA(), CRYPT_SysRegOpenStoreW(), CRYPT_ValueToRDN(), CryptEncryptMessage(), CryptGetDefaultOIDFunctionAddress(), CryptInitOIDFunctionSet(), CryptInstallOIDFunctionAddress(), CryptMsgOpenToDecode(), CryptProtectData(), CryptRegisterOIDInfo(), CryptRetrieveObjectByUrlA(), CryptSignAndEncodeCertificate(), CryptSignMessage(), CryptUnregisterOIDInfo(), CSignedEncodeMsg_GetParam(), CSignedEncodeMsg_Open(), CSignedEncodeMsg_Update(), CSignedMsgData_AllocateHandles(), CSignedMsgData_AppendMessageDigestAttribute(), CSignedMsgData_Sign(), decode_base64_blob(), dump_element(), File_RetrieveEncodedObjectW(), fill_protect_data(), find_cert_by_name_str_a(), find_cert_by_name_str_w(), find_matching_provider(), g_malloc(), I_CryptGetDefaultCryptProv(), import_base64_certs_from_fp(), init_oid_info(), key_prov_info_matches_cert(), load_encryption_key(), name_value_to_str(), read_oid_info(), test_cryptAllocate(), test_data_msg_update(), test_decode_msg_get_param(), test_encrypt_message(), test_getDefaultCryptProv(), test_sign_message(), test_verify_message_hash(), TrustIsCertificateSelfSigned(), unserialize_string(), and verify_cert_revocation_from_dist_points_ext().

◆ CryptMemFree() [1/2]

VOID WINAPI CryptMemFree ( _In_opt_ LPVOID  pv)

◆ CryptMemFree() [2/2]

WINCRYPT32API VOID WINAPI CryptMemFree ( LPVOID  pv)

Definition at line 141 of file main.c.

142{
143 HeapFree(GetProcessHeap(), 0, pv);
144}

Referenced by CContentEncryptInfo_Free(), CDecodeHashMsg_VerifyHash(), CDecodeMsg_Close(), CDecodeMsg_FinalizeHashedContent(), CDecodeMsg_SaveAlgorithmID(), CDecodeSignedMsg_VerifySignatureWithKey(), CEnvelopedEncodeMsg_Close(), CEnvelopedEncodeMsg_GetParam(), CEnvelopedEncodeMsg_Update(), Cert_free(), cert_prov_info_matches_cert(), CertAddEnhancedKeyUsageIdentifier(), CertContext_SetKeyProvInfo(), CertContext_SetKeyProvInfoProperty(), CertCreateCTLContext(), CertCreateSelfSignCertificate(), CertGetEnhancedKeyUsage(), CertGetNameStringA(), CertGetValidUsages(), CertRemoveEnhancedKeyUsageIdentifier(), CertRemoveStoreFromCollection(), CertStrToNameA(), CertStrToNameW(), CertVerifyRevocation(), CHashEncodeMsg_Close(), CHashEncodeMsg_GetParam(), CNG_CalcHash(), CNG_ImportECCPubKey(), CNG_PrepareSignature(), CNG_VerifySignature(), Collection_release(), compare_cert_by_cert_id(), compare_cert_by_name_str(), compare_cert_by_signature_hash(), compare_crl_issued_by(), Context_CreateDataContext(), Context_Free(), ContextPropertyList_Free(), ContextPropertyList_RemoveProperty(), ContextPropertyList_SetProperty(), convert_hash_to_blob(), CRecipientInfo_Free(), CRL_free(), CRYPT_AddCertToSimpleChain(), CRYPT_AddStringToMultiString(), CRYPT_AsnDecodeArray(), CRYPT_AsnEncodeBitsSwapBytes(), CRYPT_AsnEncodeNameConstraints(), CRYPT_AsnEncodeRdn(), CRYPT_CacheURL(), CRYPT_CopyChainToElement(), CRYPT_CopySimpleChainToElement(), CRYPT_CrackUrl(), CRYPT_CreateContext(), CRYPT_CreateSignedCert(), CRYPT_DEREncodeItemsAsSet(), CRYPT_DownloadObject(), CRYPT_EncodePKCSDigestedData(), CRYPT_EncodeValueWithType(), CRYPT_ExportEncryptedKey(), CRYPT_ExportKeyTrans(), CRYPT_ExportPublicKeyInfoEx(), CRYPT_FileCloseStore(), CRYPT_FileControl(), CRYPT_FileNameOpenStoreA(), CRYPT_FreeBlob(), CRYPT_FreeBlobArray(), CRYPT_FreeChainContext(), CRYPT_FreeChainElement(), CRYPT_FreeKeynameKeeper(), CRYPT_FreeLowerQualityChains(), CRYPT_FreeSimpleChain(), CRYPT_FreeStore(), CRYPT_GetDefaultOIDDlls(), CRYPT_GetDefaultOIDKey(), CRYPT_GetFuncFromReg(), CRYPT_GetObjectFromCache(), CRYPT_GetObjectFromFile(), CRYPT_GetRetrieveFunction(), CRYPT_GetSignerCertInfoFromMsg(), CRYPT_ImportKeyTrans(), CRYPT_ImportPublicKeyInfoEx(), CRYPT_IsCertificateSelfSigned(), CRYPT_MakeInetContext(), CRYPT_MsgOpenStore(), CRYPT_QueryContextObject(), CRYPT_QueryEmbeddedMessageObject(), CRYPT_QueryMessageObject(), CRYPT_QuerySerializedContextObject(), CRYPT_ReadBlobFromFile(), CRYPT_ReadSerializedStore(), CRYPT_RegCloseStore(), CRYPT_RegDeleteContext(), CRYPT_RegReadSerializedFromReg(), CRYPT_RegWriteToReg(), CRYPT_SavePKCSToMem(), CRYPT_SerializeContextsToReg(), CRYPT_SerializeContextsToStream(), CRYPT_SerializeStoreElement(), crypt_sip_free(), CRYPT_SysOpenStoreA(), CRYPT_SysRegOpenStoreA(), CRYPT_SysRegOpenStoreW(), CryptEncryptMessage(), CryptFreeOIDFunctionAddress(), CryptGetDefaultOIDDllList(), CryptGetDefaultOIDFunctionAddress(), CryptGetOIDFunctionValue(), CryptInitOIDFunctionSet(), CryptMsgClose(), CryptMsgGetAndVerifySigner(), CryptRegisterDefaultOIDFunction(), CryptRegisterOIDFunction(), CryptRegisterOIDInfo(), CryptRetrieveObjectByUrlA(), CryptSetOIDFunctionValue(), CryptSignAndEncodeCertificate(), CryptSignMessage(), CryptUnregisterDefaultOIDFunction(), CryptUnregisterOIDFunction(), CryptUnregisterOIDInfo(), CryptVerifyDetachedMessageSignature(), CryptVerifyMessageSignature(), CSignedEncodeMsg_Close(), CSignedEncodeMsg_GetParam(), CSignedEncodeMsg_Open(), CSignedMsgData_AppendMessageDigestAttribute(), CSignedMsgData_CloseHandles(), CSignerInfo_Free(), CTL_free(), decode_base64_blob(), dump_alt_name_entry(), dump_element(), File_RetrieveEncodedObjectW(), find_cert_by_name_str_a(), find_cert_by_name_str_w(), find_matching_provider(), free_chain_engine(), free_function_sets(), free_oid_info(), free_protect_data(), free_updates(), g_free(), hash_matches_blob(), HTTP_RetrieveEncodedObjectW(), I_CryptGetDefaultCryptProv(), import_base64_certs_from_fp(), import_certs_from_dir(), key_prov_info_matches_cert(), load_encryption_key(), test_cryptAllocate(), test_data_msg_update(), test_decode_msg_get_param(), test_encrypt_message(), test_getDefaultCryptProv(), test_retrieveObjectByUrl(), test_sign_message(), test_verify_message_hash(), TrustIsCertificateSelfSigned(), and verify_cert_revocation_from_dist_points_ext().

◆ CryptMemRealloc() [1/2]

LPVOID WINAPI CryptMemRealloc ( _In_opt_ LPVOID  pv,
_In_ ULONG  cbSize 
)

◆ CryptMemRealloc() [2/2]

◆ CryptMsgCalculateEncodedLength()

WINCRYPT32API DWORD WINAPI CryptMsgCalculateEncodedLength ( DWORD  dwMsgEncodingType,
DWORD  dwFlags,
DWORD  dwMsgType,
const void pvMsgEncodeInfo,
LPSTR  pszInnerContentObjID,
DWORD  cbData 
)

◆ CryptMsgClose()

WINCRYPT32API BOOL WINAPI CryptMsgClose ( HCRYPTMSG  hCryptMsg)

◆ CryptMsgControl()

WINCRYPT32API BOOL WINAPI CryptMsgControl ( HCRYPTMSG  hCryptMsg,
DWORD  dwFlags,
DWORD  dwCtrlType,
const void pvCtrlPara 
)

Definition at line 3636 of file msg.c.

3638{
3639 CryptMsgBase *msg = hCryptMsg;
3640
3641 TRACE("(%p, %08x, %d, %p)\n", hCryptMsg, dwFlags, dwCtrlType,
3642 pvCtrlPara);
3643 return msg->control(hCryptMsg, dwFlags, dwCtrlType, pvCtrlPara);
3644}

Referenced by CryptMsgGetAndVerifySigner(), CryptVerifyDetachedMessageHash(), CryptVerifyDetachedMessageSignature(), CryptVerifyMessageHash(), CryptVerifyMessageSignature(), test_decode_msg_get_param(), test_msg_control(), and WINTRUST_VerifySigner().

◆ CryptMsgCountersign()

WINCRYPT32API BOOL WINAPI CryptMsgCountersign ( HCRYPTMSG  hCryptMsg,
DWORD  dwIndex,
DWORD  dwCountersigners,
PCMSG_SIGNER_ENCODE_INFO  rgCountersigners 
)

◆ CryptMsgCountersignEncoded()

WINCRYPT32API BOOL WINAPI CryptMsgCountersignEncoded ( DWORD  dwEncodingType,
PBYTE  pbSignerInfo,
DWORD  cbSignerInfo,
DWORD  cCountersigners,
PCMSG_SIGNER_ENCODE_INFO  rgCountersigners,
PBYTE  pbCountersignature,
PDWORD  pcbCountersignature 
)

◆ CryptMsgDuplicate()

WINCRYPT32API HCRYPTMSG WINAPI CryptMsgDuplicate ( HCRYPTMSG  hCryptMsg)

Definition at line 3584 of file msg.c.

3585{
3586 TRACE("(%p)\n", hCryptMsg);
3587
3588 if (hCryptMsg)
3589 {
3590 CryptMsgBase *msg = hCryptMsg;
3591
3593 }
3594 return hCryptMsg;
3595}

Referenced by CRYPT_MsgOpenStore().

◆ CryptMsgEncodeAndSignCTL()

WINCRYPT32API BOOL WINAPI CryptMsgEncodeAndSignCTL ( DWORD  dwMsgEncodingType,
PCTL_INFO  pCtlInfo,
PCMSG_SIGNED_ENCODE_INFO  pSignInfo,
DWORD  dwFlags,
BYTE pbEncoded,
DWORD pcbEncoded 
)

Definition at line 3784 of file msg.c.

3787{
3788 BOOL ret;
3789 BYTE *pbCtlContent;
3790 DWORD cbCtlContent;
3791
3792 TRACE("(%08x, %p, %p, %08x, %p, %p)\n", dwMsgEncodingType, pCtlInfo,
3793 pSignInfo, dwFlags, pbEncoded, pcbEncoded);
3794
3795 if (dwFlags)
3796 {
3797 FIXME("unimplemented for flags %08x\n", dwFlags);
3798 return FALSE;
3799 }
3800 if ((ret = CryptEncodeObjectEx(dwMsgEncodingType, PKCS_CTL, pCtlInfo,
3801 CRYPT_ENCODE_ALLOC_FLAG, NULL, &pbCtlContent, &cbCtlContent)))
3802 {
3803 ret = CryptMsgSignCTL(dwMsgEncodingType, pbCtlContent, cbCtlContent,
3804 pSignInfo, dwFlags, pbEncoded, pcbEncoded);
3805 LocalFree(pbCtlContent);
3806 }
3807 return ret;
3808}
BOOL WINAPI CryptMsgSignCTL(DWORD dwMsgEncodingType, BYTE *pbCtlContent, DWORD cbCtlContent, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags, BYTE *pbEncoded, DWORD *pcbEncoded)
Definition: msg.c:3810

◆ CryptMsgGetAndVerifySigner()

WINCRYPT32API BOOL WINAPI CryptMsgGetAndVerifySigner ( HCRYPTMSG  hCryptMsg,
DWORD  cSignerStore,
HCERTSTORE rghSignerStore,
DWORD  dwFlags,
PCCERT_CONTEXT ppSigner,
DWORD pdwSignerIndex 
)

Definition at line 3669 of file msg.c.

3672{
3673 HCERTSTORE store;
3674 DWORD i, signerIndex = 0;
3675 PCCERT_CONTEXT signerCert = NULL;
3676 BOOL ret = FALSE;
3677
3678 TRACE("(%p, %d, %p, %08x, %p, %p)\n", hCryptMsg, cSignerStore,
3679 rghSignerStore, dwFlags, ppSigner, pdwSignerIndex);
3680
3681 /* Clear output parameters */
3682 if (ppSigner)
3683 *ppSigner = NULL;
3684 if (pdwSignerIndex && !(dwFlags & CMSG_USE_SIGNER_INDEX_FLAG))
3685 *pdwSignerIndex = 0;
3686
3687 /* Create store to search for signer certificates */
3691 {
3692 HCERTSTORE msgStore = CertOpenStore(CERT_STORE_PROV_MSG, 0, 0, 0,
3693 hCryptMsg);
3694
3695 CertAddStoreToCollection(store, msgStore, 0, 0);
3696 CertCloseStore(msgStore, 0);
3697 }
3698 for (i = 0; i < cSignerStore; i++)
3699 CertAddStoreToCollection(store, rghSignerStore[i], 0, 0);
3700
3701 /* Find signer cert */
3703 {
3704 CERT_INFO *signer = CRYPT_GetSignerCertInfoFromMsg(hCryptMsg,
3705 *pdwSignerIndex);
3706
3707 if (signer)
3708 {
3709 signerIndex = *pdwSignerIndex;
3711 0, CERT_FIND_SUBJECT_CERT, signer, NULL);
3712 CryptMemFree(signer);
3713 }
3714 }
3715 else
3716 {
3717 DWORD count, size = sizeof(count);
3718
3720 &size))
3721 {
3722 for (i = 0; !signerCert && i < count; i++)
3723 {
3724 CERT_INFO *signer = CRYPT_GetSignerCertInfoFromMsg(hCryptMsg,
3725 i);
3726
3727 if (signer)
3728 {
3729 signerCert = CertFindCertificateInStore(store,
3731 NULL);
3732 if (signerCert)
3733 signerIndex = i;
3734 CryptMemFree(signer);
3735 }
3736 }
3737 }
3738 if (!signerCert)
3740 }
3741 if (signerCert)
3742 {
3745 signerCert->pCertInfo);
3746 else
3747 ret = TRUE;
3748 if (ret)
3749 {
3750 if (ppSigner)
3751 *ppSigner = CertDuplicateCertificateContext(signerCert);
3752 if (pdwSignerIndex)
3753 *pdwSignerIndex = signerIndex;
3754 }
3755 CertFreeCertificateContext(signerCert);
3756 }
3757
3758 CertCloseStore(store, 0);
3759 return ret;
3760}
BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority)
PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:360
static CERT_INFO * CRYPT_GetSignerCertInfoFromMsg(HCRYPTMSG msg, DWORD dwSignerIndex)
Definition: msg.c:3646
BOOL WINAPI CryptMsgControl(HCRYPTMSG hCryptMsg, DWORD dwFlags, DWORD dwCtrlType, const void *pvCtrlPara)
Definition: msg.c:3636
#define CERT_STORE_CREATE_NEW_FLAG
Definition: wincrypt.h:2633
#define CMSG_SIGNER_ONLY_FLAG
Definition: wincrypt.h:4309
#define CMSG_USE_SIGNER_INDEX_FLAG
Definition: wincrypt.h:4310
#define CMSG_TRUSTED_SIGNER_FLAG
Definition: wincrypt.h:4308
#define CMSG_CTRL_VERIFY_SIGNATURE
Definition: wincrypt.h:4034
#define CRYPT_E_NO_TRUSTED_SIGNER
Definition: winerror.h:4450

Referenced by test_msg_get_and_verify_signer().

◆ CryptMsgGetParam()

◆ CryptMsgOpenToDecode()

WINCRYPT32API HCRYPTMSG WINAPI CryptMsgOpenToDecode ( DWORD  dwMsgEncodingType,
DWORD  dwFlags,
DWORD  dwMsgType,
HCRYPTPROV_LEGACY  hCryptProv,
PCERT_INFO  pRecipientInfo,
PCMSG_STREAM_INFO  pStreamInfo 
)

Definition at line 3552 of file msg.c.

3555{
3556 CDecodeMsg *msg;
3557
3558 TRACE("(%08x, %08x, %08x, %08lx, %p, %p)\n", dwMsgEncodingType,
3559 dwFlags, dwMsgType, hCryptProv, pRecipientInfo, pStreamInfo);
3560
3561 if (GET_CMSG_ENCODING_TYPE(dwMsgEncodingType) != PKCS_7_ASN_ENCODING)
3562 {
3564 return NULL;
3565 }
3566 msg = CryptMemAlloc(sizeof(CDecodeMsg));
3567 if (msg)
3568 {
3569 CryptMsgBase_Init((CryptMsgBase *)msg, dwFlags, pStreamInfo,
3572 msg->type = dwMsgType;
3573 msg->crypt_prov = hCryptProv;
3574 memset(&msg->u, 0, sizeof(msg->u));
3575 msg->msg_data.cbData = 0;
3576 msg->msg_data.pbData = NULL;
3577 msg->detached_data.cbData = 0;
3578 msg->detached_data.pbData = NULL;
3579 msg->properties = ContextPropertyList_Create();
3580 }
3581 return msg;
3582}
static BOOL CDecodeMsg_GetParam(HCRYPTMSG hCryptMsg, DWORD dwParamType, DWORD dwIndex, void *pvData, DWORD *pcbData)
Definition: msg.c:3181
static BOOL CDecodeMsg_Control(HCRYPTMSG hCryptMsg, DWORD dwFlags, DWORD dwCtrlType, const void *pvCtrlPara)
Definition: msg.c:3493
static void CryptMsgBase_Init(CryptMsgBase *msg, DWORD dwFlags, PCMSG_STREAM_INFO pStreamInfo, CryptMsgCloseFunc close, CryptMsgGetParamFunc get_param, CryptMsgUpdateFunc update, CryptMsgControlFunc control)
Definition: msg.c:77
static void CDecodeMsg_Close(HCRYPTMSG hCryptMsg)
Definition: msg.c:2098
static BOOL CDecodeMsg_Update(HCRYPTMSG hCryptMsg, const BYTE *pbData, DWORD cbData, BOOL fFinal)
Definition: msg.c:2471

Referenced by CertCreateCTLContext(), CRYPT_PKCSOpenStore(), CRYPT_QuerySignedMessage(), CRYPT_QueryUnsignedMessage(), CryptCATOpen(), CryptGetMessageSignerCount(), CryptVerifyDetachedMessageHash(), CryptVerifyDetachedMessageSignature(), CryptVerifyMessageHash(), CryptVerifyMessageSignature(), SOFTPUB_GetMessageFromFile(), test_decode_msg_get_param(), test_decode_msg_update(), test_msg_control(), test_msg_get_and_verify_signer(), test_msg_get_param(), test_msg_open_to_decode(), and testMessageStore().

◆ CryptMsgOpenToEncode()

WINCRYPT32API HCRYPTMSG WINAPI CryptMsgOpenToEncode ( DWORD  dwMsgEncodingType,
DWORD  dwFlags,
DWORD  dwMsgType,
const void pvMsgEncodeInfo,
LPSTR  pszInnerContentObjID,
PCMSG_STREAM_INFO  pStreamInfo 
)

Definition at line 2034 of file msg.c.

2037{
2038 HCRYPTMSG msg = NULL;
2039
2040 TRACE("(%08x, %08x, %08x, %p, %s, %p)\n", dwMsgEncodingType, dwFlags,
2041 dwMsgType, pvMsgEncodeInfo, debugstr_a(pszInnerContentObjID), pStreamInfo);
2042
2043 if (GET_CMSG_ENCODING_TYPE(dwMsgEncodingType) != PKCS_7_ASN_ENCODING)
2044 {
2046 return NULL;
2047 }
2048 switch (dwMsgType)
2049 {
2050 case CMSG_DATA:
2051 msg = CDataEncodeMsg_Open(dwFlags, pvMsgEncodeInfo,
2052 pszInnerContentObjID, pStreamInfo);
2053 break;
2054 case CMSG_HASHED:
2055 msg = CHashEncodeMsg_Open(dwFlags, pvMsgEncodeInfo,
2056 pszInnerContentObjID, pStreamInfo);
2057 break;
2058 case CMSG_SIGNED:
2059 msg = CSignedEncodeMsg_Open(dwFlags, pvMsgEncodeInfo,
2060 pszInnerContentObjID, pStreamInfo);
2061 break;
2062 case CMSG_ENVELOPED:
2063 msg = CEnvelopedEncodeMsg_Open(dwFlags, pvMsgEncodeInfo,
2064 pszInnerContentObjID, pStreamInfo);
2065 break;
2067 case CMSG_ENCRYPTED:
2068 /* defined but invalid, fall through */
2069 default:
2071 }
2072 return msg;
2073}
static HCRYPTMSG CEnvelopedEncodeMsg_Open(DWORD dwFlags, const void *pvMsgEncodeInfo, LPCSTR pszInnerContentObjID, PCMSG_STREAM_INFO pStreamInfo)
Definition: msg.c:1949
static HCRYPTMSG CHashEncodeMsg_Open(DWORD dwFlags, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID, PCMSG_STREAM_INFO pStreamInfo)
Definition: msg.c:548
static HCRYPTMSG CSignedEncodeMsg_Open(DWORD dwFlags, const void *pvMsgEncodeInfo, LPCSTR pszInnerContentObjID, PCMSG_STREAM_INFO pStreamInfo)
Definition: msg.c:1364
static HCRYPTMSG CDataEncodeMsg_Open(DWORD dwFlags, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID, PCMSG_STREAM_INFO pStreamInfo)
Definition: msg.c:351
#define CMSG_DATA
Definition: wincrypt.h:3844
#define CMSG_SIGNED_AND_ENVELOPED
Definition: wincrypt.h:3847
#define CMSG_ENCRYPTED
Definition: wincrypt.h:3849
#define CMSG_SIGNED
Definition: wincrypt.h:3845
#define CRYPT_E_INVALID_MSG_TYPE
Definition: winerror.h:4403

Referenced by CryptEncryptMessage(), CryptHashMessage(), CryptMsgSignCTL(), CryptSignMessage(), test_data_msg_encoding(), test_data_msg_get_param(), test_data_msg_open(), test_data_msg_update(), test_enveloped_msg_encoding(), test_enveloped_msg_open(), test_enveloped_msg_update(), test_hash_msg_encoding(), test_hash_msg_get_param(), test_hash_msg_open(), test_hash_msg_update(), test_msg_close(), test_msg_control(), test_msg_open_to_encode(), test_signed_msg_encoding(), test_signed_msg_get_param(), test_signed_msg_open(), and test_signed_msg_update().

◆ CryptMsgSignCTL()

WINCRYPT32API BOOL WINAPI CryptMsgSignCTL ( DWORD  dwMsgEncodingType,
BYTE pbCtlContent,
DWORD  cbCtlContent,
PCMSG_SIGNED_ENCODE_INFO  pSignInfo,
DWORD  dwFlags,
BYTE pbEncoded,
DWORD pcbEncoded 
)

Definition at line 3810 of file msg.c.

3813{
3814 static char oid_ctl[] = szOID_CTL;
3815 BOOL ret;
3816 HCRYPTMSG msg;
3817
3818 TRACE("(%08x, %p, %d, %p, %08x, %p, %p)\n", dwMsgEncodingType,
3819 pbCtlContent, cbCtlContent, pSignInfo, dwFlags, pbEncoded, pcbEncoded);
3820
3821 if (dwFlags)
3822 {
3823 FIXME("unimplemented for flags %08x\n", dwFlags);
3824 return FALSE;
3825 }
3826 msg = CryptMsgOpenToEncode(dwMsgEncodingType, 0, CMSG_SIGNED, pSignInfo,
3827 oid_ctl, NULL);
3828 if (msg)
3829 {
3830 ret = CryptMsgUpdate(msg, pbCtlContent, cbCtlContent, TRUE);
3831 if (ret)
3833 pcbEncoded);
3835 }
3836 else
3837 ret = FALSE;
3838 return ret;
3839}

Referenced by CryptMsgEncodeAndSignCTL().

◆ CryptMsgUpdate()

◆ CryptMsgVerifyCountersignatureEncoded()

WINCRYPT32API BOOL WINAPI CryptMsgVerifyCountersignatureEncoded ( HCRYPTPROV_LEGACY  hCryptProv,
DWORD  dwEncodingType,
PBYTE  pbSignerInfo,
DWORD  cbSignerInfo,
PBYTE  pbSignerInfoCountersignature,
DWORD  cbSignerInfoCountersignature,
PCERT_INFO  pciCountersigner 
)

◆ CryptMsgVerifyCountersignatureEncodedEx()

WINCRYPT32API BOOL WINAPI CryptMsgVerifyCountersignatureEncodedEx ( HCRYPTPROV_LEGACY  hCryptProv,
DWORD  dwEncodingType,
PBYTE  pbSignerInfo,
DWORD  cbSignerInfo,
PBYTE  pbSignerInfoCountersignature,
DWORD  cbSignerInfoCountersignature,
DWORD  dwSignerType,
void pvSigner,
DWORD  dwFlags,
void pvReserved 
)

Definition at line 3773 of file msg.c.

3777{
3778 FIXME("(%08lx, %08x, %p, %d, %p, %d, %d, %p, %08x, %p): stub\n", hCryptProv,
3779 dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature,
3780 cbSignerInfoCountersignature, dwSignerType, pvSigner, dwFlags, pvReserved);
3781 return FALSE;
3782}

◆ CryptProtectData()

WINCRYPT32API BOOL WINAPI CryptProtectData ( DATA_BLOB pDataIn,
LPCWSTR  szDataDescr,
DATA_BLOB pOptionalEntropy,
PVOID  pvReserved,
CRYPTPROTECT_PROMPTSTRUCT pPromptStruct,
DWORD  dwFlags,
DATA_BLOB pDataOut 
)

Definition at line 821 of file protectdata.c.

828{
829 static const WCHAR empty_str[1];
830 BOOL rc = FALSE;
832 struct protect_data_t protect_data;
833 HCRYPTHASH hHash;
836
837 TRACE("called\n");
838
840
841 if (!pDataIn || !pDataOut)
842 {
844 goto finished;
845 }
846
847 /* debug: show our arguments */
848 report(pDataIn,pOptionalEntropy,pPromptStruct,dwFlags);
849 TRACE("\tszDataDescr: %p %s\n", szDataDescr,
851
852 /* Windows appears to create an empty szDataDescr instead of maintaining
853 * a NULL */
854 if (!szDataDescr)
856
857 /* get crypt context */
859 {
860 ERR("CryptAcquireContextW failed\n");
861 goto finished;
862 }
863
864 /* populate our structure */
865 if (!fill_protect_data(&protect_data,szDataDescr,hProv))
866 {
867 ERR("fill_protect_data\n");
868 goto free_context;
869 }
870
871 /* load key */
872 if (!load_encryption_key(hProv,protect_data.cipher_key_len,&protect_data.salt,pOptionalEntropy,&hKey))
873 {
875 }
876
877 /* create a hash for the encryption validation */
879 {
880 ERR("CryptCreateHash\n");
881 goto free_key;
882 }
883
884 /* calculate storage required */
885 dwLength=pDataIn->cbData;
886 if (CryptEncrypt(hKey, 0, TRUE, 0, pDataIn->pbData, &dwLength, 0) ||
888 {
889 ERR("CryptEncrypt\n");
890 goto free_hash;
891 }
892 TRACE("required encrypted storage: %u\n", dwLength);
893
894 /* copy plain text into cipher area for CryptEncrypt call */
895 protect_data.cipher.cbData=dwLength;
896 if (!(protect_data.cipher.pbData=CryptMemAlloc(
897 protect_data.cipher.cbData)))
898 {
899 ERR("CryptMemAlloc\n");
900 goto free_hash;
901 }
902 memcpy(protect_data.cipher.pbData,pDataIn->pbData,pDataIn->cbData);
903
904 /* encrypt! */
905 dwLength=pDataIn->cbData;
906 if (!CryptEncrypt(hKey, hHash, TRUE, 0, protect_data.cipher.pbData,
907 &dwLength, protect_data.cipher.cbData))
908 {
909 ERR("CryptEncrypt %u\n", GetLastError());
910 goto free_hash;
911 }
912 protect_data.cipher.cbData=dwLength;
913
914 /* debug: show the cipher */
915 TRACE_DATA_BLOB(&protect_data.cipher);
916
917 /* attach our fingerprint */
918 if (!convert_hash_to_blob(hHash, &protect_data.fingerprint))
919 {
920 ERR("convert_hash_to_blob\n");
921 goto free_hash;
922 }
923
924 /* serialize into an opaque blob */
925 if (!serialize(&protect_data, pDataOut))
926 {
927 ERR("serialize\n");
928 goto free_hash;
929 }
930
931 /* success! */
932 rc=TRUE;
933
934free_hash:
935 CryptDestroyHash(hHash);
936free_key:
939 free_protect_data(&protect_data);
940free_context:
942finished:
943 /* If some error occurred, and no error code was set, force one. */
944 if (!rc && GetLastError()==ERROR_SUCCESS)
945 {
947 }
948
949 if (rc)
950 {
952
953 TRACE_DATA_BLOB(pDataOut);
954 }
955
956 TRACE("returning %s\n", rc ? "ok" : "FAIL");
957
958 return rc;
959}
static const TCHAR empty_str[]
Definition: dialog.c:20
#define ERR(fmt,...)
Definition: precomp.h:57
BOOL WINAPI CryptEncrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen, DWORD dwBufLen)
Definition: crypt.c:1093
#define CRYPT32_PROTECTDATA_HASH_CALG
Definition: protectdata.c:50
#define CRYPT32_PROTECTDATA_PROV
Definition: protectdata.c:49
static BOOL fill_protect_data(struct protect_data_t *pInfo, LPCWSTR szDataDescr, HCRYPTPROV hProv)
Definition: protectdata.c:571
static void report(const DATA_BLOB *pDataIn, const DATA_BLOB *pOptionalEntropy, CRYPTPROTECT_PROMPTSTRUCT *pPromptStruct, DWORD dwFlags)
Definition: protectdata.c:769
static void free_protect_data(struct protect_data_t *pInfo)
Definition: protectdata.c:534
static BOOL convert_hash_to_blob(HCRYPTHASH hHash, DATA_BLOB *blob)
Definition: protectdata.c:645
static BOOL serialize(const struct protect_data_t *pInfo, DATA_BLOB *pSerial)
Definition: protectdata.c:217
static BOOL load_encryption_key(HCRYPTPROV hProv, DWORD key_len, const DATA_BLOB *salt, const DATA_BLOB *pOptionalEntropy, HCRYPTKEY *phKey)
Definition: protectdata.c:705
#define TRACE_DATA_BLOB(blob)
Definition: protectdata.c:135
static DWORD DWORD * dwLength
Definition: fusion.c:86
WCHAR * szDataDescr
Definition: protectdata.c:99
#define CRYPT_VERIFYCONTEXT
Definition: wincrypt.h:2273
static const WCHAR MS_ENHANCED_PROV_W[]
Definition: wincrypt.h:2129

Referenced by store_key_pair().

◆ CryptProtectMemory()

WINCRYPT32API BOOL WINAPI CryptProtectMemory ( void pData,
DWORD  cbData,
DWORD  dwFlags 
)

Definition at line 312 of file main.c.

313{
314 static int fixme_once;
315 if (!fixme_once++) FIXME("(%p %u %08x): stub\n", data, len, flags);
316 return TRUE;
317}

◆ CryptQueryObject()

WINCRYPT32API BOOL WINAPI CryptQueryObject ( DWORD  dwObjectType,
const void pvObject,
DWORD  dwExpectedContentTypeFlags,
DWORD  dwExpectedFormatTypeFlags,
DWORD  dwFlags,
DWORD pdwMsgAndCertEncodingType,
DWORD pdwContentType,
DWORD pdwFormatType,
HCERTSTORE phCertStore,
HCRYPTMSG phMsg,
const void **  ppvContext 
)

Definition at line 699 of file object.c.

704{
705 static const DWORD unimplementedTypes =
708 BOOL ret = TRUE;
709
710 TRACE("(%08x, %p, %08x, %08x, %08x, %p, %p, %p, %p, %p, %p)\n",
711 dwObjectType, pvObject, dwExpectedContentTypeFlags,
712 dwExpectedFormatTypeFlags, dwFlags, pdwMsgAndCertEncodingType,
713 pdwContentType, pdwFormatType, phCertStore, phMsg, ppvContext);
714
715 if (dwObjectType != CERT_QUERY_OBJECT_BLOB &&
716 dwObjectType != CERT_QUERY_OBJECT_FILE)
717 {
718 WARN("unsupported type %d\n", dwObjectType);
720 return FALSE;
721 }
722 if (!pvObject)
723 {
724 WARN("missing required argument\n");
726 return FALSE;
727 }
728 if (dwExpectedContentTypeFlags & unimplementedTypes)
729 WARN("unimplemented for types %08x\n",
730 dwExpectedContentTypeFlags & unimplementedTypes);
731
732 if (pdwFormatType)
733 *pdwFormatType = CERT_QUERY_FORMAT_BINARY;
734 if (phCertStore)
735 *phCertStore = NULL;
736 if (phMsg)
737 *phMsg = NULL;
738 if (ppvContext)
739 *ppvContext = NULL;
740
741 ret = FALSE;
742 if ((dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_CERT) ||
743 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_CRL) ||
744 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_CTL))
745 {
746 ret = CRYPT_QueryContextObject(dwObjectType, pvObject,
747 dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags,
748 pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType, phCertStore,
749 ppvContext);
750 }
751 if (!ret &&
752 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE))
753 {
754 ret = CRYPT_QuerySerializedStoreObject(dwObjectType, pvObject,
755 pdwMsgAndCertEncodingType, pdwContentType, phCertStore, phMsg);
756 }
757 if (!ret &&
758 ((dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT) ||
759 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL) ||
760 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL)))
761 {
762 ret = CRYPT_QuerySerializedContextObject(dwObjectType, pvObject,
763 dwExpectedContentTypeFlags, pdwMsgAndCertEncodingType, pdwContentType,
764 phCertStore, ppvContext);
765 }
766 if (!ret &&
767 ((dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED) ||
768 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED)))
769 {
770 ret = CRYPT_QueryMessageObject(dwObjectType, pvObject,
771 dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags,
772 pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType,
773 phCertStore, phMsg);
774 }
775 if (!ret &&
776 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED))
777 {
778 ret = CRYPT_QueryEmbeddedMessageObject(dwObjectType, pvObject,
779 dwExpectedContentTypeFlags, pdwMsgAndCertEncodingType, pdwContentType,
780 phCertStore, phMsg);
781 }
782 if (!ret)
784 TRACE("returning %d\n", ret);
785 return ret;
786}
static BOOL CRYPT_QueryMessageObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, DWORD *pdwFormatType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg)
Definition: object.c:473
static BOOL CRYPT_QuerySerializedContextObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCERTSTORE *phCertStore, const void **ppvContext)
Definition: object.c:186
static BOOL CRYPT_QuerySerializedStoreObject(DWORD dwObjectType, const void *pvObject, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg)
Definition: object.c:349
static BOOL CRYPT_QueryContextObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, DWORD *pdwFormatType, HCERTSTORE *phCertStore, const void **ppvContext)
Definition: object.c:97
static BOOL CRYPT_QueryEmbeddedMessageObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg)
Definition: object.c:622
#define CERT_QUERY_OBJECT_FILE
Definition: wincrypt.h:3686
#define CERT_QUERY_FORMAT_BINARY
Definition: wincrypt.h:3739
#define CERT_QUERY_OBJECT_BLOB
Definition: wincrypt.h:3687

Referenced by CRYPT_CreateAny(), CRYPT_CreateContext(), CRYPT_CreatePKCS7(), CRYPT_FileControl(), CRYPT_FileNameOpenStoreW(), CryptExtOpenCERW(), and open_store_from_file().

◆ CryptRegisterDefaultOIDFunction()

WINCRYPT32API BOOL WINAPI CryptRegisterDefaultOIDFunction ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
DWORD  dwIndex,
LPCWSTR  pwszDll 
)

Definition at line 1109 of file oid.c.

1111{
1112 HKEY key;
1113 LPWSTR dlls;
1114 BOOL ret = FALSE;
1115
1116 TRACE("(%x, %s, %d, %s)\n", dwEncodingType, debugstr_a(pszFuncName),
1117 dwIndex, debugstr_w(pwszDll));
1118
1119 if (!pwszDll)
1120 {
1122 return FALSE;
1123 }
1124
1125 if (!CRYPT_GetDefaultOIDKey(dwEncodingType, pszFuncName, &key))
1126 return FALSE;
1127
1129 if (CRYPT_FindStringInMultiString(dlls, pwszDll))
1131 else
1132 {
1133 dlls = CRYPT_AddStringToMultiString(dlls, pwszDll, dwIndex);
1134 if (dlls)
1136 }
1137 CryptMemFree(dlls);
1139 return ret;
1140}
static LPWSTR CRYPT_AddStringToMultiString(LPWSTR multi, LPCWSTR toAdd, DWORD index)
Definition: oid.c:958
static LPCWSTR CRYPT_FindStringInMultiString(LPCWSTR multi, LPCWSTR toFind)
Definition: oid.c:928
static BOOL CRYPT_GetDefaultOIDKey(DWORD dwEncodingType, LPCSTR pszFuncName, PHKEY key)
Definition: oid.c:1050
static BOOL CRYPT_SetDefaultOIDDlls(HKEY key, LPCWSTR dlls)
Definition: oid.c:1095
static LPWSTR CRYPT_GetDefaultOIDDlls(HKEY key)
Definition: oid.c:1073
#define ERROR_FILE_EXISTS
Definition: winerror.h:288

Referenced by DllRegisterServer(), test_getDefaultOIDFunctionAddress(), and test_registerDefaultOIDFunction().

◆ CryptRegisterOIDFunction()

WINCRYPT32API BOOL WINAPI CryptRegisterOIDFunction ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
LPCSTR  pszOID,
LPCWSTR  pwszDll,
LPCSTR  pszOverrideFuncName 
)

Definition at line 647 of file oid.c.

649{
650 LONG r;
651 HKEY hKey;
652 LPSTR szKey;
653
654 TRACE("(%x, %s, %s, %s, %s)\n", dwEncodingType, debugstr_a(pszFuncName),
655 debugstr_a(pszOID), debugstr_w(pwszDll), debugstr_a(pszOverrideFuncName));
656
657 /* Native does nothing pwszDll is NULL */
658 if (!pwszDll)
659 return TRUE;
660
661 /* I'm not matching MS bug for bug here, because I doubt any app depends on
662 * it: native "succeeds" if pszFuncName is NULL, but the nonsensical entry
663 * it creates would never be used.
664 */
665 if (!pszFuncName || !pszOID)
666 {
668 return FALSE;
669 }
670
671 szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
672 TRACE("Key name is %s\n", debugstr_a(szKey));
673
674 if (!szKey)
675 return FALSE;
676
678 CryptMemFree(szKey);
679
680 if (r != ERROR_SUCCESS) goto error_close_key;
681
682 /* write the values */
683 if (pszOverrideFuncName)
684 {
685 r = RegSetValueExA(hKey, "FuncName", 0, REG_SZ,
686 (const BYTE*)pszOverrideFuncName, lstrlenA(pszOverrideFuncName) + 1);
687 if (r != ERROR_SUCCESS) goto error_close_key;
688 }
689 r = RegSetValueExW(hKey, DllW, 0, REG_SZ, (const BYTE*) pwszDll,
690 (lstrlenW(pwszDll) + 1) * sizeof (WCHAR));
691
692error_close_key:
693
695
696 if (r != ERROR_SUCCESS)
697 {
699 return FALSE;
700 }
701
702 return TRUE;
703}
LONG WINAPI RegCreateKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:1179
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
Definition: reg.c:4799
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4882

Referenced by DllRegisterServer(), and test_registerOIDFunction().

◆ CryptRegisterOIDInfo()

WINCRYPT32API BOOL WINAPI CryptRegisterOIDInfo ( PCCRYPT_OID_INFO  pInfo,
DWORD  dwFlags 
)

Definition at line 750 of file oid.c.

751{
752 char *key_name;
753 HKEY root = 0, key = 0;
754 DWORD err;
755
756 TRACE("(%p, %x)\n", info, flags );
757
758 if (!info || info->cbSize != sizeof(*info) || !info->pszOID)
759 {
761 return FALSE;
762 }
763
764 if (!info->dwGroupId) return TRUE;
765
766 key_name = CryptMemAlloc(strlen(info->pszOID) + 16);
767 if (!key_name)
768 {
770 goto done;
771 }
772
773 err = RegCreateKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CryptDllFindOIDInfo",
774 0, NULL, 0, KEY_ALL_ACCESS, NULL, &root, NULL);
775 if (err != ERROR_SUCCESS) goto done;
776
777 sprintf(key_name, "%s!%u", info->pszOID, info->dwGroupId);
779 if (err != ERROR_SUCCESS) goto done;
780
781 if (flags)
782 {
783 err = RegSetValueExW(key, flagsW, 0, REG_DWORD, (const BYTE *)&flags, sizeof(flags));
784 if (err != ERROR_SUCCESS) goto done;
785 }
786
787 if (info->pwszName)
788 {
789 err = RegSetValueExW(key, nameW, 0, REG_SZ, (const BYTE *)info->pwszName, (lstrlenW(info->pwszName) + 1) * sizeof(WCHAR));
790 if (err != ERROR_SUCCESS) goto done;
791 }
792
793 if (info->u.Algid)
794 {
795 err = RegSetValueExW(key, algidW, 0, REG_DWORD, (const BYTE *)&info->u.Algid, sizeof(info->u.Algid));
796 if (err != ERROR_SUCCESS) goto done;
797 }
798
799 if (info->ExtraInfo.cbData && info->ExtraInfo.pbData)
800 {
801 err = RegSetValueExW(key, extraW, 0, REG_BINARY, info->ExtraInfo.pbData, info->ExtraInfo.cbData);
802 if (err != ERROR_SUCCESS) goto done;
803 }
804
805 if (info->pwszCNGAlgid)
806 {
807 err = RegSetValueExW(key, cngalgidW, 0, REG_SZ, (const BYTE *)info->pwszCNGAlgid, (lstrlenW(info->pwszCNGAlgid) + 1) * sizeof(WCHAR));
808 if (err != ERROR_SUCCESS) goto done;
809 }
810
811 if (info->pwszCNGExtraAlgid)
812 {
813 err = RegSetValueExW(key, cngextraalgidW, 0, REG_SZ, (const BYTE *)info->pwszCNGExtraAlgid, (lstrlenW(info->pwszCNGExtraAlgid) + 1) * sizeof(WCHAR));
814 if (err != ERROR_SUCCESS) goto done;
815 }
816
817done:
819 if (key) RegCloseKey(key);
820 if (root) RegCloseKey(root);
821
822 if (err)
824
825 return !err;
826}
static const WCHAR nameW[]
Definition: oid.c:80
static const WCHAR cngextraalgidW[]
Definition: oid.c:84
static const WCHAR extraW[]
Definition: oid.c:82
static const WCHAR cngalgidW[]
Definition: oid.c:83
static const WCHAR flagsW[]
Definition: oid.c:85
static const WCHAR algidW[]
Definition: oid.c:81
#define sprintf(buf, format,...)
Definition: sprintf.c:55
#define REG_BINARY
Definition: nt_native.h:1496
#define KEY_ALL_ACCESS
Definition: nt_native.h:1041
#define err(...)
#define REG_DWORD
Definition: sdbapi.c:596

Referenced by test_registerOIDInfo().

◆ CryptReleaseContext()

WINADVAPI BOOL WINAPI CryptReleaseContext ( HCRYPTPROV  hProv,
DWORD  dwFlags 
)

Definition at line 648 of file crypt.c.

649{
650 PCRYPTPROV pProv = (PCRYPTPROV)hProv;
651 BOOL ret = TRUE;
652
653 TRACE("(0x%lx, %08x)\n", hProv, dwFlags);
654
655 if (!pProv)
656 {
658 return FALSE;
659 }
660
661 if (pProv->dwMagic != MAGIC_CRYPTPROV)
662 {
664 return FALSE;
665 }
666
667 if (InterlockedDecrement(&pProv->refcount) == 0)
668 {
669 ret = pProv->pFuncs->pCPReleaseContext(pProv->hPrivate, dwFlags);
670 pProv->dwMagic = 0;
671 FreeLibrary(pProv->hModule);
672#if 0
673 CRYPT_Free(pProv->pVTable->pContextInfo);
674#endif
676 CRYPT_Free(pProv->pVTable);
677 CRYPT_Free(pProv->pFuncs);
678 CRYPT_Free(pProv);
679 }
680 return ret;
681}

Referenced by CDecodeMsg_Close(), CEnvelopedEncodeMsg_Close(), CEnvelopedEncodeMsg_Open(), CertContext_SetProperty(), CertCreateSelfSignCertificate(), CHashEncodeMsg_Close(), clean_up_aes_environment(), clean_up_base_environment(), create_silly_rename(), CRYPT_FileNameOpenStoreW(), CRYPT_FileOpenStore(), CRYPT_GetDefaultProvider(), CRYPT_MemOpenStore(), CRYPT_MsgOpenStore(), CRYPT_RegOpenStore(), CRYPT_SysOpenStoreW(), CryptCATAdminCalcHashFromFileHandle(), CryptCATAdminEnumCatalogFromHash(), CryptProtectData(), CryptSignMessage(), CryptUnprotectData(), CSignedEncodeMsg_Open(), detect_nt(), DllMain(), DllRegisterServer(), export_private_key_dlg_proc(), find_key_prov_info_in_provider(), hash_file(), I_CryptGetDefaultCryptProv(), key_prov_info_matches_cert(), nfs41_client_owner(), rdssl_cert_to_rkey(), rdssl_hash_info_create(), rdssl_hash_info_delete(), rdssl_hmac_md5(), rdssl_rc4_info_delete(), SOFTPUB_VerifyImageHash(), START_TEST(), test_container_sd(), test_decode_msg_get_param(), test_encrypt_message(), test_enveloped_msg_open(), test_getDefaultCryptProv(), test_hashes(), test_key_initialization(), test_null_provider(), test_rsa_round_trip(), test_schannel_provider(), test_sign_message(), test_signed_msg_encoding(), test_signed_msg_get_param(), test_signed_msg_open(), test_signed_msg_update(), test_sip(), testAcquireCertPrivateKey(), testAcquireSecurityContext(), testCertSigs(), testCreateSelfSignCert(), and testPortPublicKeyInfo().

◆ CryptRetrieveObjectByUrlA()

BOOL WINAPI CryptRetrieveObjectByUrlA ( LPCSTR  pszURL,
LPCSTR  pszObjectOid,
DWORD  dwRetrievalFlags,
DWORD  dwTimeout,
LPVOID ppvObject,
HCRYPTASYNC  hAsyncRetrieve,
PCRYPT_CREDENTIALS  pCredentials,
LPVOID  pvVerify,
PCRYPT_RETRIEVE_AUX_INFO  pAuxInfo 
)

Definition at line 397 of file cryptnet_main.c.

401{
402 BOOL ret = FALSE;
403 int len;
404
405 TRACE("(%s, %s, %08x, %d, %p, %p, %p, %p, %p)\n", debugstr_a(pszURL),
406 debugstr_a(pszObjectOid), dwRetrievalFlags, dwTimeout, ppvObject,
407 hAsyncRetrieve, pCredentials, pvVerify, pAuxInfo);
408
409 if (!pszURL)
410 {
412 return FALSE;
413 }
414 len = MultiByteToWideChar(CP_ACP, 0, pszURL, -1, NULL, 0);
415 if (len)
416 {
417 LPWSTR url = CryptMemAlloc(len * sizeof(WCHAR));
418
419 if (url)
420 {
421 MultiByteToWideChar(CP_ACP, 0, pszURL, -1, url, len);
422 ret = CryptRetrieveObjectByUrlW(url, pszObjectOid,
423 dwRetrievalFlags, dwTimeout, ppvObject, hAsyncRetrieve,
424 pCredentials, pvVerify, pAuxInfo);
426 }
427 else
429 }
430 return ret;
431}
BOOL WINAPI CryptRetrieveObjectByUrlW(LPCWSTR pszURL, LPCSTR pszObjectOid, DWORD dwRetrievalFlags, DWORD dwTimeout, LPVOID *ppvObject, HCRYPTASYNC hAsyncRetrieve, PCRYPT_CREDENTIALS pCredentials, LPVOID pvVerify, PCRYPT_RETRIEVE_AUX_INFO pAuxInfo)
static const WCHAR url[]
Definition: encode.c:1432

Referenced by test_retrieveObjectByUrl().

◆ CryptRetrieveObjectByUrlW()

BOOL WINAPI CryptRetrieveObjectByUrlW ( LPCWSTR  pszURL,
LPCSTR  pszObjectOid,
DWORD  dwRetrievalFlags,
DWORD  dwTimeout,
LPVOID ppvObject,
HCRYPTASYNC  hAsyncRetrieve,
PCRYPT_CREDENTIALS  pCredentials,
LPVOID  pvVerify,
PCRYPT_RETRIEVE_AUX_INFO  pAuxInfo 
)

Definition at line 1489 of file cryptnet_main.c.

1493{
1494 BOOL ret;
1497 HCRYPTOIDFUNCADDR hRetrieve = 0, hCreate = 0;
1498
1499 TRACE("(%s, %s, %08x, %d, %p, %p, %p, %p, %p)\n", debugstr_w(pszURL),
1500 debugstr_a(pszObjectOid), dwRetrievalFlags, dwTimeout, ppvObject,
1501 hAsyncRetrieve, pCredentials, pvVerify, pAuxInfo);
1502
1503 if (!pszURL)
1504 {
1506 return FALSE;
1507 }
1508 ret = CRYPT_GetRetrieveFunction(pszURL, &retrieve, &hRetrieve);
1509 if (ret)
1510 ret = CRYPT_GetCreateFunction(pszObjectOid, &create, &hCreate);
1511 if (ret)
1512 {
1513 CRYPT_BLOB_ARRAY object = { 0, NULL };
1515 void *freeContext;
1516 FILETIME expires;
1517
1518 ret = retrieve(pszURL, pszObjectOid, dwRetrievalFlags, dwTimeout,
1519 &object, &freeObject, &freeContext, hAsyncRetrieve, pCredentials,
1520 pAuxInfo);
1521 if (ret)
1522 {
1523 ret = create(pszObjectOid, dwRetrievalFlags, &object, ppvObject);
1524 if (ret && !(dwRetrievalFlags & CRYPT_DONT_CACHE_RESULT) &&
1525 CRYPT_GetExpiration(*ppvObject, pszObjectOid, &expires))
1526 {
1527 CRYPT_CacheURL(pszURL, &object, dwRetrievalFlags, expires);
1528 }
1529 freeObject(pszObjectOid, &object, freeContext);
1530 }
1531 }
1532 if (hCreate)
1533 CryptFreeOIDFunctionAddress(hCreate, 0);
1534 if (hRetrieve)
1535 CryptFreeOIDFunctionAddress(hRetrieve, 0);
1536 TRACE("returning %d\n", ret);
1537 return ret;
1538}
static BOOL CRYPT_GetRetrieveFunction(LPCWSTR pszURL, SchemeDllRetrieveEncodedObjectW *pFunc, HCRYPTOIDFUNCADDR *phFunc)
static BOOL CRYPT_GetCreateFunction(LPCSTR pszObjectOid, ContextDllCreateObjectContext *pFunc, HCRYPTOIDFUNCADDR *phFunc)
static void CRYPT_CacheURL(LPCWSTR pszURL, const CRYPT_BLOB_ARRAY *pObject, DWORD dwRetrievalFlags, FILETIME expires)
static BOOL CRYPT_GetExpiration(const void *object, const char *pszObjectOid, FILETIME *expiration)
BOOL(WINAPI * ContextDllCreateObjectContext)(LPCSTR pszObjectOid, DWORD dwRetrievalFlags, const CRYPT_BLOB_ARRAY *pObject, void **ppvContext)
BOOL(WINAPI * SchemeDllRetrieveEncodedObjectW)(LPCWSTR pwszUrl, LPCSTR pszObjectOid, DWORD dwRetrievalFlags, DWORD dwTimeout, PCRYPT_BLOB_ARRAY pObject, PFN_FREE_ENCODED_OBJECT_FUNC *ppfnFreeObject, void **ppvFreeContext, HCRYPTASYNC hAsyncRetrieve, PCRYPT_CREDENTIALS pCredentials, PCRYPT_RETRIEVE_AUX_INFO pAuxInfo)
static const struct access_res create[16]
Definition: package.c:7505
#define CRYPT_DONT_CACHE_RESULT
Definition: wincrypt.h:1885
void(WINAPI * PFN_FREE_ENCODED_OBJECT_FUNC)(LPCSTR pszObjectOid, PCRYPT_BLOB_ARRAY pObject, void *pvFreeContext)
Definition: wincrypt.h:1854

Referenced by CRYPT_FindIssuer(), CryptRetrieveObjectByUrlA(), and verify_cert_revocation_from_dist_points_ext().

◆ CryptSetAsyncParam()

WINCRYPT32API BOOL WINAPI CryptSetAsyncParam ( HCRYPTASYNC  hAsync,
LPSTR  pszParamOid,
LPVOID  pvParam,
PFN_CRYPT_ASYNC_PARAM_FREE_FUNC  pfnFree 
)

◆ CryptSetHashParam()

WINADVAPI BOOL WINAPI CryptSetHashParam ( HCRYPTHASH  hHash,
DWORD  dwParam,
const BYTE pbData,
DWORD  dwFlags 
)

Definition at line 1970 of file crypt.c.

1971{
1972 PCRYPTPROV prov;
1973 PCRYPTHASH hash = (PCRYPTHASH)hHash;
1974
1975 TRACE("(0x%lx, %d, %p, %08x)\n", hHash, dwParam, pbData, dwFlags);
1976
1977 if (!hash || !pbData || !hash->pProvider ||
1978 hash->dwMagic != MAGIC_CRYPTHASH || hash->pProvider->dwMagic != MAGIC_CRYPTPROV)
1979 {
1981 return FALSE;
1982 }
1983
1984 prov = hash->pProvider;
1985 return prov->pFuncs->pCPSetHashParam(prov->hPrivate, hash->hPrivate,
1986 dwParam, pbData, dwFlags);
1987}

Referenced by rdssl_hmac_md5(), test_hashes(), test_hmac(), test_import_hmac(), and test_schannel_provider().

◆ CryptSetKeyParam()

WINADVAPI BOOL WINAPI CryptSetKeyParam ( HCRYPTKEY  hKey,
DWORD  dwParam,
const BYTE pbData,
DWORD  dwFlags 
)

Definition at line 2004 of file crypt.c.

2005{
2006 PCRYPTPROV prov;
2008
2009 TRACE("(0x%lx, %d, %p, %08x)\n", hKey, dwParam, pbData, dwFlags);
2010
2011 if (!key || !pbData || !key->pProvider ||
2012 key->dwMagic != MAGIC_CRYPTKEY || key->pProvider->dwMagic != MAGIC_CRYPTPROV)
2013 {
2015 return FALSE;
2016 }
2017
2018 prov = key->pProvider;
2019 return prov->pFuncs->pCPSetKeyParam(prov->hPrivate, key->hPrivate,
2020 dwParam, pbData, dwFlags);
2021}

Referenced by test_block_cipher_modes(), test_des(), test_key_permissions(), test_rc2(), test_rc4(), test_rsa_encrypt(), and test_schannel_provider().

◆ CryptSetOIDFunctionValue()

WINCRYPT32API BOOL WINAPI CryptSetOIDFunctionValue ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
LPCSTR  pszOID,
LPCWSTR  pwszValueName,
DWORD  dwValueType,
const BYTE pbValueData,
DWORD  cbValueData 
)

Definition at line 891 of file oid.c.

894{
895 LPSTR szKey;
896 LONG rc;
897 HKEY hKey;
898
899 TRACE("%x %s %s %s %d %p %d\n", dwEncodingType, debugstr_a(pszFuncName),
900 debugstr_a(pszOID), debugstr_w(pwszValueName), dwValueType, pbValueData,
901 cbValueData);
902
903 if (!GET_CERT_ENCODING_TYPE(dwEncodingType))
904 return TRUE;
905
906 if (!pszFuncName || !pszOID || !pwszValueName)
907 {
909 return FALSE;
910 }
911
912 szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
913 rc = RegOpenKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
914 CryptMemFree(szKey);
915 if (rc)
916 SetLastError(rc);
917 else
918 {
919 rc = RegSetValueExW(hKey, pwszValueName, 0, dwValueType, pbValueData,
920 cbValueData);
921 if (rc)
922 SetLastError(rc);
924 }
925 return !rc;
926}

◆ CryptSetProviderA()

WINADVAPI BOOL WINAPI CryptSetProviderA ( LPCSTR  pszProvName,
DWORD  dwProvType 
)

Definition at line 2036 of file crypt.c.

2037{
2038 TRACE("(%s, %d)\n", pszProvName, dwProvType);
2039 return CryptSetProviderExA(pszProvName, dwProvType, NULL, CRYPT_USER_DEFAULT);
2040}
BOOL WINAPI CryptSetProviderExA(LPCSTR pszProvName, DWORD dwProvType, DWORD *pdwReserved, DWORD dwFlags)
Definition: crypt.c:2149

◆ CryptSetProviderExA()

WINADVAPI BOOL WINAPI CryptSetProviderExA ( LPCSTR  pszProvName,
DWORD  dwProvType,
DWORD pdwReserved,
DWORD  dwFlags 
)

Definition at line 2149 of file crypt.c.

2150{
2151 BOOL ret = FALSE;
2152 PWSTR str = NULL;
2153
2154 TRACE("(%s, %d, %p, %08x)\n", pszProvName, dwProvType, pdwReserved, dwFlags);
2155
2156 if (CRYPT_ANSIToUnicode(pszProvName, &str, -1))
2157 {
2158 ret = CryptSetProviderExW(str, dwProvType, pdwReserved, dwFlags);
2159 CRYPT_Free(str);
2160 }
2161 return ret;
2162}
BOOL WINAPI CryptSetProviderExW(LPCWSTR pszProvName, DWORD dwProvType, DWORD *pdwReserved, DWORD dwFlags)
Definition: crypt.c:2068

Referenced by CryptSetProviderA().

◆ CryptSetProviderExW()

WINADVAPI BOOL WINAPI CryptSetProviderExW ( LPCWSTR  pszProvName,
DWORD  dwProvType,
DWORD pdwReserved,
DWORD  dwFlags 
)

Definition at line 2068 of file crypt.c.

2069{
2070 HKEY hProvKey, hTypeKey;
2071 PWSTR keyname;
2072 static const WCHAR nameW[] = {'N','a','m','e',0};
2073
2074 TRACE("(%s, %d, %p, %08x)\n", debugstr_w(pszProvName), dwProvType, pdwReserved, dwFlags);
2075
2076 if (!pszProvName || pdwReserved)
2077 {
2079 return FALSE;
2080 }
2081 if (dwProvType > MAXPROVTYPES)
2082 {
2084 return FALSE;
2085 }
2088 {
2090 return FALSE;
2091 }
2092
2093 if (!(keyname = CRYPT_GetTypeKeyName(dwProvType, dwFlags & CRYPT_USER_DEFAULT)))
2094 {
2096 return FALSE;
2097 }
2099 keyname, &hTypeKey))
2100 {
2101 CRYPT_Free(keyname);
2103 return FALSE;
2104 }
2105 CRYPT_Free(keyname);
2106
2108 {
2109 RegDeleteValueW(hTypeKey, nameW);
2110 }
2111 else
2112 {
2113 if (!(keyname = CRYPT_GetProvKeyName(pszProvName)))
2114 {
2115 RegCloseKey(hTypeKey);
2117 return FALSE;
2118 }
2120 keyname, &hProvKey))
2121 {
2122 CRYPT_Free(keyname);
2123 RegCloseKey(hTypeKey);
2125 return FALSE;
2126 }
2127 CRYPT_Free(keyname);
2128
2129 if (RegSetValueExW(hTypeKey, nameW, 0, REG_SZ, (const BYTE *)pszProvName,
2130 (strlenW(pszProvName) + 1)*sizeof(WCHAR)))
2131 {
2132 RegCloseKey(hTypeKey);
2133 RegCloseKey(hProvKey);
2134 return FALSE;
2135 }
2136
2137 RegCloseKey(hProvKey);
2138 }
2139 RegCloseKey(hTypeKey);
2140
2141 return TRUE;
2142}
LONG WINAPI RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName)
Definition: reg.c:2330
#define CRYPT_DELETE_DEFAULT
Definition: wincrypt.h:2282
#define NTE_BAD_PROVIDER
Definition: winerror.h:4267

Referenced by CryptSetProviderExA(), and CryptSetProviderW().

◆ CryptSetProviderW()

WINADVAPI BOOL WINAPI CryptSetProviderW ( LPCWSTR  pszProvName,
DWORD  dwProvType 
)

Definition at line 2047 of file crypt.c.

2048{
2049 TRACE("(%s, %d)\n", debugstr_w(pszProvName), dwProvType);
2050 return CryptSetProviderExW(pszProvName, dwProvType, NULL, CRYPT_USER_DEFAULT);
2051}

◆ CryptSetProvParam()

WINADVAPI BOOL WINAPI CryptSetProvParam ( HCRYPTPROV  hProv,
DWORD  dwParam,
const BYTE pbData,
DWORD  dwFlags 
)

Definition at line 2179 of file crypt.c.

2180{
2181 PCRYPTPROV prov = (PCRYPTPROV)hProv;
2182
2183 TRACE("(0x%lx, %d, %p, %08x)\n", hProv, dwParam, pbData, dwFlags);
2184
2185 if (!prov)
2186 {
2188 return FALSE;
2189 }
2190 if (prov->dwMagic != MAGIC_CRYPTPROV)
2191 {
2193 return FALSE;
2194 }
2195 if (dwParam == PP_USE_HARDWARE_RNG)
2196 {
2197 FIXME("PP_USE_HARDWARE_RNG: What do I do with this?\n");
2198 FIXME("\tLetting the CSP decide.\n");
2199 }
2200 if (dwFlags & PP_CLIENT_HWND)
2201 {
2202 /* FIXME: Should verify the parameter */
2203 if (pbData /* && IsWindow((HWND)pbData) */)
2204 {
2205 crypt_hWindow = (HWND)(pbData);
2206 return TRUE;
2207 } else {
2209 return FALSE;
2210 }
2211 }
2212 /* All other flags go to the CSP */
2213 return prov->pFuncs->pCPSetProvParam(prov->hPrivate, dwParam, pbData, dwFlags);
2214}
static HWND crypt_hWindow
Definition: crypt.c:59
HANDLE HWND
Definition: compat.h:19
#define PP_CLIENT_HWND
Definition: wincrypt.h:2285
#define PP_USE_HARDWARE_RNG
Definition: wincrypt.h:2317

Referenced by CRYPT_AcquirePrivateKeyFromProvInfo(), and export_acquire_private_key().

◆ CryptSignAndEncodeCertificate()

WINCRYPT32API BOOL WINAPI CryptSignAndEncodeCertificate ( HCRYPTPROV_OR_NCRYPT_KEY_HANDLE  hCryptProv,
DWORD  dwKeySpec,
DWORD  dwCertEncodingType,
LPCSTR  lpszStructType,
const void pvStructInfo,
PCRYPT_ALGORITHM_IDENTIFIER  pSignatureAlgorithm,
const void pvHashAuxInfo,
BYTE pbEncoded,
DWORD pcbEncoded 
)

Definition at line 2364 of file cert.c.

2368{
2369 BOOL ret;
2370 DWORD encodedSize, hashSize;
2371
2372 TRACE("(%08lx, %d, %d, %s, %p, %p, %p, %p, %p)\n", hCryptProv, dwKeySpec,
2373 dwCertEncodingType, debugstr_a(lpszStructType), pvStructInfo,
2374 pSignatureAlgorithm, pvHashAuxInfo, pbEncoded, pcbEncoded);
2375
2376 ret = CryptEncodeObject(dwCertEncodingType, lpszStructType, pvStructInfo,
2377 NULL, &encodedSize);
2378 if (ret)
2379 {
2380 PBYTE encoded = CryptMemAlloc(encodedSize);
2381
2382 if (encoded)
2383 {
2384 ret = CryptEncodeObject(dwCertEncodingType, lpszStructType,
2385 pvStructInfo, encoded, &encodedSize);
2386 if (ret)
2387 {
2388 ret = CryptSignCertificate(hCryptProv, dwKeySpec,
2389 dwCertEncodingType, encoded, encodedSize, pSignatureAlgorithm,
2390 pvHashAuxInfo, NULL, &hashSize);
2391 if (ret)
2392 {
2393 PBYTE hash = CryptMemAlloc(hashSize);
2394
2395 if (hash)
2396 {
2397 ret = CryptSignCertificate(hCryptProv, dwKeySpec,
2398 dwCertEncodingType, encoded, encodedSize,
2399 pSignatureAlgorithm, pvHashAuxInfo, hash, &hashSize);
2400 if (ret)
2401 {
2402 CERT_SIGNED_CONTENT_INFO info = { { 0 } };
2403
2404 info.ToBeSigned.cbData = encodedSize;
2405 info.ToBeSigned.pbData = encoded;
2406 info.SignatureAlgorithm = *pSignatureAlgorithm;
2407 info.Signature.cbData = hashSize;
2408 info.Signature.pbData = hash;
2409 info.Signature.cUnusedBits = 0;
2410 ret = CryptEncodeObject(dwCertEncodingType,
2412 }
2414 }
2415 else
2416 ret = FALSE;
2417 }
2418 }
2419 CryptMemFree(encoded);
2420 }
2421 else
2422 ret = FALSE;
2423 }
2424 return ret;
2425}
BOOL WINAPI CryptSignCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, const BYTE *pbEncodedToBeSigned, DWORD cbEncodedToBeSigned, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, const void *pvHashAuxInfo, BYTE *pbSignature, DWORD *pcbSignature)
Definition: cert.c:2305
BOOL WINAPI CryptEncodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType, const void *pvStructInfo, BYTE *pbEncoded, DWORD *pcbEncoded)
Definition: encode.c:4655

Referenced by key_prov_info_matches_cert(), and testSignAndEncodeCert().

◆ CryptSignAndEncryptMessage()

WINCRYPT32API BOOL WINAPI CryptSignAndEncryptMessage ( PCRYPT_SIGN_MESSAGE_PARA  pSignPara,
PCRYPT_ENCRYPT_MESSAGE_PARA  pEncryptPara,
DWORD  cRecipientCert,
PCCERT_CONTEXT  rgpRecipientCert[],
const BYTE pbToBeSignedAndEncrypted,
DWORD  cbToBeSignedAndEncrypted,
BYTE pbSignedAndEncryptedBlob,
DWORD pcbSignedAndEncryptedBlob 
)

◆ CryptSignCertificate()

WINCRYPT32API BOOL WINAPI CryptSignCertificate ( HCRYPTPROV_OR_NCRYPT_KEY_HANDLE  hCryptProv,
DWORD  dwKeySpec,
DWORD  dwCertEncodingType,
const BYTE pbEncodedToBeSigned,
DWORD  cbEncodedToBeSigned,
PCRYPT_ALGORITHM_IDENTIFIER  pSignatureAlgorithm,
const void pvHashAuxInfo,
BYTE pbSignature,
DWORD pcbSignature 
)

Definition at line 2305 of file cert.c.

2309{
2310 BOOL ret;
2312 HCRYPTHASH hHash;
2313
2314 TRACE("(%08lx, %d, %d, %p, %d, %p, %p, %p, %p)\n", hCryptProv,
2315 dwKeySpec, dwCertEncodingType, pbEncodedToBeSigned, cbEncodedToBeSigned,
2316 pSignatureAlgorithm, pvHashAuxInfo, pbSignature, pcbSignature);
2317
2319 pSignatureAlgorithm->pszObjId, 0);
2320 if (!info)
2321 {
2323 return FALSE;
2324 }
2325 if (info->dwGroupId == CRYPT_HASH_ALG_OID_GROUP_ID)
2326 {
2327 if (!hCryptProv)
2328 hCryptProv = I_CryptGetDefaultCryptProv(0);
2329 ret = CryptCreateHash(hCryptProv, info->u.Algid, 0, 0, &hHash);
2330 if (ret)
2331 {
2332 ret = CryptHashData(hHash, pbEncodedToBeSigned,
2333 cbEncodedToBeSigned, 0);
2334 if (ret)
2335 ret = CryptGetHashParam(hHash, HP_HASHVAL, pbSignature,
2336 pcbSignature, 0);
2337 CryptDestroyHash(hHash);
2338 }
2339 }
2340 else
2341 {
2342 if (!hCryptProv)
2343 {
2345 ret = FALSE;
2346 }
2347 else
2348 {
2349 ret = CryptCreateHash(hCryptProv, info->u.Algid, 0, 0, &hHash);
2350 if (ret)
2351 {
2352 ret = CryptHashData(hHash, pbEncodedToBeSigned,
2353 cbEncodedToBeSigned, 0);
2354 if (ret)
2355 ret = CryptSignHashW(hHash, dwKeySpec, NULL, 0, pbSignature,
2356 pcbSignature);
2357 CryptDestroyHash(hHash);
2358 }
2359 }
2360 }
2361 return ret;
2362}
BOOL WINAPI CryptSignHashW(HCRYPTHASH hHash, DWORD dwKeySpec, LPCWSTR sDescription, DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen)
Definition: crypt.c:1908
#define CRYPT_HASH_ALG_OID_GROUP_ID
Definition: wincrypt.h:1937

Referenced by CRYPT_CreateSignedCert(), CryptSignAndEncodeCertificate(), and testSignCert().

◆ CryptSignHashA()

WINADVAPI BOOL WINAPI CryptSignHashA ( HCRYPTHASH  hHash,
DWORD  dwKeySpec,
LPCSTR  sDescription,
DWORD  dwFlags,
BYTE pbSignature,
DWORD pdwSigLen 
)

Definition at line 1939 of file crypt.c.

1941{
1942 LPWSTR wsDescription;
1943 BOOL result;
1944
1945 TRACE("(0x%lx, %d, %s, %08x, %p, %p)\n",
1946 hHash, dwKeySpec, debugstr_a(sDescription), dwFlags, pbSignature, pdwSigLen);
1947
1948 CRYPT_ANSIToUnicode(sDescription, &wsDescription, -1);
1949 result = CryptSignHashW(hHash, dwKeySpec, wsDescription, dwFlags, pbSignature, pdwSigLen);
1950 CRYPT_Free(wsDescription);
1951
1952 return result;
1953}

Referenced by test_hashes(), and verifySig().

◆ CryptSignHashW()

WINADVAPI BOOL WINAPI CryptSignHashW ( HCRYPTHASH  hHash,
DWORD  dwKeySpec,
LPCWSTR  sDescription,
DWORD  dwFlags,
BYTE pbSignature,
DWORD pdwSigLen 
)

Definition at line 1908 of file crypt.c.

1910{
1911 PCRYPTHASH hash = (PCRYPTHASH)hHash;
1912 PCRYPTPROV prov;
1913
1914 TRACE("(0x%lx, %d, %s, %08x, %p, %p)\n",
1915 hHash, dwKeySpec, debugstr_w(sDescription), dwFlags, pbSignature, pdwSigLen);
1916
1917 if (!hash)
1918 {
1920 return FALSE;
1921 }
1922 if (!pdwSigLen || !hash->pProvider || hash->dwMagic != MAGIC_CRYPTHASH ||
1923 hash->pProvider->dwMagic != MAGIC_CRYPTPROV)
1924 {
1926 return FALSE;
1927 }
1928
1929 prov = hash->pProvider;
1930 return prov->pFuncs->pCPSignHash(prov->hPrivate, hash->hPrivate, dwKeySpec, sDescription,
1931 dwFlags, pbSignature, pdwSigLen);
1932}

Referenced by CryptSignCertificate(), CryptSignHashA(), and CSignedMsgData_Sign().

◆ CryptSignMessage()

WINCRYPT32API BOOL WINAPI CryptSignMessage ( PCRYPT_SIGN_MESSAGE_PARA  pSignPara,
BOOL  fDetachedSignature,
DWORD  cToBeSigned,
const BYTE rgpbToBeSigned[],
DWORD  rgcbToBeSigned[],
BYTE pbSignedBlob,
DWORD pcbSignedBlob 
)

Definition at line 406 of file message.c.

409{
410 HCRYPTPROV hCryptProv;
411 BOOL ret, freeProv = FALSE;
412 DWORD i, keySpec;
413 PCERT_BLOB certBlob = NULL;
414 PCRL_BLOB crlBlob = NULL;
417 HCRYPTMSG msg = 0;
418
419 TRACE("(%p, %d, %d, %p, %p, %p, %p)\n", pSignPara, fDetachedSignature,
420 cToBeSigned, rgpbToBeSigned, rgcbToBeSigned, pbSignedBlob, pcbSignedBlob);
421
422 if (pSignPara->cbSize != sizeof(CRYPT_SIGN_MESSAGE_PARA) ||
425 {
426 *pcbSignedBlob = 0;
428 return FALSE;
429 }
430 if (!pSignPara->pSigningCert)
431 return TRUE;
432
434 CRYPT_ACQUIRE_CACHE_FLAG, NULL, &hCryptProv, &keySpec, &freeProv);
435 if (!ret)
436 return FALSE;
437
438 memset(&signer, 0, sizeof(signer));
439 signer.cbSize = sizeof(signer);
440 signer.pCertInfo = pSignPara->pSigningCert->pCertInfo;
441 signer.hCryptProv = hCryptProv;
442 signer.dwKeySpec = keySpec;
443 signer.HashAlgorithm = pSignPara->HashAlgorithm;
444 signer.pvHashAuxInfo = pSignPara->pvHashAuxInfo;
445 signer.cAuthAttr = pSignPara->cAuthAttr;
446 signer.rgAuthAttr = pSignPara->rgAuthAttr;
447 signer.cUnauthAttr = pSignPara->cUnauthAttr;
448 signer.rgUnauthAttr = pSignPara->rgUnauthAttr;
449
450 memset(&signInfo, 0, sizeof(signInfo));
451 signInfo.cbSize = sizeof(signInfo);
452 signInfo.cSigners = 1;
453 signInfo.rgSigners = &signer;
454
455 if (pSignPara->cMsgCert)
456 {
457 certBlob = CryptMemAlloc(sizeof(CERT_BLOB) * pSignPara->cMsgCert);
458 if (certBlob)
459 {
460 for (i = 0; i < pSignPara->cMsgCert; ++i)
461 {
462 certBlob[i].cbData = pSignPara->rgpMsgCert[i]->cbCertEncoded;
463 certBlob[i].pbData = pSignPara->rgpMsgCert[i]->pbCertEncoded;
464 }
465 signInfo.cCertEncoded = pSignPara->cMsgCert;
466 signInfo.rgCertEncoded = certBlob;
467 }
468 else
469 ret = FALSE;
470 }
471 if (pSignPara->cMsgCrl)
472 {
473 crlBlob = CryptMemAlloc(sizeof(CRL_BLOB) * pSignPara->cMsgCrl);
474 if (crlBlob)
475 {
476 for (i = 0; i < pSignPara->cMsgCrl; ++i)
477 {
478 crlBlob[i].cbData = pSignPara->rgpMsgCrl[i]->cbCrlEncoded;
479 crlBlob[i].pbData = pSignPara->rgpMsgCrl[i]->pbCrlEncoded;
480 }
481 signInfo.cCrlEncoded = pSignPara->cMsgCrl;
482 signInfo.rgCrlEncoded = crlBlob;
483 }
484 else
485 ret = FALSE;
486 }
487 if (pSignPara->dwFlags || pSignPara->dwInnerContentType)
488 FIXME("unimplemented feature\n");
489
490 if (ret)
492 fDetachedSignature ? CMSG_DETACHED_FLAG : 0, CMSG_SIGNED, &signInfo,
493 NULL, NULL);
494 if (msg)
495 {
496 if (cToBeSigned)
497 {
498 for (i = 0; ret && i < cToBeSigned; ++i)
499 {
500 ret = CryptMsgUpdate(msg, rgpbToBeSigned[i], rgcbToBeSigned[i],
501 i == cToBeSigned - 1);
502 }
503 }
504 else
506 if (ret)
507 ret = CryptMsgGetParam(msg, CMSG_CONTENT_PARAM, 0, pbSignedBlob,
508 pcbSignedBlob);
510 }
511 else
512 ret = FALSE;
513
514 CryptMemFree(crlBlob);
515 CryptMemFree(certBlob);
516 if (freeProv)
517 CryptReleaseContext(hCryptProv, 0);
518 return ret;
519}
BOOL WINAPI CryptAcquireCertificatePrivateKey(PCCERT_CONTEXT pCert, DWORD dwFlags, void *pvReserved, HCRYPTPROV_OR_NCRYPT_KEY_HANDLE *phCryptProv, DWORD *pdwKeySpec, BOOL *pfCallerFreeProv)
Definition: cert.c:881
PCMSG_SIGNER_ENCODE_INFO rgSigners
Definition: wincrypt.h:3896
PCERT_BLOB rgCertEncoded
Definition: wincrypt.h:3898
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
Definition: wincrypt.h:3879
PCRYPT_ATTRIBUTE rgAuthAttr
Definition: wincrypt.h:3882
PCRYPT_ATTRIBUTE rgUnauthAttr
Definition: wincrypt.h:3884
PCCERT_CONTEXT * rgpMsgCert
Definition: wincrypt.h:1651
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm
Definition: wincrypt.h:1648
PCRYPT_ATTRIBUTE rgUnauthAttr
Definition: wincrypt.h:1657
PCCERT_CONTEXT pSigningCert
Definition: wincrypt.h:1647
PCRYPT_ATTRIBUTE rgAuthAttr
Definition: wincrypt.h:1655
PCCRL_CONTEXT * rgpMsgCrl
Definition: wincrypt.h:1653

Referenced by test_sign_message().

◆ CryptSignMessageWithKey()

WINCRYPT32API BOOL WINAPI CryptSignMessageWithKey ( PCRYPT_KEY_SIGN_MESSAGE_PARA  pSignPara,
const BYTE pbToBeSigned,
DWORD  cbToBeSigned,
BYTE pbSignedBlob,
DWORD pcbSignedBlob 
)

◆ CryptStringToBinaryA()

WINCRYPT32API BOOL WINAPI CryptStringToBinaryA ( LPCSTR  pszString,
DWORD  cchString,
DWORD  dwFlags,
BYTE pbBinary,
DWORD pcbBinary,
DWORD pdwSkip,
DWORD pdwFlags 
)

Definition at line 772 of file base64.c.

775{
777 LONG ret;
778
779 TRACE("(%s, %d, %08x, %p, %p, %p, %p)\n", debugstr_an(pszString, cchString ? cchString : -1),
780 cchString, dwFlags, pbBinary, pcbBinary, pdwSkip, pdwFlags);
781
782 if (!pszString)
783 {
785 return FALSE;
786 }
787 /* Only the bottom byte contains valid types */
788 if (dwFlags & 0xfffffff0)
789 {
791 return FALSE;
792 }
793 switch (dwFlags)
794 {
797 break;
800 break;
803 break;
806 break;
809 break;
812 break;
813 case CRYPT_STRING_ANY:
815 break;
816 case CRYPT_STRING_HEX:
820 FIXME("Unimplemented type %d\n", dwFlags & 0x7fffffff);
821 /* fall through */
822 default:
824 return FALSE;
825 }
826 if (!cchString)
827 cchString = strlen(pszString);
828 ret = decoder(pszString, cchString, pbBinary, pcbBinary, pdwSkip, pdwFlags);
829 if (ret)
831 return ret == ERROR_SUCCESS;
832}
static LONG Base64RequestHeaderToBinaryA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:697
static LONG Base64HeaderToBinaryA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:686
LONG(* StringToBinaryAFunc)(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:544
static LONG Base64ToBinaryA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:629
static LONG Base64AnyToBinaryA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:719
static LONG DecodeAnyA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:756
static LONG Base64X509HeaderToBinaryA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:708
static LONG DecodeBinaryToBinaryA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:732
static __inline const char * debugstr_an(const char *s, int n)
Definition: compat.h:55
#define CRYPT_STRING_BASE64_ANY
Definition: wincrypt.h:3137
#define CRYPT_STRING_ANY
Definition: wincrypt.h:3138

Referenced by CRYPT_QueryContextObject(), CRYPT_QueryMessageObject(), decode_base64_blob(), decodeAndCompareBase64_A(), decodeBase64WithLenFmt(), import_base64_certs_from_fp(), and testStringToBinaryA().

◆ CryptStringToBinaryW()

WINCRYPT32API BOOL WINAPI CryptStringToBinaryW ( LPCWSTR  pszString,
DWORD  cchString,
DWORD  dwFlags,
BYTE pbBinary,
DWORD pcbBinary,
DWORD pdwSkip,
DWORD pdwFlags 
)

Definition at line 983 of file base64.c.

986{
988 LONG ret;
989
990 TRACE("(%s, %d, %08x, %p, %p, %p, %p)\n", debugstr_wn(pszString, cchString ? cchString : -1),
991 cchString, dwFlags, pbBinary, pcbBinary, pdwSkip, pdwFlags);
992
993 if (!pszString)
994 {
996 return FALSE;
997 }
998 /* Only the bottom byte contains valid types */
999 if (dwFlags & 0xfffffff0)
1000 {
1002 return FALSE;
1003 }
1004 switch (dwFlags)
1005 {
1008 break;
1011 break;
1014 break;
1017 break;
1020 break;
1023 break;
1024 case CRYPT_STRING_ANY:
1026 break;
1027 case CRYPT_STRING_HEX:
1031 FIXME("Unimplemented type %d\n", dwFlags & 0x7fffffff);
1032 /* fall through */
1033 default:
1035 return FALSE;
1036 }
1037 if (!cchString)
1038 cchString = strlenW(pszString);
1039 ret = decoder(pszString, cchString, pbBinary, pcbBinary, pdwSkip, pdwFlags);
1040 if (ret)
1042 return ret == ERROR_SUCCESS;
1043}
static LONG Base64HeaderToBinaryW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:897
LONG(* StringToBinaryWFunc)(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:837
static LONG Base64RequestHeaderToBinaryW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:908
static LONG Base64AnyToBinaryW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:930
static LONG Base64X509HeaderToBinaryW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:919
static LONG Base64ToBinaryW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:840
static LONG DecodeBinaryToBinaryW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:943
static LONG DecodeAnyW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:967
#define debugstr_wn
Definition: kernel32.h:33

Referenced by CRYPT_QueryMessageObject(), and decodeBase64WithLenFmtW().

◆ CryptUninstallCancelRetrieval()

BOOL WINAPI CryptUninstallCancelRetrieval ( DWORD  dwFlags,
void pvReserved 
)

◆ CryptUninstallDefaultContext()

WINCRYPT32API BOOL WINAPI CryptUninstallDefaultContext ( HCRYPTDEFAULTCONTEXT  hDefaultContext,
DWORD  dwFlags,
void pvReserved 
)

◆ CryptUnprotectData()

WINCRYPT32API BOOL WINAPI CryptUnprotectData ( DATA_BLOB pDataIn,
LPWSTR ppszDataDescr,
DATA_BLOB pOptionalEntropy,
PVOID  pvReserved,
CRYPTPROTECT_PROMPTSTRUCT pPromptStruct,
DWORD  dwFlags,
DATA_BLOB pDataOut 
)

Definition at line 990 of file protectdata.c.

997{
998 BOOL rc = FALSE;
999
1001 struct protect_data_t protect_data;
1002 HCRYPTHASH hHash;
1005
1006 const char * announce_bad_opaque_data = "CryptUnprotectData received a DATA_BLOB that seems to have NOT been generated by Wine. Please enable tracing ('export WINEDEBUG=crypt') to see details.";
1007
1008 TRACE("called\n");
1009
1011
1012 if (!pDataIn || !pDataOut)
1013 {
1015 goto finished;
1016 }
1017 if (!pDataIn->cbData)
1018 {
1020 goto finished;
1021 }
1022
1023 /* debug: show our arguments */
1024 report(pDataIn,pOptionalEntropy,pPromptStruct,dwFlags);
1025 TRACE("\tppszDataDescr: %p\n", ppszDataDescr);
1026
1027 /* take apart the opaque blob */
1028 if (!unserialize(pDataIn, &protect_data))
1029 {
1031 FIXME("%s\n",announce_bad_opaque_data);
1032 goto finished;
1033 }
1034
1035 /* perform basic validation on the resulting structure */
1036 if (!valid_protect_data(&protect_data))
1037 {
1039 FIXME("%s\n",announce_bad_opaque_data);
1040 goto free_protect_data;
1041 }
1042
1043 /* get a crypt context */
1045 {
1046 ERR("CryptAcquireContextW failed\n");
1047 goto free_protect_data;
1048 }
1049
1050 /* load key */
1051 if (!load_encryption_key(hProv,protect_data.cipher_key_len,&protect_data.salt,pOptionalEntropy,&hKey))
1052 {
1053 goto free_context;
1054 }
1055
1056 /* create a hash for the decryption validation */
1058 {
1059 ERR("CryptCreateHash\n");
1060 goto free_key;
1061 }
1062
1063 /* prepare for plaintext */
1064 pDataOut->cbData=protect_data.cipher.cbData;
1065 if (!(pDataOut->pbData=LocalAlloc( LPTR, pDataOut->cbData)))
1066 {
1067 ERR("CryptMemAlloc\n");
1068 goto free_hash;
1069 }
1070 memcpy(pDataOut->pbData,protect_data.cipher.pbData,protect_data.cipher.cbData);
1071
1072 /* decrypt! */
1073 if (!CryptDecrypt(hKey, hHash, TRUE, 0, pDataOut->pbData,
1074 &pDataOut->cbData) ||
1075 /* check the hash fingerprint */
1076 pDataOut->cbData > protect_data.cipher.cbData ||
1077 !hash_matches_blob(hHash, &protect_data.fingerprint))
1078 {
1080
1081 LocalFree( pDataOut->pbData );
1082 pDataOut->pbData = NULL;
1083 pDataOut->cbData = 0;
1084
1085 goto free_hash;
1086 }
1087
1088 /* Copy out the description */
1089 dwLength = (lstrlenW(protect_data.szDataDescr)+1) * sizeof(WCHAR);
1090 if (ppszDataDescr)
1091 {
1092 if (!(*ppszDataDescr = LocalAlloc(LPTR,dwLength)))
1093 {
1094 ERR("LocalAlloc (ppszDataDescr)\n");
1095 goto free_hash;
1096 }
1097 else {
1098 memcpy(*ppszDataDescr,protect_data.szDataDescr,dwLength);
1099 }
1100 }
1101
1102 /* success! */
1103 rc = TRUE;
1104
1105free_hash:
1106 CryptDestroyHash(hHash);
1107free_key:
1109free_context:
1112 free_protect_data(&protect_data);
1113finished:
1114 /* If some error occurred, and no error code was set, force one. */
1115 if (!rc && GetLastError()==ERROR_SUCCESS)
1116 {
1118 }
1119
1120 if (rc) {
1122
1123 if (ppszDataDescr)
1124 {
1125 TRACE("szDataDescr: %s\n",debugstr_w(*ppszDataDescr));
1126 }
1127 TRACE_DATA_BLOB(pDataOut);
1128 }
1129
1130 TRACE("returning %s\n", rc ? "ok" : "FAIL");
1131
1132 return rc;
1133}
BOOL WINAPI CryptDecrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen)
Definition: crypt.c:800
static BOOL valid_protect_data(const struct protect_data_t *pInfo)
Definition: protectdata.c:487
static BOOL hash_matches_blob(HCRYPTHASH hHash, const DATA_BLOB *two)
Definition: protectdata.c:682
static BOOL unserialize(const DATA_BLOB *pSerial, struct protect_data_t *pInfo)
Definition: protectdata.c:344
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:1390
#define LPTR
Definition: winbase.h:414

Referenced by read_key_value().

◆ CryptUnprotectMemory()

WINCRYPT32API BOOL WINAPI CryptUnprotectMemory ( void pData,
DWORD  cbData,
DWORD  dwFlags 
)

Definition at line 319 of file main.c.

320{
321 static int fixme_once;
322 if (!fixme_once++) FIXME("(%p %u %08x): stub\n", data, len, flags);
323 return TRUE;
324}

◆ CryptUnregisterDefaultOIDFunction()

WINCRYPT32API BOOL WINAPI CryptUnregisterDefaultOIDFunction ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
LPCWSTR  pwszDll 
)

Definition at line 1142 of file oid.c.

1144{
1145 HKEY key;
1146 LPWSTR dlls;
1147 BOOL ret;
1148
1149 TRACE("(%x, %s, %s)\n", dwEncodingType, debugstr_a(pszFuncName),
1150 debugstr_w(pwszDll));
1151
1152 if (!pwszDll)
1153 {
1155 return FALSE;
1156 }
1157
1158 if (!CRYPT_GetDefaultOIDKey(dwEncodingType, pszFuncName, &key))
1159 return FALSE;
1160
1162 if ((ret = CRYPT_RemoveStringFromMultiString(dlls, pwszDll)))
1164 CryptMemFree(dlls);
1166 return ret;
1167}
static BOOL CRYPT_RemoveStringFromMultiString(LPWSTR multi, LPCWSTR toRemove)
Definition: oid.c:1016

Referenced by DllUnregisterServer(), test_getDefaultOIDFunctionAddress(), and test_registerDefaultOIDFunction().

◆ CryptUnregisterOIDFunction()

WINCRYPT32API BOOL WINAPI CryptUnregisterOIDFunction ( DWORD  dwEncodingType,
LPCSTR  pszFuncName,
LPCSTR  pszOID 
)

Definition at line 831 of file oid.c.

833{
834 LPSTR szKey;
835 LONG rc;
836
837 TRACE("%x %s %s\n", dwEncodingType, debugstr_a(pszFuncName),
838 debugstr_a(pszOID));
839
840 if (!pszFuncName || !pszOID)
841 {
843 return FALSE;
844 }
845
846 szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
848 CryptMemFree(szKey);
849 if (rc)
850 SetLastError(rc);
851 return !rc;
852}
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
Definition: reg.c:1224

Referenced by DllUnregisterServer(), and test_registerOIDFunction().

◆ CryptUnregisterOIDInfo()

WINCRYPT32API BOOL WINAPI CryptUnregisterOIDInfo ( PCCRYPT_OID_INFO  pInfo)

Definition at line 708 of file oid.c.

709{
710 char *key_name;
711 HKEY root;
712 DWORD err;
713
714 TRACE("(%p)\n", info);
715
716 if (!info || info->cbSize != sizeof(*info) || !info->pszOID)
717 {
719 return FALSE;
720 }
721
722 err = RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CryptDllFindOIDInfo", 0, KEY_ALL_ACCESS, &root);
723 if (err != ERROR_SUCCESS)
724 {
726 return FALSE;
727 }
728
729 key_name = CryptMemAlloc(strlen(info->pszOID) + 16);
730 if (key_name)
731 {
732 sprintf(key_name, "%s!%u", info->pszOID, info->dwGroupId);
734 }
735 else
737
740
741 if (err)
743
744 return !err;
745}
struct _root root
LONG WINAPI RegOpenKeyExA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey, _In_ DWORD ulOptions, _In_ REGSAM samDesired, _Out_ PHKEY phkResult)
Definition: reg.c:3298

Referenced by test_registerOIDInfo().

◆ CryptVerifyCertificateSignature()

WINCRYPT32API BOOL WINAPI CryptVerifyCertificateSignature ( HCRYPTPROV_LEGACY  hCryptProv,
DWORD  dwCertEncodingType,
const BYTE pbEncoded,
DWORD  cbEncoded,
PCERT_PUBLIC_KEY_INFO  pPublicKey 
)

Definition at line 2427 of file cert.c.

2430{
2431 CRYPT_DATA_BLOB blob = { cbEncoded, (BYTE *)pbEncoded };
2432
2433 return CryptVerifyCertificateSignatureEx(hCryptProv, dwCertEncodingType,
2436}
#define CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY
Definition: wincrypt.h:3631
#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB
Definition: wincrypt.h:3626

Referenced by testVerifyCertSig().

◆ CryptVerifyCertificateSignatureEx()

WINCRYPT32API BOOL WINAPI CryptVerifyCertificateSignatureEx ( HCRYPTPROV_LEGACY  hCryptProv,
DWORD  dwCertEncodingType,
DWORD  dwSubjectType,
void pvSubject,
DWORD  dwIssuerType,
void pvIssuer,
DWORD  dwFlags,
void pvReserved 
)

Definition at line 2717 of file cert.c.

2720{
2721 BOOL ret = TRUE;
2722 CRYPT_DATA_BLOB subjectBlob;
2723
2724 TRACE("(%08lx, %d, %d, %p, %d, %p, %08x, %p)\n", hCryptProv,
2725 dwCertEncodingType, dwSubjectType, pvSubject, dwIssuerType, pvIssuer,
2727
2728 switch (dwSubjectType)
2729 {
2731 {
2732 PCRYPT_DATA_BLOB blob = pvSubject;
2733
2734 subjectBlob.pbData = blob->pbData;
2735 subjectBlob.cbData = blob->cbData;
2736 break;
2737 }
2739 {
2740 PCERT_CONTEXT context = pvSubject;
2741
2742 subjectBlob.pbData = context->pbCertEncoded;
2743 subjectBlob.cbData = context->cbCertEncoded;
2744 break;
2745 }
2747 {
2748 PCRL_CONTEXT context = pvSubject;
2749
2750 subjectBlob.pbData = context->pbCrlEncoded;
2751 subjectBlob.cbData = context->cbCrlEncoded;
2752 break;
2753 }
2754 default:
2756 ret = FALSE;
2757 }
2758
2759 if (ret)
2760 {
2761 PCERT_SIGNED_CONTENT_INFO signedCert = NULL;
2762 DWORD size = 0;
2763
2764 ret = CryptDecodeObjectEx(dwCertEncodingType, X509_CERT,
2765 subjectBlob.pbData, subjectBlob.cbData,
2767 &signedCert, &size);
2768 if (ret)
2769 {
2770 switch (dwIssuerType)
2771 {
2774 dwCertEncodingType, pvIssuer,
2775 signedCert);
2776 break;
2779 dwCertEncodingType,
2780 &((PCCERT_CONTEXT)pvIssuer)->pCertInfo->SubjectPublicKeyInfo,
2781 signedCert);
2782 break;
2784 FIXME("CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN: stub\n");
2785 ret = FALSE;
2786 break;
2788 if (pvIssuer)
2789 {
2791 ret = FALSE;
2792 }
2793 else
2794 {
2795 FIXME("unimplemented for NULL signer\n");
2797 ret = FALSE;
2798 }
2799 break;
2800 default:
2802 ret = FALSE;
2803 }
2804 LocalFree(signedCert);
2805 }
2806 }
2807 return ret;
2808}
static BOOL CRYPT_VerifyCertSignatureFromPublicKeyInfo(HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, CERT_PUBLIC_KEY_INFO *pubKeyInfo, const CERT_SIGNED_CONTENT_INFO *signedCert)
Definition: cert.c:2699
#define CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL
Definition: wincrypt.h:3634
#define CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN
Definition: wincrypt.h:3633

Referenced by CertGetCRLFromStore(), CertVerifySubjectCertificateContext(), compare_crl_issued_by(), CRYPT_CheckRootCert(), CRYPT_CheckSimpleChain(), CryptVerifyCertificateSignature(), and init_function_pointers().

◆ CryptVerifyDetachedMessageHash()

WINCRYPT32API BOOL WINAPI CryptVerifyDetachedMessageHash ( PCRYPT_HASH_MESSAGE_PARA  pHashPara,
BYTE pbDetachedHashBlob,
DWORD  cbDetachedHashBlob,
DWORD  cToBeHashed,
const BYTE rgpbToBeHashed[],
DWORD  rgcbToBeHashed[],
BYTE pbComputedHash,
DWORD pcbComputedHash 
)

Definition at line 309 of file message.c.

313{
315 BOOL ret = FALSE;
316
317 TRACE("(%p, %p, %d, %d, %p, %p, %p, %p)\n", pHashPara, pbDetachedHashBlob,
318 cbDetachedHashBlob, cToBeHashed, rgpbToBeHashed, rgcbToBeHashed,
319 pbComputedHash, pcbComputedHash);
320
321 if (pHashPara->cbSize != sizeof(CRYPT_HASH_MESSAGE_PARA))
322 {
324 return FALSE;
325 }
328 {
330 return FALSE;
331 }
333 0, pHashPara->hCryptProv, NULL, NULL);
334 if (msg)
335 {
336 DWORD i;
337
338 ret = CryptMsgUpdate(msg, pbDetachedHashBlob, cbDetachedHashBlob, TRUE);
339 if (ret)
340 {
341 if (cToBeHashed)
342 {
343 for (i = 0; ret && i < cToBeHashed; i++)
344 {
345 ret = CryptMsgUpdate(msg, rgpbToBeHashed[i],
346 rgcbToBeHashed[i], i == cToBeHashed - 1);
347 }
348 }
349 else
351 }
352 if (ret)
353 {
355 if (ret && pcbComputedHash)
357 pbComputedHash, pcbComputedHash);
358 }
360 }
361 return ret;
362}
#define CMSG_CTRL_VERIFY_HASH
Definition: wincrypt.h:4036

Referenced by test_verify_detached_message_hash().

◆ CryptVerifyDetachedMessageSignature()

WINCRYPT32API BOOL WINAPI CryptVerifyDetachedMessageSignature ( PCRYPT_VERIFY_MESSAGE_PARA  pVerifyPara,
DWORD  dwSignerIndex,
const BYTE pbDetachedSignBlob,
DWORD  cbDetachedSignBlob,
DWORD  cToBeSigned,
const BYTE rgpbToBeSigned[],
DWORD  rgcbToBeSigned[],
PCCERT_CONTEXT ppSignerCert 
)

Definition at line 108 of file message.c.

113{
114 BOOL ret = FALSE;
116
117 TRACE("(%p, %d, %p, %d, %d, %p, %p, %p)\n", pVerifyPara, dwSignerIndex,
118 pbDetachedSignBlob, cbDetachedSignBlob, cToBeSigned, rgpbToBeSigned,
119 rgcbToBeSigned, ppSignerCert);
120
121 if (ppSignerCert)
122 *ppSignerCert = NULL;
123 if (!pVerifyPara ||
124 pVerifyPara->cbSize != sizeof(CRYPT_VERIFY_MESSAGE_PARA) ||
127 {
129 return FALSE;
130 }
131
133 CMSG_DETACHED_FLAG, 0, pVerifyPara->hCryptProv, NULL, NULL);
134 if (msg)
135 {
136 ret = CryptMsgUpdate(msg, pbDetachedSignBlob, cbDetachedSignBlob, TRUE);
137 if (ret)
138 {
139 DWORD i;
140
141 for (i = 0; ret && i < cToBeSigned; i++)
142 ret = CryptMsgUpdate(msg, rgpbToBeSigned[i], rgcbToBeSigned[i],
143 i == cToBeSigned - 1);
144 }
145 if (ret)
146 {
148 dwSignerIndex);
149
150 ret = FALSE;
151 if (certInfo)
152 {
154 pVerifyPara->dwMsgAndCertEncodingType,
155 pVerifyPara->hCryptProv, 0, msg);
156
157 if (store)
158 {
160 msg, pVerifyPara, certInfo, store);
161
162 if (cert)
163 {
165 CMSG_CTRL_VERIFY_SIGNATURE, cert->pCertInfo);
166 if (ret && ppSignerCert)
167 *ppSignerCert = cert;
168 else
170 }
171 else
173 CertCloseStore(store, 0);
174 }
175 CryptMemFree(certInfo);
176 }
177 }
179 }
180 TRACE("returning %d\n", ret);
181 return ret;
182}
static CERT_INFO * CRYPT_GetSignerCertInfoFromMsg(HCRYPTMSG msg, DWORD dwSignerIndex)
Definition: message.c:63
static PCCERT_CONTEXT CRYPT_GetSignerCertificate(HCRYPTMSG msg, PCRYPT_VERIFY_MESSAGE_PARA pVerifyPara, PCERT_INFO certInfo, HCERTSTORE store)
Definition: message.c:95
HCRYPTPROV_LEGACY hCryptProv
Definition: wincrypt.h:1686

Referenced by test_verify_detached_message_signature().

◆ CryptVerifyMessageHash()

WINCRYPT32API BOOL WINAPI CryptVerifyMessageHash ( PCRYPT_HASH_MESSAGE_PARA  pHashPara,
BYTE pbHashedBlob,
DWORD  cbHashedBlob,
BYTE pbToBeHashed,
DWORD pcbToBeHashed,
BYTE pbComputedHash,
DWORD pcbComputedHash 
)

Definition at line 364 of file message.c.

367{
369 BOOL ret = FALSE;
370
371 TRACE("(%p, %p, %d, %p, %p, %p, %p)\n", pHashPara, pbHashedBlob,
372 cbHashedBlob, pbToBeHashed, pcbToBeHashed, pbComputedHash,
373 pcbComputedHash);
374
375 if (pHashPara->cbSize != sizeof(CRYPT_HASH_MESSAGE_PARA))
376 {
378 return FALSE;
379 }
382 {
384 return FALSE;
385 }
386 msg = CryptMsgOpenToDecode(pHashPara->dwMsgEncodingType, 0, 0,
387 pHashPara->hCryptProv, NULL, NULL);
388 if (msg)
389 {
390 ret = CryptMsgUpdate(msg, pbHashedBlob, cbHashedBlob, TRUE);
391 if (ret)
392 {
394 if (ret && pcbToBeHashed)
396 pbToBeHashed, pcbToBeHashed);
397 if (ret && pcbComputedHash)
399 pbComputedHash, pcbComputedHash);
400 }
402 }
403 return ret;
404}

Referenced by test_verify_message_hash().

◆ CryptVerifyMessageSignature()

WINCRYPT32API BOOL WINAPI CryptVerifyMessageSignature ( PCRYPT_VERIFY_MESSAGE_PARA  pVerifyPara,
DWORD  dwSignerIndex,
const BYTE pbSignedBlob,
DWORD  cbSignedBlob,
BYTE pbDecoded,
DWORD pcbDecoded,
PCCERT_CONTEXT ppSignerCert 
)

Definition at line 184 of file message.c.

187{
188 BOOL ret = FALSE;
190
191 TRACE("(%p, %d, %p, %d, %p, %p, %p)\n",
192 pVerifyPara, dwSignerIndex, pbSignedBlob, cbSignedBlob,
193 pbDecoded, pcbDecoded, ppSignerCert);
194
195 if (ppSignerCert)
196 *ppSignerCert = NULL;
197 if (!pVerifyPara ||
198 pVerifyPara->cbSize != sizeof(CRYPT_VERIFY_MESSAGE_PARA) ||
201 {
202 if(pcbDecoded)
203 *pcbDecoded = 0;
205 return FALSE;
206 }
207
209 pVerifyPara->hCryptProv, NULL, NULL);
210 if (msg)
211 {
212 ret = CryptMsgUpdate(msg, pbSignedBlob, cbSignedBlob, TRUE);
213 if (ret && pcbDecoded)
215 pcbDecoded);
216 if (ret)
217 {
219 dwSignerIndex);
220
221 ret = FALSE;
222 if (certInfo)
223 {
225 pVerifyPara->dwMsgAndCertEncodingType,
226 pVerifyPara->hCryptProv, 0, msg);
227
228 if (store)
229 {
231 msg, pVerifyPara, certInfo, store);
232
233 if (cert)
234 {
236 CMSG_CTRL_VERIFY_SIGNATURE, cert->pCertInfo);
237 if (ret && ppSignerCert)
238 *ppSignerCert = cert;
239 else
241 }
242 CertCloseStore(store, 0);
243 }
244 }
245 CryptMemFree(certInfo);
246 }
248 }
249 if(!ret && pcbDecoded)
250 *pcbDecoded = 0;
251 TRACE("returning %d\n", ret);
252 return ret;
253}

Referenced by test_verify_message_signature().

◆ CryptVerifyMessageSignatureWithKey()

WINCRYPT32API BOOL WINAPI CryptVerifyMessageSignatureWithKey ( PCRYPT_KEY_VERIFY_MESSAGE_PARA  pVerifyPara,
PCERT_PUBLIC_KEY_INFO  pPublicKeyInfo,
const BYTE pbSignedBlob,
DWORD  cbSignedBlob,
BYTE pbDecoded,
DWORD pcbDecoded 
)

◆ CryptVerifySignatureA()

WINADVAPI BOOL WINAPI CryptVerifySignatureA ( HCRYPTHASH  hHash,
const BYTE pbSignature,
DWORD  dwSigLen,
HCRYPTKEY  hPubKey,
LPCSTR  sDescription,
DWORD  dwFlags 
)

Definition at line 2266 of file crypt.c.

2268{
2269 LPWSTR wsDescription;
2270 BOOL result;
2271
2272 TRACE("(0x%lx, %p, %d, 0x%lx, %s, %08x)\n", hHash, pbSignature,
2273 dwSigLen, hPubKey, debugstr_a(sDescription), dwFlags);
2274
2275 CRYPT_ANSIToUnicode(sDescription, &wsDescription, -1);
2276 result = CryptVerifySignatureW(hHash, pbSignature, dwSigLen, hPubKey, wsDescription, dwFlags);
2277 CRYPT_Free(wsDescription);
2278
2279 return result;
2280}
BOOL WINAPI CryptVerifySignatureW(HCRYPTHASH hHash, const BYTE *pbSignature, DWORD dwSigLen, HCRYPTKEY hPubKey, LPCWSTR sDescription, DWORD dwFlags)
Definition: crypt.c:2238

Referenced by test_verify_signature().

◆ CryptVerifySignatureW()

WINADVAPI BOOL WINAPI CryptVerifySignatureW ( HCRYPTHASH  hHash,
const BYTE pbSignature,
DWORD  dwSigLen,
HCRYPTKEY  hPubKey,
LPCWSTR  sDescription,
DWORD  dwFlags 
)

Definition at line 2238 of file crypt.c.

2240{
2241 PCRYPTHASH hash = (PCRYPTHASH)hHash;
2242 PCRYPTKEY key = (PCRYPTKEY)hPubKey;
2243 PCRYPTPROV prov;
2244
2245 TRACE("(0x%lx, %p, %d, 0x%lx, %s, %08x)\n", hHash, pbSignature,
2246 dwSigLen, hPubKey, debugstr_w(sDescription), dwFlags);
2247
2248 if (!hash || !key || key->dwMagic != MAGIC_CRYPTKEY || hash->dwMagic != MAGIC_CRYPTHASH ||
2249 !hash->pProvider || hash->pProvider->dwMagic != MAGIC_CRYPTPROV ||
2250 !key->pProvider || key->pProvider->dwMagic != MAGIC_CRYPTPROV)
2251 {
2253 return FALSE;
2254 }
2255
2256 prov = hash->pProvider;
2257 return prov->pFuncs->pCPVerifySignature(prov->hPrivate, hash->hPrivate, pbSignature, dwSigLen,
2258 key->hPrivate, sDescription, dwFlags);
2259}

Referenced by CDecodeSignedMsg_VerifySignatureWithKey(), CRYPT_VerifySignature(), and CryptVerifySignatureA().

◆ FindCertsByIssuer()

HRESULT WINAPI FindCertsByIssuer ( PCERT_CHAIN  pCertChains,
DWORD pcbCertChains,
DWORD pcCertChains,
BYTE pbEncodedIssuerName,
DWORD  cbEncodedIssuerName,
LPCWSTR  pwszPurpose,
DWORD  dwKeySpec 
)

Definition at line 1203 of file wintrust_main.c.

1206{
1207 FIXME("(%p, %p, %p, %p, %d, %s, %d): stub\n", pCertChains, pcbCertChains,
1208 pcCertChains, pbEncodedIssuerName, cbEncodedIssuerName,
1209 debugstr_w(pwszPurpose), dwKeySpec);
1210 return E_FAIL;
1211}
#define E_FAIL
Definition: ddrawi.h:102

◆ LPVOID()

typedef LPVOID ( __WINE_ALLOC_SIZE(1) WINAPI PFN_CRYPT_ALLOC)

◆ PFXExportCertStore()

WINCRYPT32API BOOL WINAPI PFXExportCertStore ( HCERTSTORE  hStore,
CRYPT_DATA_BLOB pPFX,
LPCWSTR  szPassword,
DWORD  dwFlags 
)

Definition at line 4761 of file encode.c.

4763{
4764 return PFXExportCertStoreEx(hStore, pPFX, szPassword, NULL, dwFlags);
4765}
BOOL WINAPI PFXExportCertStoreEx(HCERTSTORE hStore, CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, void *pvReserved, DWORD dwFlags)
Definition: encode.c:4767

Referenced by save_pfx().

◆ PFXExportCertStoreEx()

WINCRYPT32API BOOL WINAPI PFXExportCertStoreEx ( HCERTSTORE  hStore,
CRYPT_DATA_BLOB pPFX,
LPCWSTR  szPassword,
void pvReserved,
DWORD  dwFlags 
)

Definition at line 4767 of file encode.c.

4769{
4770 FIXME_(crypt)("(%p, %p, %p, %p, %08x): stub\n", hStore, pPFX, szPassword,
4772 return FALSE;
4773}
#define FIXME_(x)
Definition: compat.h:77

Referenced by PFXExportCertStore().

◆ PFXImportCertStore()

WINCRYPT32API HCERTSTORE WINAPI PFXImportCertStore ( CRYPT_DATA_BLOB pPFX,
LPCWSTR  szPassword,
DWORD  dwFlags 
)

Definition at line 6400 of file decode.c.

6402{
6403 FIXME_(crypt)("(%p, %p, %08x): stub\n", pPFX, szPassword, dwFlags);
6404 return NULL;
6405}

◆ PFXIsPFXBlob()

WINCRYPT32API BOOL WINAPI PFXIsPFXBlob ( CRYPT_DATA_BLOB pPFX)

Definition at line 6365 of file decode.c.

6366{
6367 BOOL ret;
6368
6369 TRACE_(crypt)("(%p)\n", pPFX);
6370
6371 /* A PFX blob is an asn.1-encoded sequence, consisting of at least a
6372 * version integer of length 1 (3 encoded byes) and at least one other
6373 * datum (two encoded bytes), plus at least two bytes for the outer
6374 * sequence. Thus, even an empty PFX blob is at least 7 bytes in length.
6375 */
6376 if (pPFX->cbData < 7)
6377 ret = FALSE;
6378 else if (pPFX->pbData[0] == ASN_SEQUENCE)
6379 {
6380 DWORD len;
6381
6382 if ((ret = CRYPT_GetLengthIndefinite(pPFX->pbData, pPFX->cbData, &len)))
6383 {
6384 BYTE lenLen = GET_LEN_BYTES(pPFX->pbData[1]);
6385
6386 /* Need at least three bytes for the integer version */
6387 if (pPFX->cbData < 1 + lenLen + 3)
6388 ret = FALSE;
6389 else if (pPFX->pbData[1 + lenLen] != ASN_INTEGER || /* Tag */
6390 pPFX->pbData[1 + lenLen + 1] != 1 || /* Definite length */
6391 pPFX->pbData[1 + lenLen + 2] != 3) /* PFX version */
6392 ret = FALSE;
6393 }
6394 }
6395 else
6396 ret = FALSE;
6397 return ret;
6398}
static BOOL CRYPT_GetLengthIndefinite(const BYTE *pbEncoded, DWORD cbEncoded, DWORD *len)
Definition: decode.c:121
#define GET_LEN_BYTES(b)
Definition: decode.c:113
#define ASN_INTEGER
Definition: snmp.h:103

◆ PFXVerifyPassword()

WINCRYPT32API BOOL WINAPI PFXVerifyPassword ( CRYPT_DATA_BLOB pPFX,
LPCWSTR  szPassword,
DWORD  dwFlags 
)

Definition at line 6407 of file decode.c.

6409{
6410 FIXME_(crypt)("(%p, %p, %08x): stub\n", pPFX, szPassword, dwFlags);
6411 return FALSE;
6412}

Variable Documentation

◆ CERT_EFSBLOB_REGPATH

const WCHAR CERT_EFSBLOB_REGPATH[]
static
Initial value:
=
{'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',
'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',
't','i','f','i','c','a','t','e','s','\\','E','F','S',0 }

Definition at line 2564 of file wincrypt.h.

◆ CERT_EFSBLOB_VALUE_NAME

const WCHAR CERT_EFSBLOB_VALUE_NAME[] = { 'E','F','S','B','l','o','b',0 }
static

Definition at line 2568 of file wincrypt.h.

◆ CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH

const WCHAR CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH[]
static
Initial value:
=
{'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',
'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',
't','i','f','i','c','a','t','e','s',0 }

Definition at line 2554 of file wincrypt.h.

Referenced by CRYPT_OpenParentStore(), and CRYPT_SysRegOpenStoreW().

◆ CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH

const WCHAR CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH[]
static
Initial value:
=
{'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
'S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s',0 }

Definition at line 2551 of file wincrypt.h.

Referenced by CRYPT_OpenParentStore(), CRYPT_SysRegOpenStoreW(), and testSystemStore().

◆ CERT_PHYSICAL_STORE_AUTH_ROOT_NAME

const WCHAR CERT_PHYSICAL_STORE_AUTH_ROOT_NAME[]
static
Initial value:
=
{'.','A','u','t','h','R','o','o','t',0}

Definition at line 2781 of file wincrypt.h.

◆ CERT_PHYSICAL_STORE_DEFAULT_NAME

const WCHAR CERT_PHYSICAL_STORE_DEFAULT_NAME[]
static
Initial value:
=
{'.','D','e','f','a','u','l','t','0'}

Definition at line 2768 of file wincrypt.h.

◆ CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME

const WCHAR CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME[]
static
Initial value:
=
{'.','U','s','e','r','C','e','r','t','i','f','i','c','a','t','e',0}

Definition at line 2774 of file wincrypt.h.

◆ CERT_PHYSICAL_STORE_ENTERPRISE_NAME

const WCHAR CERT_PHYSICAL_STORE_ENTERPRISE_NAME[]
static
Initial value:
=
{'.','E','n','t','e','r','p','r','i','s','e',0}

Definition at line 2779 of file wincrypt.h.

◆ CERT_PHYSICAL_STORE_GROUP_POLICY_NAME

const WCHAR CERT_PHYSICAL_STORE_GROUP_POLICY_NAME[]
static
Initial value:
=
{'.','G','r','o','u','p','P','o','l','i','c','y',0}

Definition at line 2770 of file wincrypt.h.

◆ CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME

const WCHAR CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME[]
static
Initial value:
=
{'.','L','o','c','a','l','M','a','c','h','i','n','e','G','r','o','u','p',
'P','o','l','i','c','y',0}

Definition at line 2776 of file wincrypt.h.

◆ CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME

const WCHAR CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME[]
static
Initial value:
=
{'.','L','o','c','a','l','M','a','c','h','i','n','e',0}

Definition at line 2772 of file wincrypt.h.

◆ CERT_PROT_ROOT_FLAGS_REGPATH

const WCHAR CERT_PROT_ROOT_FLAGS_REGPATH[]
static
Initial value:
=
{ '\\','R','o','o','t','\\','P','r','o','t','e','c','t','e','d','R','o','o',
't','s',0 }

Definition at line 2575 of file wincrypt.h.

◆ CERT_PROT_ROOT_FLAGS_VALUE_NAME

const WCHAR CERT_PROT_ROOT_FLAGS_VALUE_NAME[] = {'F','l','a','g','s',0 }
static

Definition at line 2578 of file wincrypt.h.

◆ CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME

const WCHAR CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME[]
static
Initial value:
=
{ 'A','u','t','h','e','n','t','i','c','o','d','e','F','l','a','g','s',0 }

Definition at line 2609 of file wincrypt.h.

◆ CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH

const WCHAR CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH[]
static
Initial value:
=
{'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',
'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',
't','i','f','i','c','a','t','e','s','\\','T','r','u','s','t','e','d',
'P','u','b','l','i','s','h','e','r','\\','S','a','f','e','r',0 }

Definition at line 2592 of file wincrypt.h.

◆ CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH

const WCHAR CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH[]
static
Initial value:
=
{'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
'S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s','\\',
'T','r','u','s','t','e','d','P','u','b','l','i','s','h','e','r','\\',
'S','a','f','e','r',0 }

Definition at line 2604 of file wincrypt.h.

◆ CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM

const WCHAR CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','P','a','r','a','m','e','t','e','r','s',0}
static

Definition at line 1608 of file wincrypt.h.

Referenced by test_findOIDInfo().

◆ CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM

const WCHAR CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','W','r','a','p','P','a','r','a','m','e','t','e','r','s',0}
static

Definition at line 1612 of file wincrypt.h.

◆ CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM

const WCHAR CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','H','a','s','h','P','a','r','a','m','e','t','e','r','s',0}
static

Definition at line 1607 of file wincrypt.h.

◆ CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM

const WCHAR CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','M','g','f','1','P','a','r','a','m','e','t','e','r','s',0}
static

Definition at line 1609 of file wincrypt.h.

◆ CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM

const WCHAR CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','N','o','P','a','r','a','m','e','t','e','r','s',0}
static

Definition at line 1613 of file wincrypt.h.

◆ CRYPT_OID_INFO_NO_SIGN_ALGORITHM

const WCHAR CRYPT_OID_INFO_NO_SIGN_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','N','o','S','i','g','n',0}
static

Definition at line 1610 of file wincrypt.h.

◆ CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM

const WCHAR CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','O','A','E','P','P','a','r','a','m','e','t','e','r','s',0}
static

Definition at line 1611 of file wincrypt.h.

◆ CRYPT_OID_REG_DLL_VALUE_NAME

const WCHAR CRYPT_OID_REG_DLL_VALUE_NAME[] = { 'D','l','l',0 }
static

Definition at line 2691 of file wincrypt.h.

◆ CRYPT_OID_REG_FLAGS_VALUE_NAME

const WCHAR CRYPT_OID_REG_FLAGS_VALUE_NAME[]
static
Initial value:
=
{ 'C','r','y','p','t','F','l','a','g','s',0 }

Definition at line 2694 of file wincrypt.h.

◆ CRYPT_OID_REG_FUNC_NAME_VALUE_NAME

const WCHAR CRYPT_OID_REG_FUNC_NAME_VALUE_NAME[]
static
Initial value:
=
{ 'F','u','n','c','N','a','m','e',0 }

Definition at line 2692 of file wincrypt.h.

◆ MS_DEF_DH_SCHANNEL_PROV_W

const WCHAR MS_DEF_DH_SCHANNEL_PROV_W[]
static
Initial value:
= { 'M','i','c','r','o','s','o','f','t',' ',
'D','H',' ','S','C','h','a','n','n','e','l',' ',
'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }

Definition at line 2201 of file wincrypt.h.

◆ MS_DEF_DSS_DH_PROV_W

const WCHAR MS_DEF_DSS_DH_PROV_W[]
static
Initial value:
= { 'M','i','c','r','o','s','o','f','t',' ',
'B','a','s','e',' ','D','S','S',' ','a','n','d',' ',
'D','i','f','f','i','e','-','H','e','l','l','m','a','n',' ',
'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }

Definition at line 2179 of file wincrypt.h.

◆ MS_DEF_DSS_PROV_W

const WCHAR MS_DEF_DSS_PROV_W[]
static
Initial value:
= { 'M','i','c','r','o','s','o','f','t',' ',
'B','a','s','e',' ','D','S','S',' ',
'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }

Definition at line 2169 of file wincrypt.h.

◆ MS_DEF_PROV_W

const WCHAR MS_DEF_PROV_W[]
static
Initial value:
= { 'M','i','c','r','o','s','o','f','t',' ',
'B','a','s','e',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ',
'P','r','o','v','i','d','e','r',' ','v','1','.','0',0 }

Definition at line 2119 of file wincrypt.h.

Referenced by CryptCATAdminCalcHashFromFileHandle(), CryptCATAdminEnumCatalogFromHash(), testAcquireCertPrivateKey(), testAcquireSecurityContext(), and testCreateSelfSignCert().

◆ MS_DEF_RSA_SCHANNEL_PROV_W

const WCHAR MS_DEF_RSA_SCHANNEL_PROV_W[]
static
Initial value:
= { 'M','i','c','r','o','s','o','f','t',' ',
'R','S','A',' ','S','C','h','a','n','n','e','l',' ',
'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }

Definition at line 2159 of file wincrypt.h.

◆ MS_DEF_RSA_SIG_PROV_W

const WCHAR MS_DEF_RSA_SIG_PROV_W[]
static
Initial value:
= { 'M','i','c','r','o','s','o','f','t',' ',
'R','S','A',' ','S','i','g','n','a','t','u','r','e',' ',
'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }

Definition at line 2149 of file wincrypt.h.

◆ MS_ENH_DSS_DH_PROV_W

const WCHAR MS_ENH_DSS_DH_PROV_W[]
static
Initial value:
= { 'M','i','c','r','o','s','o','f','t',' ',
'E','n','h','a','n','c','e','d',' ','D','S','S',' ','a','n','d',' ',
'D','i','f','f','i','e','-','H','e','l','l','m','a','n',' ',
'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }

Definition at line 2190 of file wincrypt.h.

◆ MS_ENH_RSA_AES_PROV_W

const WCHAR MS_ENH_RSA_AES_PROV_W[]
static
Initial value:
= { 'M','i','c','r','o','s','o','f','t',' ',
'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ',
'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }

Definition at line 2221 of file wincrypt.h.

Referenced by CRYPT_GetDefaultProvider(), and SOFTPUB_VerifyImageHash().

◆ MS_ENH_RSA_AES_PROV_XP_W

const WCHAR MS_ENH_RSA_AES_PROV_XP_W[]
static
Initial value:
= { 'M','i','c','r','o','s','o','f','t',' ',
'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ',
'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',' ',
'(','P','r','o','t','o','t','y','p','e',')',0 }

Definition at line 2231 of file wincrypt.h.

◆ MS_ENHANCED_PROV_W

const WCHAR MS_ENHANCED_PROV_W[]
static
Initial value:
= { 'M','i','c','r','o','s','o','f','t',' ',
'E','n','h','a','n','c','e','d',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ',
'P','r','o','v','i','d','e','r',' ','v','1','.','0',0 }

Definition at line 2129 of file wincrypt.h.

Referenced by CryptProtectData(), and CryptUnprotectData().

◆ MS_SCARD_PROV_W

const WCHAR MS_SCARD_PROV_W[]
static
Initial value:
= { 'M','i','c','r','o','s','o','f','t',' ',
'B','a','s','e',' ','S','m','a','r','t',' ','C','a','r','d',' ',
'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }

Definition at line 2211 of file wincrypt.h.

◆ MS_STRONG_PROV_W

const WCHAR MS_STRONG_PROV_W[]
static
Initial value:
= { 'M','i','c','r','o','s','o','f','t',' ',
'S','t','r','o','n','g',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ',
'P','r','o','v','i','d','e','r',0 }

Definition at line 2139 of file wincrypt.h.