ReactOS 0.4.17-dev-653-g1d6dae3
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 6640 of file wincrypt.h.

◆ CertGetNameString

#define CertGetNameString   WINELIB_NAME_AW(CertGetNameString)

Definition at line 6876 of file wincrypt.h.

◆ CertNameToStr

#define CertNameToStr   WINELIB_NAME_AW(CertNameToStr)

Definition at line 6888 of file wincrypt.h.

◆ CertOpenSystemStore

#define CertOpenSystemStore   WINELIB_NAME_AW(CertOpenSystemStore)

Definition at line 6493 of file wincrypt.h.

◆ CertRDNValueToStr

#define CertRDNValueToStr   WINELIB_NAME_AW(CertRDNValueToStr)

Definition at line 6882 of file wincrypt.h.

◆ CertStrToName

#define CertStrToName   WINELIB_NAME_AW(CertStrToName)

Definition at line 6896 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 6365 of file wincrypt.h.

◆ CryptBinaryToString

#define CryptBinaryToString   WINELIB_NAME_AW(CryptBinaryToString)

Definition at line 6423 of file wincrypt.h.

◆ CryptEnumProviders

#define CryptEnumProviders   WINELIB_NAME_AW(CryptEnumProviders)

Definition at line 6378 of file wincrypt.h.

◆ CryptEnumProviderTypes

#define CryptEnumProviderTypes   WINELIB_NAME_AW(CryptEnumProviderTypes)

Definition at line 6381 of file wincrypt.h.

◆ CryptGetDefaultProvider

#define CryptGetDefaultProvider   WINELIB_NAME_AW(CryptGetDefaultProvider)

Definition at line 6389 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 7056 of file wincrypt.h.

◆ CryptSetProvider

#define CryptSetProvider   WINELIB_NAME_AW(CryptSetProvider)

Definition at line 6399 of file wincrypt.h.

◆ CryptSetProviderEx

#define CryptSetProviderEx   WINELIB_NAME_AW(CryptSetProviderEx)

Definition at line 6402 of file wincrypt.h.

◆ CryptSignHash

#define CryptSignHash   WINELIB_NAME_AW(CryptSignHash)

Definition at line 6406 of file wincrypt.h.

◆ CryptStringToBinary

#define CryptStringToBinary   WINELIB_NAME_AW(CryptStringToBinary)

Definition at line 6431 of file wincrypt.h.

◆ CryptVerifySignature

#define CryptVerifySignature   WINELIB_NAME_AW(CryptVerifySignature)

Definition at line 6409 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

typedef unsigned int 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

Definition at line 59 of file wincrypt.h.

◆ HCRYPTKEY

static BYTE DWORD *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

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

◆ 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 284 of file cert.c.

286{
287 WINECRYPT_CERTSTORE *store = hCertStore;
288
289 TRACE("(%p, %p, %08lx, %p)\n", hCertStore, pCertContext, dwAddDisposition, ppStoreContext);
290
291 return add_cert_to_store(store, pCertContext, dwAddDisposition, FALSE, ppStoreContext);
292}
#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:169
#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(), PFXImportCertStore(), read_trusted_roots_from_known_locations(), save_cert_as_cms(), save_pfx(), testAddCert(), testCertRegisterSystemStore(), testDupCert(), testEmptyStore(), testGetIssuerCert(), testKeyProvInfo(), testRegStoreSavedCerts(), and testStoresInCollection().

◆ CertAddCertificateLinkToStore()

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

Definition at line 294 of file cert.c.

297{
298 static int calls;
299 WINECRYPT_CERTSTORE *store = (WINECRYPT_CERTSTORE*)hCertStore;
300
301 if (!(calls++))
302 FIXME("(%p, %p, %08lx, %p): semi-stub\n", hCertStore, pCertContext,
303 dwAddDisposition, ppCertContext);
305 return FALSE;
306 if (store->type == StoreTypeCollection)
307 {
309 return FALSE;
310 }
311 return add_cert_to_store(hCertStore, pCertContext, dwAddDisposition, TRUE, ppCertContext);
312}
#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 954 of file store.c.

957{
958 WINECRYPT_CERTSTORE *store = hCertStore;
959 BOOL ret = TRUE;
960 PCCRL_CONTEXT toAdd = NULL, existing = NULL;
961
962 TRACE("(%p, %p, %08lx, %p)\n", hCertStore, pCrlContext,
963 dwAddDisposition, ppStoreContext);
964
965 /* Weird case to pass a test */
966 if (dwAddDisposition == 0)
967 {
969 return FALSE;
970 }
971 if (dwAddDisposition != CERT_STORE_ADD_ALWAYS)
972 {
973 existing = CertFindCRLInStore(hCertStore, 0, 0, CRL_FIND_EXISTING,
974 pCrlContext, NULL);
975 }
976
977 switch (dwAddDisposition)
978 {
980 toAdd = CertDuplicateCRLContext(pCrlContext);
981 break;
983 if (existing)
984 {
985 TRACE("found matching CRL, not adding\n");
987 ret = FALSE;
988 }
989 else
990 toAdd = CertDuplicateCRLContext(pCrlContext);
991 break;
993 if (existing)
994 {
995 LONG newer = CompareFileTime(&existing->pCrlInfo->ThisUpdate,
996 &pCrlContext->pCrlInfo->ThisUpdate);
997
998 if (newer < 0)
999 toAdd = CertDuplicateCRLContext(pCrlContext);
1000 else
1001 {
1002 TRACE("existing CRL is newer, not adding\n");
1004 ret = FALSE;
1005 }
1006 }
1007 else
1008 toAdd = CertDuplicateCRLContext(pCrlContext);
1009 break;
1011 if (existing)
1012 {
1013 LONG newer = CompareFileTime(&existing->pCrlInfo->ThisUpdate,
1014 &pCrlContext->pCrlInfo->ThisUpdate);
1015
1016 if (newer < 0)
1017 {
1018 toAdd = CertDuplicateCRLContext(pCrlContext);
1019 Context_CopyProperties(toAdd, existing);
1020 }
1021 else
1022 {
1023 TRACE("existing CRL is newer, not adding\n");
1025 ret = FALSE;
1026 }
1027 }
1028 else
1029 toAdd = CertDuplicateCRLContext(pCrlContext);
1030 break;
1032 toAdd = CertDuplicateCRLContext(pCrlContext);
1033 break;
1035 toAdd = CertDuplicateCRLContext(pCrlContext);
1036 if (existing)
1037 Context_CopyProperties(toAdd, existing);
1038 break;
1040 if (existing)
1041 {
1042 Context_CopyProperties(existing, pCrlContext);
1043 if (ppStoreContext)
1044 *ppStoreContext = CertDuplicateCRLContext(existing);
1045 }
1046 else
1047 toAdd = CertDuplicateCRLContext(pCrlContext);
1048 break;
1049 default:
1050 FIXME("Unimplemented add disposition %ld\n", dwAddDisposition);
1051 ret = FALSE;
1052 }
1053
1054 if (toAdd)
1055 {
1056 if (store) {
1057 context_t *ret_context;
1058 ret = store->vtbl->crls.addContext(store, context_from_ptr(toAdd),
1059 existing ? context_from_ptr(existing) : NULL, ppStoreContext ? &ret_context : NULL, FALSE);
1060 if (ret && ppStoreContext)
1061 *ppStoreContext = context_ptr(ret_context);
1062 }else if (ppStoreContext) {
1063 *ppStoreContext = CertDuplicateCRLContext(toAdd);
1064 }
1065 CertFreeCRLContext(toAdd);
1066 }
1067 if (existing)
1068 CertFreeCRLContext(existing);
1069
1070 TRACE("returning %d\n", ret);
1071 return ret;
1072}
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:480
PCCRL_CONTEXT WINAPI CertDuplicateCRLContext(PCCRL_CONTEXT pCrlContext)
Definition: crl.c:472
PCCRL_CONTEXT WINAPI CertFindCRLInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFindFlags, DWORD dwFindType, const void *pvFindPara, PCCRL_CONTEXT pPrevCrlContext)
Definition: crl.c:381
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
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:4422

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, %08lx, %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 %ld\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 56 of file cert.c.

59{
61 pbCertEncoded, cbCertEncoded);
62 BOOL ret;
63
64 TRACE("(%p, %08lx, %p, %ld, %08lx, %p)\n", hCertStore, dwCertEncodingType,
65 pbCertEncoded, cbCertEncoded, dwAddDisposition, ppCertContext);
66
67 if (cert)
68 {
70 dwAddDisposition, ppCertContext);
72 }
73 else
74 ret = FALSE;
75 return ret;
76}
BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, PCCERT_CONTEXT *ppStoreContext)
Definition: cert.c:284
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:369
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:314
static BYTE cert[]
Definition: msg.c:1374

Referenced by add_ms_root_certs(), CertAddEncodedCertificateToSystemStoreA(), CertAddEncodedCertificateToSystemStoreW(), check_ssl_policy(), CRYPT_MsgOpenStore(), getChain(), 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 78 of file cert.c.

80{
81 HCERTSTORE store;
82 BOOL ret = FALSE;
83
84 TRACE("(%s, %p, %ld)\n", debugstr_a(pszCertStoreName), pbCertEncoded,
85 cbCertEncoded);
86
87 store = CertOpenSystemStoreA(0, pszCertStoreName);
88 if (store)
89 {
91 pbCertEncoded, cbCertEncoded, CERT_STORE_ADD_USE_EXISTING, NULL);
92 CertCloseStore(store, 0);
93 }
94 return ret;
95}
BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext)
Definition: cert.c:56
HCERTSTORE WINAPI CertOpenSystemStoreA(HCRYPTPROV_LEGACY hProv, LPCSTR szSubSystemProtocol)
Definition: store.c:898
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
Definition: store.c:1121
#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 97 of file cert.c.

99{
100 HCERTSTORE store;
101 BOOL ret = FALSE;
102
103 TRACE("(%s, %p, %ld)\n", debugstr_w(pszCertStoreName), pbCertEncoded,
104 cbCertEncoded);
105
106 store = CertOpenSystemStoreW(0, pszCertStoreName);
107 if (store)
108 {
110 pbCertEncoded, cbCertEncoded, CERT_STORE_ADD_USE_EXISTING, NULL);
111 CertCloseStore(store, 0);
112 }
113 return ret;
114}
HCERTSTORE WINAPI CertOpenSystemStoreW(HCRYPTPROV_LEGACY hProv, LPCWSTR szSubSystemProtocol)
Definition: store.c:910
#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 223 of file crl.c.

226{
227 PCCRL_CONTEXT crl = CertCreateCRLContext(dwCertEncodingType,
228 pbCrlEncoded, cbCrlEncoded);
229 BOOL ret;
230
231 TRACE("(%p, %08lx, %p, %ld, %08lx, %p)\n", hCertStore, dwCertEncodingType,
232 pbCrlEncoded, cbCrlEncoded, dwAddDisposition, ppCrlContext);
233
234 if (crl)
235 {
236 ret = CertAddCRLContextToStore(hCertStore, crl, dwAddDisposition,
237 ppCrlContext);
239 }
240 else
241 ret = FALSE;
242 return ret;
243}
PCCRL_CONTEXT WINAPI CertCreateCRLContext(DWORD dwCertEncodingType, const BYTE *pbCrlEncoded, DWORD cbCrlEncoded)
Definition: crl.c:179
BOOL WINAPI CertAddCRLContextToStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, PCCRL_CONTEXT *ppStoreContext)
Definition: store.c:954
static const BYTE crl[]
Definition: message.c:817

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, %08lx, %p, %ld, %08lx, %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 3175 of file cert.c.

3177{
3178 BOOL ret;
3179 DWORD size;
3180
3181 TRACE("(%p, %s)\n", pCertContext, debugstr_a(pszUsageIdentifier));
3182
3183 if (CertGetEnhancedKeyUsage(pCertContext,
3185 {
3187
3188 if (usage)
3189 {
3190 ret = CertGetEnhancedKeyUsage(pCertContext,
3192 if (ret)
3193 {
3194 DWORD i;
3195 BOOL exists = FALSE;
3196
3197 /* Make sure usage doesn't already exist */
3198 for (i = 0; !exists && i < usage->cUsageIdentifier; i++)
3199 {
3200 if (!strcmp(usage->rgpszUsageIdentifier[i],
3201 pszUsageIdentifier))
3202 exists = TRUE;
3203 }
3204 if (!exists)
3205 {
3207 sizeof(LPSTR) + strlen(pszUsageIdentifier) + 1);
3208
3209 if (newUsage)
3210 {
3211 LPSTR nextOID;
3212
3213 newUsage->rgpszUsageIdentifier = (LPSTR *)
3214 ((LPBYTE)newUsage + sizeof(CERT_ENHKEY_USAGE));
3215 nextOID = (LPSTR)((LPBYTE)newUsage->rgpszUsageIdentifier
3216 + (usage->cUsageIdentifier + 1) * sizeof(LPSTR));
3217 for (i = 0; i < usage->cUsageIdentifier; i++)
3218 {
3219 newUsage->rgpszUsageIdentifier[i] = nextOID;
3220 strcpy(nextOID, usage->rgpszUsageIdentifier[i]);
3221 nextOID += strlen(nextOID) + 1;
3222 }
3223 newUsage->rgpszUsageIdentifier[i] = nextOID;
3224 strcpy(nextOID, pszUsageIdentifier);
3225 newUsage->cUsageIdentifier = i + 1;
3226 ret = CertSetEnhancedKeyUsage(pCertContext, newUsage);
3227 CryptMemFree(newUsage);
3228 }
3229 else
3230 ret = FALSE;
3231 }
3232 }
3234 }
3235 else
3236 ret = FALSE;
3237 }
3238 else
3239 {
3241 sizeof(LPSTR) + strlen(pszUsageIdentifier) + 1);
3242
3243 if (usage)
3244 {
3245 usage->rgpszUsageIdentifier =
3246 (LPSTR *)((LPBYTE)usage + sizeof(CERT_ENHKEY_USAGE));
3247 usage->rgpszUsageIdentifier[0] = (LPSTR)((LPBYTE)usage +
3248 sizeof(CERT_ENHKEY_USAGE) + sizeof(LPSTR));
3249 strcpy(usage->rgpszUsageIdentifier[0], pszUsageIdentifier);
3250 usage->cUsageIdentifier = 1;
3251 ret = CertSetEnhancedKeyUsage(pCertContext, usage);
3253 }
3254 else
3255 ret = FALSE;
3256 }
3257 return ret;
3258}
BOOL WINAPI CertSetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, PCERT_ENHKEY_USAGE pUsage)
Definition: cert.c:3149
BOOL WINAPI CertGetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, DWORD dwFlags, PCERT_ENHKEY_USAGE pUsage, DWORD *pcbUsage)
Definition: cert.c:3044
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
Definition: main.c:136
VOID WINAPI CryptMemFree(LPVOID pv)
Definition: main.c:146
_ACRTIMP size_t __cdecl strlen(const char *)
Definition: string.c:1597
_ACRTIMP int __cdecl strcmp(const char *, const char *)
Definition: string.c:3324
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
char * LPSTR
Definition: typedefs.h:51
struct _CTL_USAGE CERT_ENHKEY_USAGE
#define CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG
Definition: wincrypt.h:3065

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 1140 of file serialize.c.

1143{
1144 const void *context;
1145 DWORD type;
1146 BOOL ret;
1147
1148 TRACE("(%p, %p, %ld, %08lx, %08lx, %08lx, %p, %p)\n", hCertStore,
1149 pbElement, cbElement, dwAddDisposition, dwFlags, dwContextTypeFlags,
1150 pdwContentType, ppvContext);
1151
1152 /* Call the internal function, then delete the hashes. Tests show this
1153 * function uses real hash values, not whatever's stored in the hash
1154 * property.
1155 */
1156 context = CRYPT_ReadSerializedElement(pbElement, cbElement,
1157 dwContextTypeFlags, &type);
1158 if (context)
1159 {
1160 const WINE_CONTEXT_INTERFACE *contextInterface = NULL;
1161
1162 switch (type)
1163 {
1165 contextInterface = pCertInterface;
1166 break;
1168 contextInterface = pCRLInterface;
1169 break;
1171 contextInterface = pCTLInterface;
1172 break;
1173 default:
1175 }
1176 if (contextInterface)
1177 {
1178 contextInterface->setProp(context, CERT_HASH_PROP_ID, 0, NULL);
1179 contextInterface->setProp(context, CERT_MD5_HASH_PROP_ID, 0, NULL);
1180 contextInterface->setProp(context, CERT_SIGNATURE_HASH_PROP_ID, 0,
1181 NULL);
1182 if (pdwContentType)
1183 *pdwContentType = type;
1184 ret = contextInterface->addContextToStore(hCertStore, context,
1185 dwAddDisposition, ppvContext);
1187 }
1188 else
1189 ret = FALSE;
1190 }
1191 else
1192 ret = FALSE;
1193 return ret;
1194}
const WINE_CONTEXT_INTERFACE * pCTLInterface
Definition: store.c:77
const WINE_CONTEXT_INTERFACE * pCertInterface
Definition: store.c:51
const WINE_CONTEXT_INTERFACE * pCRLInterface
Definition: store.c:64
void Context_Release(context_t *context)
Definition: context.c:106
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
const void * CRYPT_ReadSerializedElement(const BYTE *pbElement, DWORD cbElement, DWORD dwContextTypeFlags, DWORD *pdwContentType)
Definition: serialize.c:482
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, %08lx, %ld)\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 %ld\n", sibling, sibling->ref);
523 entry->store = sibling;
524 entry->dwUpdateFlags = dwUpdateFlags;
525 entry->dwPriority = dwPriority;
526 TRACE("%p: adding %p, priority %ld\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:201
#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 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 1803 of file oid.c.

1804{
1805 LPCSTR ret;
1807 &dwAlgId, 0);
1808
1809 if (info)
1810 ret = info->pszOID;
1811 else
1812 ret = NULL;
1813 return ret;
1814}
PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey, DWORD dwGroupId)
Definition: oid.c:1714
const char * LPCSTR
Definition: typedefs.h:52
#define CRYPT_OID_INFO_ALGID_KEY
Definition: wincrypt.h:1957

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

◆ CertCloseStore()

WINCRYPT32API BOOL WINAPI CertCloseStore ( HCERTSTORE  hCertStore,
DWORD  dwFlags 
)

Definition at line 1121 of file store.c.

1122{
1123 WINECRYPT_CERTSTORE *hcs = hCertStore;
1124 DWORD res;
1125
1126 TRACE("(%p, %08lx)\n", hCertStore, dwFlags);
1127
1128 if( ! hCertStore )
1129 return TRUE;
1130
1131 if ( hcs->dwMagic != WINE_CRYPTCERTSTORE_MAGIC )
1132 return FALSE;
1133
1134 res = hcs->vtbl->release(hcs, dwFlags);
1135 if (res != ERROR_SUCCESS) {
1137 return FALSE;
1138 }
1139
1140 return TRUE;
1141}
#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(), CryptAcquireCertificatePrivateKey(), CRYPTDLG_IsCertAllowed(), CRYPTDLG_MakeEngine(), CryptMsgGetAndVerifySigner(), CryptVerifyDetachedMessageSignature(), CryptVerifyMessageSignature(), free_chain_engine(), getChain(), import_cert(), import_crl(), import_ctl(), import_file(), PFXImportCertStore(), 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_client_cert_authentication(), test_crypt_ui_wiz_import(), test_I_UpdateStore(), test_msg_get_and_verify_signer(), test_PFXImportCertStore(), test_retrieveObjectByUrl(), test_utils(), test_verify_ecc_signature(), test_verifyRevocation(), testAddCert(), testAddCertificateLink(), testAddCRL(), testAddCTLToStore(), testAddSerialized(), testCertOpenSystemStore(), testCertRegisterSystemStore(), testCloseStore(), testCollectionStore(), testCreateCertChainEngine(), testDupCert(), testEmptyStore(), testFileNameStore(), testFileStore(), testFindCert(), testFindCRL(), testGetCertChain(), testGetCRLFromStore(), testGetIssuerCert(), testGetSubjectCert(), testIsValidCRLForCert(), testKeyProvInfo(), testLinkCert(), testMemStore(), testMessageStore(), testRegStore(), testRegStoreSavedCerts(), testSerializedStore(), testStoreProperty(), testStoresInCollection(), testSystemRegStore(), testSystemStore(), testVerifyRevocation(), WINTRUST_CreateChainForSigner(), and CStore::~CStore().

◆ CertCompareCertificate()

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

Definition at line 1236 of file cert.c.

1238{
1239 BOOL ret;
1240
1241 TRACE("(%08lx, %p, %p)\n", dwCertEncodingType, pCertId1, pCertId2);
1242
1243 ret = CertCompareCertificateName(dwCertEncodingType, &pCertId1->Issuer,
1244 &pCertId2->Issuer) && CertCompareIntegerBlob(&pCertId1->SerialNumber,
1245 &pCertId2->SerialNumber);
1246 TRACE("returning %d\n", ret);
1247 return ret;
1248}
BOOL WINAPI CertCompareCertificateName(DWORD dwCertEncodingType, PCERT_NAME_BLOB pCertName1, PCERT_NAME_BLOB pCertName2)
Definition: cert.c:1250
BOOL WINAPI CertCompareIntegerBlob(PCRYPT_INTEGER_BLOB pInt1, PCRYPT_INTEGER_BLOB pInt2)
Definition: cert.c:1291
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 1250 of file cert.c.

1252{
1253 BOOL ret;
1254
1255 TRACE("(%08lx, %p, %p)\n", dwCertEncodingType, pCertName1, pCertName2);
1256
1257 if (pCertName1->cbData == pCertName2->cbData)
1258 {
1259 if (pCertName1->cbData)
1260 ret = !memcmp(pCertName1->pbData, pCertName2->pbData,
1261 pCertName1->cbData);
1262 else
1263 ret = TRUE;
1264 }
1265 else
1266 ret = FALSE;
1267 TRACE("returning %d\n", ret);
1268 return ret;
1269}
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
Definition: string.c:2807
BYTE * pbData
Definition: wincrypt.h:112

Referenced by CDecodeSignedMsg_VerifySignature(), CertCompareCertificate(), compare_cert_by_cert_id(), 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 1291 of file cert.c.

1293{
1294 BOOL ret;
1295 DWORD cb1, cb2;
1296
1297 TRACE("(%p, %p)\n", pInt1, pInt2);
1298
1299 cb1 = CRYPT_significantBytes(pInt1);
1300 cb2 = CRYPT_significantBytes(pInt2);
1301 if (cb1 == cb2)
1302 {
1303 if (cb1)
1304 ret = !memcmp(pInt1->pbData, pInt2->pbData, cb1);
1305 else
1306 ret = TRUE;
1307 }
1308 else
1309 ret = FALSE;
1310 TRACE("returning %d\n", ret);
1311 return ret;
1312}
static DWORD CRYPT_significantBytes(const CRYPT_INTEGER_BLOB *pInt)
Definition: cert.c:1275

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 1314 of file cert.c.

1316{
1317 BOOL ret;
1318
1319 TRACE("(%08lx, %p, %p)\n", dwCertEncodingType, pPublicKey1, pPublicKey2);
1320
1321 /* RSA public key data should start with ASN_SEQUENCE,
1322 * otherwise it's not a RSA_CSP_PUBLICKEYBLOB.
1323 */
1324 if (!pPublicKey1->PublicKey.cbData || pPublicKey1->PublicKey.pbData[0] != ASN_SEQUENCE)
1325 dwCertEncodingType = 0;
1326
1327 switch (GET_CERT_ENCODING_TYPE(dwCertEncodingType))
1328 {
1329 case 0: /* Seems to mean "raw binary bits" */
1330 if (pPublicKey1->PublicKey.cbData == pPublicKey2->PublicKey.cbData &&
1331 pPublicKey1->PublicKey.cUnusedBits == pPublicKey2->PublicKey.cUnusedBits)
1332 {
1333 if (pPublicKey2->PublicKey.cbData)
1334 ret = !memcmp(pPublicKey1->PublicKey.pbData,
1335 pPublicKey2->PublicKey.pbData, pPublicKey1->PublicKey.cbData);
1336 else
1337 ret = TRUE;
1338 }
1339 else
1340 ret = FALSE;
1341 break;
1342 default:
1343 WARN("Unknown encoding type %08lx\n", dwCertEncodingType);
1344 /* FALLTHROUGH */
1345 case X509_ASN_ENCODING:
1346 {
1347 BLOBHEADER *pblob1, *pblob2;
1348 DWORD length;
1349 ret = FALSE;
1350 if (CryptDecodeObject(dwCertEncodingType, RSA_CSP_PUBLICKEYBLOB,
1351 pPublicKey1->PublicKey.pbData, pPublicKey1->PublicKey.cbData,
1352 CRYPT_DECODE_ALLOC_FLAG, &pblob1, &length))
1353 {
1354 if (CryptDecodeObject(dwCertEncodingType, RSA_CSP_PUBLICKEYBLOB,
1355 pPublicKey2->PublicKey.pbData, pPublicKey2->PublicKey.cbData,
1356 CRYPT_DECODE_ALLOC_FLAG, &pblob2, &length))
1357 {
1358 /* The RSAPUBKEY structure directly follows the BLOBHEADER */
1359 RSAPUBKEY *pk1 = (LPVOID)(pblob1 + 1),
1360 *pk2 = (LPVOID)(pblob2 + 1);
1361 ret = (pk1->bitlen == pk2->bitlen) && (pk1->pubexp == pk2->pubexp)
1362 && !memcmp(pk1 + 1, pk2 + 1, pk1->bitlen/8);
1363
1364 LocalFree(pblob2);
1365 }
1366 LocalFree(pblob1);
1367 }
1368
1369 break;
1370 }
1371 }
1372 return ret;
1373}
#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:6990
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 1143 of file store.c.

1145{
1146 WINECRYPT_CERTSTORE *hcs = hCertStore;
1147 BOOL ret;
1148
1149 TRACE("(%p, %08lx, %ld, %p)\n", hCertStore, dwFlags, dwCtrlType,
1150 pvCtrlPara);
1151
1152 if (!hcs)
1153 ret = FALSE;
1154 else if (hcs->dwMagic != WINE_CRYPTCERTSTORE_MAGIC)
1155 ret = FALSE;
1156 else
1157 {
1158 if (hcs->vtbl->control)
1159 ret = hcs->vtbl->control(hcs, dwFlags, dwCtrlType, pvCtrlPara);
1160 else
1161 ret = TRUE;
1162 }
1163 return ret;
1164}
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 221 of file chain.c.

223{
224 BOOL ret;
225
226 TRACE("(%p, %p)\n", pConfig, phChainEngine);
227
229 && pConfig->cbSize != sizeof(CERT_CHAIN_ENGINE_CONFIG))
230 {
232 return FALSE;
233 }
235 if (!ret)
236 {
237 *phChainEngine = NULL;
238 return FALSE;
239 }
240
242 return *phChainEngine != NULL;
243}
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 check_ssl_policy(), CRYPTDLG_MakeEngine(), save_pfx(), and testCreateCertChainEngine().

◆ CertCreateCertificateContext()

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

Definition at line 314 of file cert.c.

316{
317 cert_t *cert = NULL;
318 BYTE *data = NULL;
319 BOOL ret;
320 PCERT_INFO certInfo = NULL;
321 DWORD size = 0;
322
323 TRACE("(%08lx, %p, %ld)\n", dwCertEncodingType, pbCertEncoded,
324 cbCertEncoded);
325
326 if ((dwCertEncodingType & CERT_ENCODING_TYPE_MASK) != X509_ASN_ENCODING)
327 {
329 return NULL;
330 }
331
332 ret = CryptDecodeObjectEx(dwCertEncodingType, X509_CERT_TO_BE_SIGNED,
333 pbCertEncoded, cbCertEncoded, CRYPT_DECODE_ALLOC_FLAG, NULL,
334 &certInfo, &size);
335 if (!ret)
336 return NULL;
337
339 if (!cert)
340 return NULL;
341 data = CryptMemAlloc(cbCertEncoded);
342 if (!data)
343 {
344 Context_Release(&cert->base);
345 return NULL;
346 }
347
348 memcpy(data, pbCertEncoded, cbCertEncoded);
349 cert->ctx.dwCertEncodingType = dwCertEncodingType;
350 cert->ctx.pbCertEncoded = data;
351 cert->ctx.cbCertEncoded = cbCertEncoded;
352 cert->ctx.pCertInfo = certInfo;
353 cert->ctx.hCertStore = &empty_store;
354
355 return &cert->ctx;
356}
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:6998
WINECRYPT_CERTSTORE empty_store
Definition: store.c:1503
static const context_vtbl_t cert_vtbl
Definition: cert.c:116
context_t * Context_CreateDataContext(size_t contextSize, const context_vtbl_t *vtbl, WINECRYPT_CERTSTORE *store)
Definition: context.c:28
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_CertGetNameString(), 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(), test_VerifySignature(), testAcquireCertPrivateKey(), testAcquireSecurityContext(), testAddCert(), testAddCertificateLink(), testCertProperties(), testCertRegisterSystemStore(), testCertSigs(), testCertTrust(), testCreateCert(), testDupCert(), testEmptyStore(), testFindCertInCRL(), testFindCRL(), testGetCertChain(), testGetCRLFromStore(), testGetValidUsages(), testImportPublicKey(), testIsValidCRLForCert(), testKeyProvInfo(), testKeyUsage(), testLinkCert(), testObjTrust(), testRegStoreSavedCerts(), testStoresInCollection(), testVerifyCertChainPolicy(), testVerifyCRLRevocation(), testVerifyRevocation(), testVerifySubjectCert(), and verify_and_copy_certificate().

◆ 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 3876 of file cert.c.

3879{
3880 TRACE("(0x%lx, 0x%lx, %p, %ld, 0x%08lx, %p)\n", dwContextType, dwEncodingType,
3881 pbEncoded, cbEncoded, dwFlags, pCreatePara);
3882
3883 if (dwFlags)
3884 {
3885 FIXME("dwFlags 0x%08lx not handled\n", dwFlags);
3886 return NULL;
3887 }
3888 if (pCreatePara)
3889 {
3890 FIXME("pCreatePara not handled\n");
3891 return NULL;
3892 }
3893
3894 switch (dwContextType)
3895 {
3897 return CertCreateCertificateContext(dwEncodingType, pbEncoded, cbEncoded);
3899 return CertCreateCRLContext(dwEncodingType, pbEncoded, cbEncoded);
3901 return CertCreateCTLContext(dwEncodingType, pbEncoded, cbEncoded);
3902 default:
3903 WARN("unknown context type: 0x%lx\n", dwContextType);
3904 return NULL;
3905 }
3906}

Referenced by PFXImportCertStore().

◆ CertCreateCRLContext()

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

Definition at line 179 of file crl.c.

181{
182 crl_t *crl = NULL;
183 BOOL ret;
184 PCRL_INFO crlInfo = NULL;
185 BYTE *data = NULL;
186 DWORD size = 0;
187
188 TRACE("(%08lx, %p, %ld)\n", dwCertEncodingType, pbCrlEncoded,
189 cbCrlEncoded);
190
191 if ((dwCertEncodingType & CERT_ENCODING_TYPE_MASK) != X509_ASN_ENCODING)
192 {
194 return NULL;
195 }
197 pbCrlEncoded, cbCrlEncoded, CRYPT_DECODE_ALLOC_FLAG, NULL,
198 &crlInfo, &size);
199 if (!ret)
200 return NULL;
201
203 if (!crl)
204 return NULL;
205
206 data = CryptMemAlloc(cbCrlEncoded);
207 if (!data)
208 {
209 Context_Release(&crl->base);
210 return NULL;
211 }
212
213 memcpy(data, pbCrlEncoded, cbCrlEncoded);
214 crl->ctx.dwCertEncodingType = dwCertEncodingType;
215 crl->ctx.pbCrlEncoded = data;
216 crl->ctx.cbCrlEncoded = cbCrlEncoded;
217 crl->ctx.pCrlInfo = crlInfo;
218 crl->ctx.hCertStore = &empty_store;
219
220 return &crl->ctx;
221}
static const context_vtbl_t crl_vtbl
Definition: crl.c:39
#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("(%08lx, %p, %ld)\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:3634
BOOL WINAPI CryptMsgGetParam(HCRYPTMSG hCryptMsg, DWORD dwParamType, DWORD dwIndex, void *pvData, DWORD *pcbData)
Definition: msg.c:3708
BOOL WINAPI CryptMsgUpdate(HCRYPTMSG hCryptMsg, const BYTE *pbData, DWORD cbData, BOOL fFinal)
Definition: msg.c:3698
BOOL WINAPI CryptMsgClose(HCRYPTMSG hCryptMsg)
Definition: msg.c:3679
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:238

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 3749 of file cert.c.

3754{
3756 BOOL ret, releaseContext = FALSE;
3758 DWORD pubKeySize = 0, dwKeySpec;
3759
3760 TRACE("(%08Ix, %p, %08lx, %p, %p, %p, %p, %p)\n", hProv,
3761 pSubjectIssuerBlob, dwFlags, pKeyProvInfo, pSignatureAlgorithm, pStartTime,
3762 pExtensions, pExtensions);
3763
3764 if(!pSubjectIssuerBlob)
3765 {
3767 return NULL;
3768 }
3769
3770 dwKeySpec = pKeyProvInfo ? pKeyProvInfo->dwKeySpec : AT_SIGNATURE;
3771 if (!hProv)
3772 {
3773 if (!pKeyProvInfo)
3774 {
3776 releaseContext = TRUE;
3777 }
3778 else if (pKeyProvInfo->dwFlags & CERT_SET_KEY_PROV_HANDLE_PROP_ID)
3779 {
3781 return NULL;
3782 }
3783 else
3784 {
3785 HCRYPTKEY hKey = 0;
3786 /* acquire the context using the given information*/
3788 pKeyProvInfo->pwszProvName,pKeyProvInfo->dwProvType,
3789 pKeyProvInfo->dwFlags);
3790 if (!ret)
3791 {
3793 return NULL;
3794 /* create the key set */
3796 pKeyProvInfo->pwszProvName,pKeyProvInfo->dwProvType,
3797 pKeyProvInfo->dwFlags|CRYPT_NEWKEYSET);
3798 if (!ret)
3799 return NULL;
3800 }
3801 /* check if the key is here */
3802 ret = CryptGetUserKey(hProv,dwKeySpec,&hKey);
3803 if(!ret)
3804 {
3805 if (NTE_NO_KEY == GetLastError())
3806 { /* generate the key */
3807 ret = CryptGenKey(hProv,dwKeySpec,0,&hKey);
3808 }
3809 if (!ret)
3810 {
3813 return NULL;
3814 }
3815 }
3817 releaseContext = TRUE;
3818 }
3819 }
3820
3822 &pubKeySize);
3823 if (!ret)
3824 goto end;
3825 pubKey = CryptMemAlloc(pubKeySize);
3826 if (pubKey)
3827 {
3829 pubKey, &pubKeySize);
3830 if (ret)
3831 {
3832 CERT_INFO info = { 0 };
3833 CRYPT_DER_BLOB blob = { 0, NULL };
3834 BYTE serial[16];
3835 CRYPT_DATA_BLOB serialBlob = { sizeof(serial), serial };
3836
3837 CryptGenRandom(hProv, sizeof(serial), serial);
3838 CRYPT_MakeCertInfo(&info, &serialBlob, pSubjectIssuerBlob,
3839 pSignatureAlgorithm, pStartTime, pEndTime, pubKey, pExtensions);
3842 &blob.cbData);
3843 if (ret)
3844 {
3847 &info.SignatureAlgorithm);
3848 else
3850 blob.pbData, blob.cbData);
3853 LocalFree(blob.pbData);
3854 }
3855 }
3857 }
3858end:
3859 if (releaseContext)
3861 return context;
3862}
BOOL WINAPI CryptGenRandom(HCRYPTPROV hProv, DWORD dwLen, BYTE *pbBuffer)
Definition: crypt.c:684
BOOL WINAPI CryptDestroyKey(HCRYPTKEY hKey)
Definition: crypt.c:911
BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags)
Definition: crypt.c:641
BOOL WINAPI CryptGenKey(HCRYPTPROV hProv, ALG_ID Algid, DWORD dwFlags, HCRYPTKEY *phKey)
Definition: crypt.c:1423
BOOL WINAPI CryptGetUserKey(HCRYPTPROV hProv, DWORD dwKeySpec, HCRYPTKEY *phUserKey)
Definition: crypt.c:1694
BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR pszContainer, LPCWSTR pszProvider, DWORD dwProvType, DWORD dwFlags)
Definition: crypt.c:362
static HCRYPTPROV CRYPT_CreateKeyProv(void)
Definition: cert.c:3703
static void CertContext_SetKeyProvInfo(PCCERT_CONTEXT context, const CRYPT_KEY_PROV_INFO *pInfo, HCRYPTPROV hProv)
Definition: cert.c:3501
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:3639
static PCCERT_CONTEXT CRYPT_CreateSignedCert(const CRYPT_DER_BLOB *blob, HCRYPTPROV hProv, DWORD dwKeySpec, PCRYPT_ALGORITHM_IDENTIFIER sigAlgo)
Definition: cert.c:3585
BOOL WINAPI CryptEncodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, const void *pvStructInfo, DWORD dwFlags, PCRYPT_ENCODE_PARA pEncodePara, void *pvEncoded, DWORD *pcbEncoded)
Definition: encode.c:4950
BOOL WINAPI CryptExportPublicKeyInfo(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv, DWORD dwKeySpec, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo)
Definition: encode.c:5015
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
uint32_t serial
Definition: fsck.fat.h:29
FxAutoRegKey hKey
static BYTE pubKey[]
Definition: msg.c:1147
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
ULONG_PTR HCRYPTKEY
Definition: wincrypt.h:58
#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
#define NTE_NO_KEY
Definition: winerror.h:4260
#define NTE_BAD_KEYSET
Definition: winerror.h:4269
#define NTE_BAD_FLAGS
Definition: winerror.h:4256

Referenced by testCreateSelfSignCert(), and testGetIssuerCert().

◆ CertDeleteCertificateFromStore()

WINCRYPT32API BOOL WINAPI CertDeleteCertificateFromStore ( PCCERT_CONTEXT  pCertContext)

Definition at line 937 of file store.c.

938{
940
941 TRACE("(%p)\n", pCertContext);
942
943 if (!pCertContext)
944 return TRUE;
945
946 hcs = pCertContext->hCertStore;
947
949 return FALSE;
950
951 return hcs->vtbl->certs.delete(hcs, &cert_from_ptr(pCertContext)->base);
952}
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 add_ms_root_certs(), cert_mgr_do_remove(), Collection_deleteCert(), find_and_delete_cert_in_store(), test_I_UpdateStore(), testAddCert(), testAddCertificateLink(), testAddSerialized(), testCertRegisterSystemStore(), testCollectionStore(), testEmptyStore(), testKeyProvInfo(), testMemStore(), testRegStore(), and testRegStoreSavedCerts().

◆ CertDeleteCRLFromStore()

WINCRYPT32API BOOL WINAPI CertDeleteCRLFromStore ( PCCRL_CONTEXT  pCrlContext)

Definition at line 1074 of file store.c.

1075{
1077 BOOL ret;
1078
1079 TRACE("(%p)\n", pCrlContext);
1080
1081 if (!pCrlContext)
1082 return TRUE;
1083
1084 hcs = pCrlContext->hCertStore;
1085
1087 return FALSE;
1088
1089 ret = hcs->vtbl->crls.delete(hcs, &crl_from_ptr(pCrlContext)->base);
1090 if (ret)
1091 ret = CertFreeCRLContext(pCrlContext);
1092 return ret;
1093}
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 2944 of file chain.c.

2946{
2947 CertificateChain *chain = (CertificateChain*)pChainContext;
2948
2949 TRACE("(%p)\n", pChainContext);
2950
2951 if (chain)
2953 return pChainContext;
2954}
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 472 of file crl.c.

473{
474 TRACE("(%p)\n", pCrlContext);
475 if (pCrlContext)
476 Context_AddRef(&crl_from_ptr(pCrlContext)->base);
477 return pCrlContext;
478}

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 1110 of file store.c.

1111{
1112 WINECRYPT_CERTSTORE *hcs = hCertStore;
1113
1114 TRACE("(%p)\n", hCertStore);
1115
1116 if (hcs && hcs->dwMagic == WINE_CRYPTCERTSTORE_MAGIC)
1117 hcs->vtbl->addref(hcs);
1118 return hCertStore;
1119}
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 378 of file cert.c.

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

Referenced by testCertProperties().

◆ CertEnumCertificatesInStore()

◆ CertEnumCRLContextProperties()

WINCRYPT32API DWORD WINAPI CertEnumCRLContextProperties ( PCCRL_CONTEXT  pCRLContext,
DWORD  dwPropId 
)

Definition at line 489 of file crl.c.

491{
492 TRACE("(%p, %ld)\n", pCRLContext, dwPropId);
493
494 return ContextPropertyList_EnumPropIDs(crl_from_ptr(pCRLContext)->base.properties, dwPropId);
495}

Referenced by testCRLProperties().

◆ CertEnumCRLsInStore()

WINCRYPT32API PCCRL_CONTEXT WINAPI CertEnumCRLsInStore ( HCERTSTORE  hCertStore,
PCCRL_CONTEXT  pPrev 
)

Definition at line 1095 of file store.c.

1096{
1097 crl_t *ret, *prev = pPrev ? crl_from_ptr(pPrev) : NULL;
1098 WINECRYPT_CERTSTORE *hcs = hCertStore;
1099
1100 TRACE("(%p, %p)\n", hCertStore, pPrev);
1101 if (!hCertStore)
1102 ret = NULL;
1103 else if (hcs->dwMagic != WINE_CRYPTCERTSTORE_MAGIC)
1104 ret = NULL;
1105 else
1106 ret = (crl_t*)hcs->vtbl->crls.enumContext(hcs, prev ? &prev->base : NULL);
1107 return ret ? &ret->ctx : NULL;
1108}
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, %ld)\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 1355 of file store.c.

1357{
1359 FIXME("(%p, %08lx, %p, %p): stub\n", pvSystemStore, dwFlags, pvArg,
1360 pfnEnum);
1361 else
1362 FIXME("(%s, %08lx, %p, %p): stub\n", debugstr_w(pvSystemStore),
1363 dwFlags, pvArg,
1364 pfnEnum);
1365 return FALSE;
1366}
#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 1315 of file store.c.

1317{
1318 BOOL ret = FALSE;
1319 LONG rc;
1320 HKEY key;
1321 CERT_SYSTEM_STORE_INFO info = { sizeof(info) };
1322
1323 TRACE("(%08lx, %p, %p, %p)\n", dwFlags, pvSystemStoreLocationPara, pvArg,
1324 pfnEnum);
1325
1326 rc = CRYPT_OpenParentStore(dwFlags, pvArg, &key);
1327 if (!rc)
1328 {
1329 DWORD index = 0;
1330
1331 ret = TRUE;
1332 do {
1335
1336 rc = RegEnumKeyExW(key, index++, name, &size, NULL, NULL, NULL,
1337 NULL);
1338 if (!rc)
1339 ret = pfnEnum(name, dwFlags, &info, NULL, pvArg);
1340 } while (ret && !rc);
1341 if (ret && rc != ERROR_NO_MORE_ITEMS)
1342 SetLastError(rc);
1343 }
1344 else
1345 SetLastError(rc);
1346 /* Include root store for the local machine location (it isn't in the
1347 * registry)
1348 */
1351 ret = pfnEnum(L"Root", dwFlags, &info, NULL, pvArg);
1352 return ret;
1353}
#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 LONG CRYPT_OpenParentStore(DWORD dwFlags, void *pvSystemStoreLocationPara, HKEY *key)
Definition: store.c:1262
#define ERROR_NO_MORE_ITEMS
Definition: compat.h:105
#define MAX_PATH
Definition: compat.h:34
#define L(x)
Definition: resources.c:13
GLuint index
Definition: glext.h:6031
short WCHAR
Definition: pedump.c:58
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

Referenced by enumerate_stores(), CStoreList::LoadStores(), and testCertEnumSystemStore().

◆ CertEnumSystemStoreLocation()

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

◆ CertFindAttribute()

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

Definition at line 2077 of file cert.c.

2079{
2081 DWORD i;
2082
2083 TRACE("%s %ld %p\n", debugstr_a(pszObjId), cAttr, rgAttr);
2084
2085 if (!cAttr)
2086 return NULL;
2087 if (!pszObjId)
2088 {
2090 return NULL;
2091 }
2092
2093 for (i = 0; !ret && i < cAttr; i++)
2094 if (rgAttr[i].pszObjId && !strcmp(pszObjId, rgAttr[i].pszObjId))
2095 ret = &rgAttr[i];
2096 return ret;
2097}

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 844 of file crl.c.

847{
848 TRACE("(%p, %p, %08lx, %p, %p)\n", pCert, pCrlContext, dwFlags, pvReserved,
849 ppCrlEntry);
850
851 *ppCrlEntry = CRYPT_FindCertificateInCRL(pCert->pCertInfo,
852 pCrlContext->pCrlInfo);
853 return TRUE;
854}
static PCRL_ENTRY CRYPT_FindCertificateInCRL(PCERT_INFO cert, const CRL_INFO *crl)
Definition: crl.c:832
static LPCWSTR LPVOID pvReserved
Definition: asmcache.c:749
PCERT_INFO pCertInfo
Definition: wincrypt.h:491

Referenced by testFindCertInCRL(), testFindCRL(), 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 1830 of file cert.c.

1833{
1837 CERT_ID cert_id;
1838
1839 TRACE("(%p, %08lx, %08lx, %08lx, %p, %p)\n", hCertStore, dwCertEncodingType,
1840 dwFlags, dwType, pvPara, pPrevCertContext);
1841
1842 switch (dwType >> CERT_COMPARE_SHIFT)
1843 {
1844 case CERT_COMPARE_ANY:
1846 break;
1849 break;
1852 break;
1853 case CERT_COMPARE_NAME:
1855 break;
1858 break;
1861 break;
1864 break;
1867 break;
1870 cert_id.KeyId = *(const CRYPT_HASH_BLOB *)pvPara;
1871 pvPara = &cert_id;
1872 /* fall through */
1875 break;
1878 break;
1881 break;
1884 break;
1885 default:
1886 FIXME("find type %08lx unimplemented\n", dwType);
1887 }
1888
1889 if (find)
1890 ret = find(hCertStore, dwType, dwFlags, pvPara, pPrevCertContext);
1891 else if (compare)
1892 ret = cert_compare_certs_in_store(hCertStore, pPrevCertContext,
1893 compare, dwType, dwFlags, pvPara);
1894 else
1895 ret = NULL;
1896 if (!ret)
1898 TRACE("returning %p\n", ret);
1899 return ret;
1900}
static TAGID TAGID find
Definition: db.cpp:156
static BOOL compare_existing_cert(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1585
static PCCERT_CONTEXT find_cert_by_name_str_w(HCERTSTORE store, DWORD dwType, DWORD dwFlags, const void *pvPara, PCCERT_CONTEXT prev)
Definition: cert.c:1804
static PCCERT_CONTEXT find_cert_by_name_str_a(HCERTSTORE store, DWORD dwType, DWORD dwFlags, const void *pvPara, PCCERT_CONTEXT prev)
Definition: cert.c:1778
static BOOL compare_cert_by_sha1_hash(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1458
static BOOL compare_cert_by_md5_hash(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1437
static PCCERT_CONTEXT find_cert_any(HCERTSTORE store, DWORD dwType, DWORD dwFlags, const void *pvPara, PCCERT_CONTEXT prev)
Definition: cert.c:1640
static PCCERT_CONTEXT find_cert_by_issuer(HCERTSTORE store, DWORD dwType, DWORD dwFlags, const void *pvPara, PCCERT_CONTEXT prev)
Definition: cert.c:1646
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:1621
static BOOL compare_cert_by_name(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1479
BOOL(* CertCompareFunc)(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1434
static BOOL compare_cert_by_signature_hash(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1593
static BOOL compare_cert_by_cert_id(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1535
static BOOL compare_cert_by_subject_cert(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1510
static BOOL compare_cert_by_public_key(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: cert.c:1499
PCCERT_CONTEXT(* CertFindFunc)(HCERTSTORE store, DWORD dwType, DWORD dwFlags, const void *pvPara, PCCERT_CONTEXT prev)
Definition: cert.c:1637
CRYPT_HASH_BLOB KeyId
Definition: wincrypt.h:3833
DWORD dwIdChoice
Definition: wincrypt.h:3830
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_ID_KEY_IDENTIFIER
Definition: wincrypt.h:3839
#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_KEY_IDENTIFIER
Definition: wincrypt.h:3004
#define CERT_COMPARE_EXISTING
Definition: wincrypt.h:3002
#define CRYPT_E_NOT_FOUND
Definition: winerror.h:4421

Referenced by add_cert_to_store(), add_ms_root_certs(), CertGetIssuerCertificateFromStore(), CertGetSubjectCertificateFromStore(), CRYPT_CheckBasicConstraintsForCA(), CRYPT_DefaultGetSignerCertificate(), CRYPT_FindCertInStore(), CRYPT_FindIssuer(), CryptAcquireCertificatePrivateKey(), CRYPTDLG_IsCertAllowed(), CryptMsgGetAndVerifySigner(), find_and_delete_cert_in_store(), read_trusted_roots_from_known_locations(), SoftpubAuthenticode(), test_client_cert_authentication(), test_PFXImportCertStore(), testFindCert(), testKeyProvInfo(), 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 2969 of file chain.c.

2972{
2973 FIXME("(%p, %08lx, %08lx, %ld, %p, %p): stub\n", store, certEncodingType,
2974 findFlags, findType, findPara, prevChainContext);
2975 return NULL;
2976}

◆ CertFindCRLInStore()

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

Definition at line 381 of file crl.c.

384{
387
388 TRACE("(%p, %ld, %ld, %ld, %p, %p)\n", hCertStore, dwCertEncodingType,
389 dwFindFlags, dwFindType, pvFindPara, pPrevCrlContext);
390
391 switch (dwFindType)
392 {
393 case CRL_FIND_ANY:
395 break;
398 break;
401 break;
404 break;
405 default:
406 FIXME("find type %08lx unimplemented\n", dwFindType);
407 compare = NULL;
408 }
409
410 if (compare)
411 {
413
414 ret = pPrevCrlContext;
415 do {
416 ret = CertEnumCRLsInStore(hCertStore, ret);
417 if (ret)
418 matches = compare(ret, dwFindType, dwFindFlags, pvFindPara);
419 } while (ret != NULL && !matches);
420 if (!ret)
422 }
423 else
424 {
426 ret = NULL;
427 }
428 return ret;
429}
#define compare
static BOOL compare_crl_issued_by(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: crl.c:254
BOOL(* CrlCompareFunc)(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: crl.c:245
static BOOL compare_crl_issued_for(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: crl.c:370
static BOOL compare_crl_any(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: crl.c:248
static BOOL compare_crl_existing(PCCRL_CONTEXT pCrlContext, DWORD dwType, DWORD dwFlags, const void *pvPara)
Definition: crl.c:353
PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pPrev)
Definition: store.c:1095
#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(), testFindCRL(), 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, %ld, %ld, %ld, %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 %08lx 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 2122 of file cert.c.

2123{
2125 DWORD i, j;
2126
2127 TRACE("%s %p\n", debugstr_a(pszObjId), pName);
2128
2129 if (!pszObjId)
2130 {
2132 return NULL;
2133 }
2134
2135 for (i = 0; !ret && i < pName->cRDN; i++)
2136 for (j = 0; !ret && j < pName->rgRDN[i].cRDNAttr; j++)
2137 if (pName->rgRDN[i].rgRDNAttr[j].pszObjId && !strcmp(pszObjId,
2138 pName->rgRDN[i].rgRDNAttr[j].pszObjId))
2139 ret = &pName->rgRDN[i].rgRDNAttr[j];
2140 return ret;
2141}
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:86

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 2956 of file chain.c.

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

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

◆ CertFreeCertificateChainEngine()

WINCRYPT32API VOID WINAPI CertFreeCertificateChainEngine ( HCERTCHAINENGINE  hChainEngine)

Definition at line 245 of file chain.c.

246{
247 TRACE("(%p)\n", hChainEngine);
249}
static CertificateChainEngine * get_chain_engine(HCERTCHAINENGINE handle, BOOL allow_default)
Definition: chain.c:162
static void free_chain_engine(CertificateChainEngine *engine)
Definition: chain.c:197

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

◆ CertFreeCertificateContext()

WINCRYPT32API BOOL WINAPI CertFreeCertificateContext ( PCCERT_CONTEXT  pCertContext)

Definition at line 369 of file cert.c.

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

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

◆ 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 2875 of file chain.c.

2879{
2880 CertificateChainEngine *engine;
2881 BOOL ret;
2883
2884 TRACE("(%p, %p, %s, %p, %p, %08lx, %p, %p)\n", hChainEngine, pCertContext,
2885 debugstr_filetime(pTime), hAdditionalStore, pChainPara, dwFlags,
2886 pvReserved, ppChainContext);
2887
2888 engine = get_chain_engine(hChainEngine, TRUE);
2889 if (!engine)
2890 return FALSE;
2891
2892 if (ppChainContext)
2893 *ppChainContext = NULL;
2894 if (!pChainPara)
2895 {
2897 return FALSE;
2898 }
2899 if (!pCertContext->pCertInfo->SignatureAlgorithm.pszObjId)
2900 {
2902 return FALSE;
2903 }
2904
2905 if (TRACE_ON(chain))
2906 dump_chain_para(pChainPara);
2907 /* FIXME: what about HCCE_LOCAL_MACHINE? */
2908 ret = CRYPT_BuildCandidateChainFromCert(engine, pCertContext, pTime,
2909 hAdditionalStore, dwFlags, &chain);
2910 if (ret)
2911 {
2912 CertificateChain *alternate = NULL;
2913 PCERT_CHAIN_CONTEXT pChain;
2914
2915 do {
2916 alternate = CRYPT_BuildAlternateContextFromChain(engine,
2917 pTime, hAdditionalStore, dwFlags, chain);
2918
2919 /* Alternate contexts are added as "lower quality" contexts of
2920 * chain, to avoid loops in alternate chain creation.
2921 * The highest-quality chain is chosen at the end.
2922 */
2923 if (alternate)
2925 } while (ret && alternate);
2929 pChain = (PCERT_CHAIN_CONTEXT)chain;
2930 CRYPT_VerifyChainRevocation(pChain, pTime, hAdditionalStore,
2931 pChainPara, dwFlags);
2932 CRYPT_CheckUsages(pChain, pChainPara);
2933 TRACE_(chain)("error status: %08lx\n",
2934 pChain->TrustStatus.dwErrorStatus);
2935 if (ppChainContext)
2936 *ppChainContext = pChain;
2937 else
2939 }
2940 TRACE("returning %d\n", ret);
2941 return ret;
2942}
static BOOL CRYPT_BuildCandidateChainFromCert(CertificateChainEngine *engine, PCCERT_CONTEXT cert, LPFILETIME pTime, HCERTSTORE hAdditionalStore, DWORD flags, CertificateChain **ppChain)
Definition: chain.c:2247
static BOOL CRYPT_AddAlternateChainToChain(CertificateChain *chain, const CertificateChain *alternate)
Definition: chain.c:2582
static void CRYPT_VerifyChainRevocation(PCERT_CHAIN_CONTEXT chain, LPFILETIME pTime, HCERTSTORE hAdditionalStore, const CERT_CHAIN_PARA *pChainPara, DWORD chainFlags)
Definition: chain.c:2628
VOID WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext)
Definition: chain.c:2956
static void CRYPT_FreeLowerQualityChains(CertificateChain *chain)
Definition: chain.c:2347
static void CRYPT_CheckUsages(PCERT_CHAIN_CONTEXT chain, const CERT_CHAIN_PARA *pChainPara)
Definition: chain.c:2741
static LPCSTR debugstr_filetime(LPFILETIME pTime)
Definition: chain.c:2209
static CertificateChain * CRYPT_BuildAlternateContextFromChain(CertificateChainEngine *engine, LPFILETIME pTime, HCERTSTORE hAdditionalStore, DWORD flags, CertificateChain *chain)
Definition: chain.c:2438
static CertificateChain * CRYPT_ChooseHighestQualityChain(CertificateChain *chain)
Definition: chain.c:2550
static void dump_chain_para(const CERT_CHAIN_PARA *pChainPara)
Definition: chain.c:2860
#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(), getChain(), netconn_verify_cert(), save_cert_as_cms(), save_pfx(), test_CERT_CHAIN_PARA_cbSize(), testGetCertChain(), testVerifyCertChainPolicy(), and WINTRUST_CreateChainForSigner().

◆ CertGetCertificateContextProperty()

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

Definition at line 615 of file cert.c.

617{
618 cert_t *cert = cert_from_ptr(pCertContext);
619 BOOL ret;
620
621 TRACE("(%p, %ld, %p, %p)\n", pCertContext, dwPropId, pvData, pcbData);
622
623 switch (dwPropId)
624 {
625 case 0:
627 case CERT_CRL_PROP_ID:
628 case CERT_CTL_PROP_ID:
630 ret = FALSE;
631 break;
633 ret = CertGetStoreProperty(cert->ctx.hCertStore, dwPropId, pvData, pcbData);
634 break;
636 {
637 CERT_KEY_CONTEXT keyContext;
638 DWORD size = sizeof(keyContext);
639
641 CERT_KEY_CONTEXT_PROP_ID, &keyContext, &size);
642 if (ret)
644 sizeof(keyContext.hCryptProv));
645 break;
646 }
649 if (ret && pvData)
651 break;
652 default:
654 pcbData);
655 }
656
657 TRACE("returning %d\n", ret);
658 return ret;
659}
#define CERT_CTL_PROP_ID
#define CERT_CRL_PROP_ID
#define CERT_CERT_PROP_ID
static BOOL CertContext_CopyParam(void *pvData, DWORD *pcbData, const void *pb, DWORD cb)
Definition: cert.c:408
static BOOL CertContext_GetProperty(cert_t *cert, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: cert.c:514
static void fix_KeyProvInfoProperty(CRYPT_KEY_PROV_INFO *info)
Definition: cert.c:440
BOOL WINAPI CertGetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: store.c:1166
_In_ LPWSTR _In_ DWORD _In_ LPCVOID pvData
Definition: netsh.h:116
_In_ _Out_writes_opt_ pcchValueName _Inout_opt_ LPDWORD _Out_opt_ _Out_writes_bytes_to_opt_ pcbData _Inout_opt_ LPDWORD pcbData
Definition: shlwapi.h:757
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

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(), CCert::Init(), read_trusted_roots_from_known_locations(), SoftpubAuthenticode(), test_PFXImportCertStore(), testAcquireCertPrivateKey(), testAddCertificateLink(), testAddSerialized(), testCertProperties(), testCreateCert(), testCreateSelfSignCert(), testKeyProvInfo(), and TrustIsCertificateSelfSigned().

◆ CertGetCRLContextProperty()

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

Definition at line 566 of file crl.c.

568{
569 BOOL ret;
570
571 TRACE("(%p, %ld, %p, %p)\n", pCRLContext, dwPropId, pvData, pcbData);
572
573 switch (dwPropId)
574 {
575 case 0:
577 case CERT_CRL_PROP_ID:
578 case CERT_CTL_PROP_ID:
580 ret = FALSE;
581 break;
583 if (!pvData)
584 {
585 *pcbData = sizeof(DWORD);
586 ret = TRUE;
587 }
588 else if (*pcbData < sizeof(DWORD))
589 {
591 *pcbData = sizeof(DWORD);
592 ret = FALSE;
593 }
594 else
595 {
596 ret = CertGetStoreProperty(pCRLContext->hCertStore, dwPropId, pvData, pcbData);
597 }
598 break;
599 default:
600 ret = CRLContext_GetProperty(crl_from_ptr(pCRLContext), dwPropId, pvData, pcbData);
601 }
602 return ret;
603}
#define ERROR_MORE_DATA
Definition: dderror.h:13
static BOOL CRLContext_GetProperty(crl_t *crl, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: crl.c:515
#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 431 of file crl.c.

433{
434 static const DWORD supportedFlags = CERT_STORE_SIGNATURE_FLAG |
438
439 TRACE("(%p, %p, %p, %08lx)\n", hCertStore, pIssuerContext, pPrevCrlContext,
440 *pdwFlags);
441
442 if (*pdwFlags & ~supportedFlags)
443 {
445 return NULL;
446 }
447 if (pIssuerContext)
448 ret = CertFindCRLInStore(hCertStore, pIssuerContext->dwCertEncodingType,
449 0, CRL_FIND_ISSUED_BY, pIssuerContext, pPrevCrlContext);
450 else
451 ret = CertFindCRLInStore(hCertStore, 0, 0, CRL_FIND_ANY, NULL,
452 pPrevCrlContext);
453 if (ret)
454 {
455 if (*pdwFlags & CERT_STORE_TIME_VALIDITY_FLAG)
456 {
457 if (0 == CertVerifyCRLTimeValidity(NULL, ret->pCrlInfo))
458 *pdwFlags &= ~CERT_STORE_TIME_VALIDITY_FLAG;
459 }
460 if (*pdwFlags & CERT_STORE_SIGNATURE_FLAG)
461 {
462 if (CryptVerifyCertificateSignatureEx(0, ret->dwCertEncodingType,
464 CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT, (void *)pIssuerContext, 0,
465 NULL))
466 *pdwFlags &= ~CERT_STORE_SIGNATURE_FLAG;
467 }
468 }
469 return ret;
470}
BOOL WINAPI CryptVerifyCertificateSignatureEx(HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, DWORD dwSubjectType, void *pvSubject, DWORD dwIssuerType, void *pvIssuer, DWORD dwFlags, void *pvReserved)
Definition: cert.c:2914
LONG WINAPI CertVerifyCRLTimeValidity(LPFILETIME pTimeToVerify, PCRL_INFO pCrlInfo)
Definition: crl.c:870
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, %ld, %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 3044 of file cert.c.

3046{
3048 DWORD bytesNeeded;
3049 BOOL ret = TRUE;
3050
3051 if (!pCertContext || !pcbUsage)
3052 {
3054 return FALSE;
3055 }
3056
3057 TRACE("(%p, %08lx, %p, %ld)\n", pCertContext, dwFlags, pUsage, *pcbUsage);
3058
3060 {
3061 DWORD propSize = 0;
3062
3063 if (CertGetCertificateContextProperty(pCertContext,
3064 CERT_ENHKEY_USAGE_PROP_ID, NULL, &propSize))
3065 {
3066 LPBYTE buf = CryptMemAlloc(propSize);
3067
3068 if (buf)
3069 {
3070 if (CertGetCertificateContextProperty(pCertContext,
3071 CERT_ENHKEY_USAGE_PROP_ID, buf, &propSize))
3072 {
3074 X509_ENHANCED_KEY_USAGE, buf, propSize,
3075 CRYPT_ENCODE_ALLOC_FLAG, NULL, &usage, &bytesNeeded);
3076 }
3078 }
3079 }
3080 }
3082 {
3084 pCertContext->pCertInfo->cExtension,
3085 pCertContext->pCertInfo->rgExtension);
3086
3087 if (ext)
3088 {
3090 X509_ENHANCED_KEY_USAGE, ext->Value.pbData, ext->Value.cbData,
3091 CRYPT_ENCODE_ALLOC_FLAG, NULL, &usage, &bytesNeeded);
3092 }
3093 }
3094 if (!usage)
3095 {
3096 /* If a particular location is specified, this should fail. Otherwise
3097 * it should succeed with an empty usage. (This is true on Win2k and
3098 * later, which we emulate.)
3099 */
3100 if (dwFlags)
3101 {
3103 ret = FALSE;
3104 }
3105 else
3106 bytesNeeded = sizeof(CERT_ENHKEY_USAGE);
3107 }
3108
3109 if (ret)
3110 {
3111 if (!pUsage)
3112 *pcbUsage = bytesNeeded;
3113 else if (*pcbUsage < bytesNeeded)
3114 {
3116 *pcbUsage = bytesNeeded;
3117 ret = FALSE;
3118 }
3119 else
3120 {
3121 *pcbUsage = bytesNeeded;
3122 if (usage)
3123 {
3124 DWORD i;
3125 LPSTR nextOID = (LPSTR)((LPBYTE)pUsage +
3126 sizeof(CERT_ENHKEY_USAGE) +
3127 usage->cUsageIdentifier * sizeof(LPSTR));
3128
3129 pUsage->cUsageIdentifier = usage->cUsageIdentifier;
3130 pUsage->rgpszUsageIdentifier = (LPSTR *)((LPBYTE)pUsage +
3131 sizeof(CERT_ENHKEY_USAGE));
3132 for (i = 0; i < usage->cUsageIdentifier; i++)
3133 {
3134 pUsage->rgpszUsageIdentifier[i] = nextOID;
3135 strcpy(nextOID, usage->rgpszUsageIdentifier[i]);
3136 nextOID += strlen(nextOID) + 1;
3137 }
3138 }
3139 else
3140 pUsage->cUsageIdentifier = 0;
3141 }
3142 }
3143 if (usage)
3145 TRACE("returning %d\n", ret);
3146 return ret;
3147}
PCERT_EXTENSION WINAPI CertFindExtension(LPCSTR pszObjId, DWORD cExtensions, CERT_EXTENSION rgExtensions[])
Definition: cert.c:2099
BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
Definition: cert.c:615
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 3007 of file cert.c.

3009{
3011 BOOL ret = FALSE;
3012
3013 TRACE("(%08lx, %p, %p, %ld)\n", dwCertEncodingType, pCertInfo, pbKeyUsage,
3014 cbKeyUsage);
3015
3017 pCertInfo->rgExtension);
3018 if (ext)
3019 {
3021 DWORD size = sizeof(usage);
3022
3023 ret = CryptDecodeObjectEx(dwCertEncodingType, X509_BITS,
3024 ext->Value.pbData, ext->Value.cbData, CRYPT_DECODE_NOCOPY_FLAG, NULL,
3025 &usage, &size);
3026 if (ret)
3027 {
3028 if (cbKeyUsage < usage.cbData)
3029 ret = FALSE;
3030 else
3031 {
3032 memcpy(pbKeyUsage, usage.pbData, usage.cbData);
3033 if (cbKeyUsage > usage.cbData)
3034 memset(pbKeyUsage + usage.cbData, 0,
3035 cbKeyUsage - usage.cbData);
3036 }
3037 }
3038 }
3039 else
3040 SetLastError(0);
3041 return ret;
3042}
#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 1958 of file cert.c.

1961{
1963
1964 TRACE("(%p, %p, %p, %08lx)\n", hCertStore, pSubjectContext,
1965 pPrevIssuerContext, *pdwFlags);
1966
1967 if (!pSubjectContext)
1968 {
1970 return NULL;
1971 }
1972
1973 ret = CertFindCertificateInStore(hCertStore,
1974 pSubjectContext->dwCertEncodingType, 0, CERT_FIND_ISSUER_OF,
1975 pSubjectContext, pPrevIssuerContext);
1976 if (ret)
1977 {
1978 if (!CertVerifySubjectCertificateContext(pSubjectContext, ret,
1979 pdwFlags))
1980 {
1982 ret = NULL;
1983 }
1984 if (CRYPT_IsCertificateSelfSigned(pSubjectContext))
1985 {
1987 ret = NULL;
1989 }
1990 }
1991 TRACE("returning %p\n", ret);
1992 return ret;
1993}
PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, DWORD dwFlags, DWORD dwType, const void *pvPara, PCCERT_CONTEXT pPrevCertContext)
Definition: cert.c:1830
BOOL WINAPI CertVerifySubjectCertificateContext(PCCERT_CONTEXT pSubject, PCCERT_CONTEXT pIssuer, DWORD *pdwFlags)
Definition: cert.c:1916
DWORD CRYPT_IsCertificateSelfSigned(const CERT_CONTEXT *cert)
Definition: chain.c:264
#define CERT_FIND_ISSUER_OF
Definition: wincrypt.h:3050
#define CRYPT_E_SELF_SIGNED
Definition: winerror.h:4424

Referenced by testGetIssuerCert().

◆ CertGetNameStringA()

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

Definition at line 883 of file str.c.

885{
886 DWORD len, len_mb, ret;
888
889 TRACE("(%p, %ld, %08lx, %p, %p, %ld)\n", cert, type, flags, type_para, name, name_len);
890
891 len = CertGetNameStringW(cert, type, flags, type_para, NULL, 0);
892
893 if (!(nameW = CryptMemAlloc(len * sizeof(*nameW))))
894 {
895 ERR("No memory.\n");
896 if (name && name_len) *name = 0;
897 return 1;
898 }
899
900 len = CertGetNameStringW(cert, type, flags, type_para, nameW, len);
901 len_mb = WideCharToMultiByte(CP_ACP, 0, nameW, len, NULL, 0, NULL, NULL);
902 if (!name || !name_len)
903 {
905 return len_mb;
906 }
907
908 ret = WideCharToMultiByte(CP_ACP, 0, nameW, len, name, name_len, NULL, NULL);
909 if (ret < len_mb)
910 {
911 name[0] = 0;
912 ret = 1;
913 }
915 return ret;
916}
static const WCHAR nameW[]
Definition: main.c:49
#define ERR(fmt,...)
Definition: precomp.h:57
DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT cert, DWORD type, DWORD flags, void *type_para, LPWSTR name_string, DWORD name_len)
Definition: str.c:1013
#define CP_ACP
Definition: compat.h:109
#define WideCharToMultiByte
Definition: compat.h:111
GLbitfield flags
Definition: glext.h:7161
GLenum GLsizei len
Definition: glext.h:6722
uint16_t * LPWSTR
Definition: typedefs.h:56

Referenced by GetFriendlyNameOfCertA(), test_CertGetNameString(), and test_CertGetNameString_value_().

◆ CertGetNameStringW()

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

Definition at line 1013 of file str.c.

1015{
1016 static const DWORD supported_flags = CERT_NAME_ISSUER_FLAG | CERT_NAME_SEARCH_ALL_NAMES_FLAG;
1017 BOOL alt_name_issuer, search_all_names;
1021 DWORD ret = 0;
1022
1023 TRACE("(%p, %ld, %08lx, %p, %p, %ld)\n", cert, type, flags, type_para, name_string, name_len);
1024
1025 if (!cert)
1026 goto done;
1027
1028 if (flags & ~supported_flags)
1029 FIXME("Unsupported flags %#lx.\n", flags);
1030
1031 search_all_names = flags & CERT_NAME_SEARCH_ALL_NAMES_FLAG;
1032 if (search_all_names && type != CERT_NAME_DNS_TYPE)
1033 {
1034 WARN("CERT_NAME_SEARCH_ALL_NAMES_FLAG used with type %lu.\n", type);
1035 goto done;
1036 }
1037
1038 alt_name_issuer = flags & CERT_NAME_ISSUER_FLAG;
1039 name = alt_name_issuer ? &cert->pCertInfo->Issuer : &cert->pCertInfo->Subject;
1040
1041 switch (type)
1042 {
1044 {
1046
1047 if (entry)
1048 {
1049 ret = copy_output_str(name_string, entry->pwszRfc822Name, name_len);
1050 break;
1051 }
1053 name_string, name_len);
1054 break;
1055 }
1056 case CERT_NAME_RDN_TYPE:
1057 {
1058 DWORD param = type_para ? *(DWORD *)type_para : 0;
1059
1060 if (name->cbData)
1061 {
1062 ret = CertNameToStrW(cert->dwCertEncodingType, name, param, name_string, name_len);
1063 }
1064 else
1065 {
1067
1068 if (entry)
1069 ret = CertNameToStrW(cert->dwCertEncodingType, &entry->DirectoryName,
1070 param, name_string, name_len);
1071 }
1072 break;
1073 }
1075 ret = cert_get_name_from_rdn_attr(cert->dwCertEncodingType, name, type_para,
1076 name_string, name_len);
1077 if (ret) break;
1078
1080
1081 if (entry)
1083 0, name_string, name_len);
1084 break;
1086 {
1087 static const LPCSTR simpleAttributeOIDs[] =
1088 {
1090 };
1091 CERT_NAME_INFO *nameInfo = NULL;
1092 DWORD bytes = 0, i;
1093
1094 if (CryptDecodeObjectEx(cert->dwCertEncodingType, X509_NAME, name->pbData, name->cbData,
1095 CRYPT_DECODE_ALLOC_FLAG, NULL, &nameInfo, &bytes))
1096 {
1097 PCERT_RDN_ATTR nameAttr = NULL;
1098
1099 for (i = 0; !nameAttr && i < ARRAY_SIZE(simpleAttributeOIDs); i++)
1100 nameAttr = CertFindRDNAttr(simpleAttributeOIDs[i], nameInfo);
1101 if (nameAttr)
1102 ret = rdn_value_to_strW(nameAttr->dwValueType, &nameAttr->Value, name_string, name_len, TRUE);
1103 LocalFree(nameInfo);
1104 }
1105 if (ret) break;
1107 if (!info) break;
1108 if (!entry && info->cAltEntry)
1109 entry = &info->rgAltEntry[0];
1110 if (entry) ret = copy_output_str(name_string, entry->pwszRfc822Name, name_len);
1111 break;
1112 }
1114 {
1115 DWORD len = name_len;
1116
1118 ret = len;
1119 else
1121 type_para, name_string, name_len);
1122 break;
1123 }
1124 case CERT_NAME_DNS_TYPE:
1125 {
1126 unsigned int index = 0, len;
1127
1128 if (cert_get_alt_name_info(cert, alt_name_issuer, &info)
1130 {
1131 if (search_all_names)
1132 {
1133 do
1134 {
1135 if (name_string && name_len == 1) break;
1136 ret += len = copy_output_str(name_string, entry->pwszDNSName, name_len ? name_len - 1 : 0);
1137 if (name_string && name_len)
1138 {
1139 name_string += len;
1140 name_len -= len;
1141 }
1142 }
1144 }
1145 else ret = copy_output_str(name_string, entry->pwszDNSName, name_len);
1146 }
1147 else
1148 {
1149 if (!search_all_names || name_len != 1)
1150 {
1151 len = search_all_names && name_len ? name_len - 1 : name_len;
1153 name_string, len);
1154 if (name_string) name_string += ret;
1155 }
1156 }
1157
1158 if (search_all_names)
1159 {
1160 if (name_string && name_len) *name_string = 0;
1161 ++ret;
1162 }
1163 break;
1164 }
1165 case CERT_NAME_URL_TYPE:
1166 {
1167 if ((entry = cert_find_alt_name_entry(cert, alt_name_issuer, CERT_ALT_NAME_URL, &info)))
1168 ret = copy_output_str(name_string, entry->pwszURL, name_len);
1169 break;
1170 }
1171 default:
1172 FIXME("unimplemented for type %lu.\n", type);
1173 ret = 0;
1174 break;
1175 }
1176done:
1177 if (info)
1178 LocalFree(info);
1179
1180 if (!ret)
1181 {
1182 ret = 1;
1183 if (name_string && name_len) name_string[0] = 0;
1184 }
1185 return ret;
1186}
static unsigned char bytes[4]
Definition: adnsresfilter.c:74
PCERT_RDN_ATTR WINAPI CertFindRDNAttr(LPCSTR pszObjId, PCERT_NAME_INFO pName)
Definition: cert.c:2122
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:336
static PCERT_ALT_NAME_ENTRY cert_find_alt_name_entry(PCCERT_CONTEXT cert, BOOL alt_name_issuer, DWORD entry_type, PCERT_ALT_NAME_INFO *info)
Definition: str.c:960
static BOOL cert_get_alt_name_info(PCCERT_CONTEXT cert, BOOL alt_name_issuer, PCERT_ALT_NAME_INFO *info)
Definition: str.c:918
static PCERT_ALT_NAME_ENTRY cert_find_next_alt_name_entry(PCERT_ALT_NAME_INFO info, DWORD entry_type, unsigned int *index)
Definition: str.c:937
static DWORD copy_output_str(WCHAR *dst, const WCHAR *src, DWORD dst_size)
Definition: str.c:1002
DWORD WINAPI CertNameToStrW(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, DWORD dwStrType, LPWSTR psz, DWORD csz)
Definition: str.c:463
static DWORD rdn_value_to_strW(DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, LPWSTR psz, DWORD csz, BOOL partial_copy)
Definition: str.c:65
static DWORD cert_get_name_from_rdn_attr(DWORD encodingType, const CERT_NAME_BLOB *name, LPCSTR oid, LPWSTR pszNameString, DWORD cchNameString)
Definition: str.c:969
GLfloat param
Definition: glext.h:5796
Definition: wincrypt.h:341
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 CERT_NAME_SEARCH_ALL_NAMES_FLAG
Definition: wincrypt.h:3665
#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 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 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(), GetFriendlyNameOfCertW(), CCert::GetNameString(), test_CertGetNameString(), and test_CertGetNameString_value_().

◆ CertGetPublicKeyLength()

WINCRYPT32API DWORD WINAPI CertGetPublicKeyLength ( DWORD  dwCertEncodingType,
PCERT_PUBLIC_KEY_INFO  pPublicKey 
)

Definition at line 1375 of file cert.c.

1377{
1378 DWORD len = 0;
1379
1380 TRACE("(%08lx, %p)\n", dwCertEncodingType, pPublicKey);
1381
1382 if (GET_CERT_ENCODING_TYPE(dwCertEncodingType) != X509_ASN_ENCODING)
1383 {
1385 return 0;
1386 }
1387 if (pPublicKey->Algorithm.pszObjId &&
1388 !strcmp(pPublicKey->Algorithm.pszObjId, szOID_RSA_DH))
1389 {
1390 FIXME("unimplemented for DH public keys\n");
1392 }
1393 else
1394 {
1396 DWORD size;
1397 PBYTE buf;
1398 BOOL ret;
1399
1401 if (info)
1402 {
1403 HCRYPTKEY key;
1404
1405 TRACE("public key algid %#x (%s)\n", info->Algid, debugstr_a(pPublicKey->Algorithm.pszObjId));
1406
1407 ret = CryptImportPublicKeyInfo(I_CryptGetDefaultCryptProv(info->Algid), dwCertEncodingType, pPublicKey, &key);
1408 if (ret)
1409 {
1410 size = sizeof(len);
1413 return len;
1414 }
1415 /* fallback to RSA */
1416 }
1417
1418 ret = CryptDecodeObjectEx(dwCertEncodingType,
1421 &size);
1422
1423 if (ret)
1424 {
1425 RSAPUBKEY *rsaPubKey = (RSAPUBKEY *)(buf + sizeof(BLOBHEADER));
1426
1427 len = rsaPubKey->bitlen;
1428 LocalFree(buf);
1429 }
1430 }
1431 return len;
1432}
HCRYPTPROV WINAPI I_CryptGetDefaultCryptProv(ALG_ID)
Definition: main.c:215
BOOL WINAPI CryptGetKeyParam(HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
Definition: crypt.c:1626
BOOL WINAPI CryptImportPublicKeyInfo(HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, HCRYPTKEY *phKey)
Definition: encode.c:5210
#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:4510

Referenced by field_format_public_key(), and testGetPublicKeyLength().

◆ CertGetStoreProperty()

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

Definition at line 1166 of file store.c.

1168{
1169 WINECRYPT_CERTSTORE *store = hCertStore;
1170 BOOL ret = FALSE;
1171
1172 TRACE("(%p, %ld, %p, %p)\n", hCertStore, dwPropId, pvData, pcbData);
1173
1174 switch (dwPropId)
1175 {
1177 if (!pvData)
1178 {
1179 *pcbData = sizeof(DWORD);
1180 ret = TRUE;
1181 }
1182 else if (*pcbData < sizeof(DWORD))
1183 {
1185 *pcbData = sizeof(DWORD);
1186 }
1187 else
1188 {
1189 DWORD state = 0;
1190
1191 if (store->type != StoreTypeMem &&
1194 *(DWORD *)pvData = state;
1195 ret = TRUE;
1196 }
1197 break;
1198 default:
1199 if (store->properties)
1200 {
1202
1204 &blob);
1205 if (ret)
1206 {
1207 if (!pvData)
1208 *pcbData = blob.cbData;
1209 else if (*pcbData < blob.cbData)
1210 {
1212 *pcbData = blob.cbData;
1213 ret = FALSE;
1214 }
1215 else
1216 {
1217 memcpy(pvData, blob.pbData, blob.cbData);
1218 *pcbData = blob.cbData;
1219 }
1220 }
1221 else
1223 }
1224 else
1226 }
1227 return ret;
1228}
static int state
Definition: maze.c:121
BOOL ContextPropertyList_FindProperty(CONTEXT_PROPERTY_LIST *list, DWORD id, PCRYPT_DATA_BLOB blob)
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 1902 of file cert.c.

1904{
1905 TRACE("(%p, %08lx, %p)\n", hCertStore, dwCertEncodingType, pCertId);
1906
1907 if (!pCertId)
1908 {
1910 return NULL;
1911 }
1912 return CertFindCertificateInStore(hCertStore, dwCertEncodingType, 0,
1913 CERT_FIND_SUBJECT_CERT, pCertId, NULL);
1914}
#define CERT_FIND_SUBJECT_CERT
Definition: wincrypt.h:3048

Referenced by test_verify_ecc_signature(), testGetSubjectCert(), and WINTRUST_VerifySigner().

◆ CertGetValidUsages()

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

Definition at line 3356 of file cert.c.

3358{
3359 BOOL ret = TRUE;
3360 DWORD i, cbOIDs = 0;
3361 BOOL allUsagesValid = TRUE;
3362 CERT_ENHKEY_USAGE validUsages = { 0, NULL };
3363
3364 TRACE("(%ld, %p, %d, %p, %ld)\n", cCerts, rghCerts, *cNumOIDs,
3365 rghOIDs, *pcbOIDs);
3366
3367 for (i = 0; i < cCerts; i++)
3368 {
3370 DWORD size = sizeof(usage);
3371
3372 ret = CertGetEnhancedKeyUsage(rghCerts[i], 0, &usage, &size);
3373 /* Success is deliberately ignored: it implies all usages are valid */
3374 if (!ret && GetLastError() == ERROR_MORE_DATA)
3375 {
3377
3378 allUsagesValid = FALSE;
3379 if (pUsage)
3380 {
3381 ret = CertGetEnhancedKeyUsage(rghCerts[i], 0, pUsage, &size);
3382 if (ret)
3383 {
3384 if (!validUsages.cUsageIdentifier)
3385 {
3386 DWORD j;
3387
3388 cbOIDs = pUsage->cUsageIdentifier * sizeof(LPSTR);
3389 validUsages.cUsageIdentifier = pUsage->cUsageIdentifier;
3390 for (j = 0; j < validUsages.cUsageIdentifier; j++)
3391 cbOIDs += lstrlenA(pUsage->rgpszUsageIdentifier[j])
3392 + 1;
3393 validUsages.rgpszUsageIdentifier =
3394 CryptMemAlloc(cbOIDs);
3395 if (validUsages.rgpszUsageIdentifier)
3396 {
3397 LPSTR nextOID = (LPSTR)
3398 ((LPBYTE)validUsages.rgpszUsageIdentifier +
3399 validUsages.cUsageIdentifier * sizeof(LPSTR));
3400
3401 for (j = 0; j < validUsages.cUsageIdentifier; j++)
3402 {
3403 validUsages.rgpszUsageIdentifier[j] = nextOID;
3404 lstrcpyA(validUsages.rgpszUsageIdentifier[j],
3405 pUsage->rgpszUsageIdentifier[j]);
3406 nextOID += lstrlenA(nextOID) + 1;
3407 }
3408 }
3409 }
3410 else
3411 {
3412 struct BitField validIndexes = { 0, NULL };
3413 DWORD j, k, numRemoved = 0;
3414
3415 /* Merge: build a bitmap of all the indexes of
3416 * validUsages.rgpszUsageIdentifier that are in pUsage.
3417 */
3418 for (j = 0; j < pUsage->cUsageIdentifier; j++)
3419 {
3420 for (k = 0; k < validUsages.cUsageIdentifier; k++)
3421 {
3422 if (!strcmp(pUsage->rgpszUsageIdentifier[j],
3423 validUsages.rgpszUsageIdentifier[k]))
3424 {
3425 CRYPT_SetBitInField(&validIndexes, k);
3426 break;
3427 }
3428 }
3429 }
3430 /* Merge by removing from validUsages those that are
3431 * not in the bitmap.
3432 */
3433 for (j = 0; j < validUsages.cUsageIdentifier; j++)
3434 {
3435 if (!CRYPT_IsBitInFieldSet(&validIndexes, j))
3436 {
3437 if (j < validUsages.cUsageIdentifier - 1)
3438 {
3439 memmove(&validUsages.rgpszUsageIdentifier[j],
3440 &validUsages.rgpszUsageIdentifier[j +
3441 numRemoved + 1],
3442 (validUsages.cUsageIdentifier - numRemoved
3443 - j - 1) * sizeof(LPSTR));
3444 cbOIDs -= lstrlenA(
3445 validUsages.rgpszUsageIdentifier[j]) + 1 +
3446 sizeof(LPSTR);
3447 validUsages.cUsageIdentifier--;
3448 numRemoved++;
3449 }
3450 else
3451 validUsages.cUsageIdentifier--;
3452 }
3453 }
3454 CryptMemFree(validIndexes.indexes);
3455 }
3456 }
3457 CryptMemFree(pUsage);
3458 }
3459 }
3460 }
3461 ret = TRUE;
3462 if (allUsagesValid)
3463 {
3464 *cNumOIDs = -1;
3465 *pcbOIDs = 0;
3466 }
3467 else
3468 {
3469 *cNumOIDs = validUsages.cUsageIdentifier;
3470 if (!rghOIDs)
3471 *pcbOIDs = cbOIDs;
3472 else if (*pcbOIDs < cbOIDs)
3473 {
3474 *pcbOIDs = cbOIDs;
3476 ret = FALSE;
3477 }
3478 else
3479 {
3480 LPSTR nextOID = (LPSTR)((LPBYTE)rghOIDs +
3481 validUsages.cUsageIdentifier * sizeof(LPSTR));
3482
3483 *pcbOIDs = cbOIDs;
3484 for (i = 0; i < validUsages.cUsageIdentifier; i++)
3485 {
3486 rghOIDs[i] = nextOID;
3487 lstrcpyA(nextOID, validUsages.rgpszUsageIdentifier[i]);
3488 nextOID += lstrlenA(nextOID) + 1;
3489 }
3490 }
3491 }
3493 TRACE("cNumOIDs: %d\n", *cNumOIDs);
3494 TRACE("returning %d\n", ret);
3495 return ret;
3496}
static BOOL CRYPT_IsBitInFieldSet(const struct BitField *field, DWORD bit)
Definition: cert.c:3346
static void CRYPT_SetBitInField(struct BitField *field, DWORD bit)
Definition: cert.c:3325
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:3320

Referenced by show_store_certs(), and testGetValidUsages().

◆ CertIsRDNAttrsInCertificateName()

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

Definition at line 2202 of file cert.c.

2204{
2206 LPCSTR type;
2207 DWORD size;
2208 BOOL ret;
2209
2210 TRACE("(%08lx, %08lx, %p, %p)\n", dwCertEncodingType, dwFlags, pCertName,
2211 pRDN);
2212
2214 X509_NAME;
2215 if ((ret = CryptDecodeObjectEx(dwCertEncodingType, type, pCertName->pbData,
2216 pCertName->cbData, CRYPT_DECODE_ALLOC_FLAG, NULL, &name, &size)))
2217 {
2218 DWORD i;
2219
2220 for (i = 0; ret && i < pRDN->cRDNAttr; i++)
2222 if (!ret)
2224 LocalFree(name);
2225 }
2226 return ret;
2227}
static BOOL find_matching_rdn_attr(DWORD dwFlags, const CERT_NAME_INFO *name, const CERT_RDN_ATTR *attr)
Definition: cert.c:2143
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:4426

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 775 of file crl.c.

777{
779 BOOL ret;
780
781 TRACE("(%p, %p, %08lx, %p)\n", pCert, pCrl, dwFlags, pvReserved);
782
783 if (!pCert)
784 return TRUE;
785
787 pCrl->pCrlInfo->cExtension, pCrl->pCrlInfo->rgExtension)))
788 {
790 DWORD size;
791
793 X509_ISSUING_DIST_POINT, ext->Value.pbData, ext->Value.cbData,
795 {
797 pCert->pCertInfo->cExtension, pCert->pCertInfo->rgExtension)))
798 {
799 CRL_DIST_POINTS_INFO *distPoints;
800
802 X509_CRL_DIST_POINTS, ext->Value.pbData, ext->Value.cbData,
803 CRYPT_DECODE_ALLOC_FLAG, NULL, &distPoints, &size)))
804 {
805 DWORD i;
806
807 ret = FALSE;
808 for (i = 0; !ret && i < distPoints->cDistPoint; i++)
810 &distPoints->rgDistPoint[i], idp);
811 if (!ret)
813 LocalFree(distPoints);
814 }
815 }
816 else
817 {
818 /* no CRL dist points extension in cert, can't match the CRL
819 * (which has an issuing dist point extension)
820 */
821 ret = FALSE;
823 }
824 LocalFree(idp);
825 }
826 }
827 else
828 ret = TRUE;
829 return ret;
830}
static BOOL match_dist_point_with_issuing_dist_point(const CRL_DIST_POINT *distPoint, const CRL_ISSUING_DIST_POINT *idp)
Definition: crl.c:740
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

Referenced by testIsValidCRLForCert().

◆ CertNameToStrA()

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

Definition at line 250 of file str.c.

251{
252 DWORD len, len_mb, ret;
253 LPWSTR strW;
254
255 TRACE("(%ld, %p, %08lx, %p, %ld)\n", encoding_type, name_blob, str_type, str, str_len);
256
257 len = CertNameToStrW(encoding_type, name_blob, str_type, NULL, 0);
258
259 if (!(strW = CryptMemAlloc(len * sizeof(*strW))))
260 {
261 ERR("No memory.\n");
262 if (str && str_len) *str = 0;
263 return 1;
264 }
265
266 len = CertNameToStrW(encoding_type, name_blob, str_type, strW, len);
267 len_mb = WideCharToMultiByte(CP_ACP, 0, strW, len, NULL, 0, NULL, NULL);
268 if (!str || !str_len)
269 {
271 return len_mb;
272 }
273
275 if (ret < len_mb)
276 {
277 str[0] = 0;
278 ret = 1;
279 }
281 return ret;
282}
WCHAR strW[12]
Definition: clipboard.c:2216
const WCHAR * str
#define str_len
Definition: treelist.c:89

Referenced by _test_name_blob(), get_security_cert_struct(), test_CertNameToStrA(), and test_NameToStrConversionA_().

◆ CertNameToStrW()

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

Definition at line 463 of file str.c.

465{
466 BOOL ret;
467
468 TRACE("(%ld, %p, %08lx, %p, %ld)\n", dwCertEncodingType, pName, dwStrType,
469 psz, csz);
470
471 ret = cert_name_to_str_with_indent(dwCertEncodingType, 0, pName, dwStrType,
472 psz, csz);
473 TRACE("Returning %s\n", debugstr_w(psz));
474 return ret;
475}

Referenced by blob_to_str(), CertGetNameStringW(), CertNameToStrA(), compare_cert_by_name_str(), field_format_detailed_cert_name(), test_CertNameToStrW(), test_NameToStrConversionW_(), and test_quoted_RDN().

◆ CertOIDToAlgId()

◆ CertOpenStore()

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

Definition at line 809 of file store.c.

812{
814 StoreOpenFunc openFunc = NULL;
815
816 TRACE("(%s, %08lx, %08Ix, %08lx, %p)\n", debugstr_a(lpszStoreProvider),
817 dwMsgAndCertEncodingType, hCryptProv, dwFlags, pvPara);
818
819 if (IS_INTOID(lpszStoreProvider))
820 {
821 switch (LOWORD(lpszStoreProvider))
822 {
824 openFunc = CRYPT_MsgOpenStore;
825 break;
827 openFunc = CRYPT_MemOpenStore;
828 break;
830 openFunc = CRYPT_FileOpenStore;
831 break;
833 openFunc = CRYPT_PKCSOpenStore;
834 break;
836 openFunc = CRYPT_SerializedOpenStore;
837 break;
839 openFunc = CRYPT_RegOpenStore;
840 break;
842 openFunc = CRYPT_FileNameOpenStoreA;
843 break;
845 openFunc = CRYPT_FileNameOpenStoreW;
846 break;
848 openFunc = CRYPT_CollectionOpenStore;
849 break;
851 openFunc = CRYPT_SysOpenStoreA;
852 break;
854 openFunc = CRYPT_SysOpenStoreW;
855 break;
857 openFunc = CRYPT_SysRegOpenStoreA;
858 break;
860 openFunc = CRYPT_SysRegOpenStoreW;
861 break;
863 openFunc = CRYPT_PhysOpenStoreW;
864 break;
865 default:
866 if (LOWORD(lpszStoreProvider))
867 FIXME("unimplemented type %d\n", LOWORD(lpszStoreProvider));
868 }
869 }
870 else if (!stricmp(lpszStoreProvider, sz_CERT_STORE_PROV_MEMORY))
871 openFunc = CRYPT_MemOpenStore;
872 else if (!stricmp(lpszStoreProvider, sz_CERT_STORE_PROV_FILENAME_W))
873 openFunc = CRYPT_FileOpenStore;
874 else if (!stricmp(lpszStoreProvider, sz_CERT_STORE_PROV_SYSTEM))
875 openFunc = CRYPT_SysOpenStoreW;
876 else if (!stricmp(lpszStoreProvider, sz_CERT_STORE_PROV_PKCS7))
877 openFunc = CRYPT_PKCSOpenStore;
878 else if (!stricmp(lpszStoreProvider, sz_CERT_STORE_PROV_SERIALIZED))
879 openFunc = CRYPT_SerializedOpenStore;
880 else if (!stricmp(lpszStoreProvider, sz_CERT_STORE_PROV_COLLECTION))
881 openFunc = CRYPT_CollectionOpenStore;
882 else if (!stricmp(lpszStoreProvider, sz_CERT_STORE_PROV_SYSTEM_REGISTRY))
883 openFunc = CRYPT_SysRegOpenStoreW;
884 else
885 {
886 FIXME("unimplemented type %s\n", lpszStoreProvider);
887 openFunc = NULL;
888 }
889
890 if (!openFunc)
891 hcs = CRYPT_ProvOpenStore(lpszStoreProvider, dwMsgAndCertEncodingType,
892 hCryptProv, dwFlags, pvPara);
893 else
894 hcs = openFunc(hCryptProv, dwFlags, pvPara);
895 return hcs;
896}
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)
Definition: provstore.c:375
WINECRYPT_CERTSTORE * CRYPT_FileNameOpenStoreA(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: filestore.c:380
WINECRYPT_CERTSTORE * CRYPT_RegOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: regstore.c:504
struct WINE_CRYPTCERTSTORE *(* StoreOpenFunc)(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
WINECRYPT_CERTSTORE * CRYPT_FileOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: filestore.c:241
WINECRYPT_CERTSTORE * CRYPT_FileNameOpenStoreW(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: filestore.c:291
#define IS_INTOID(x)
static WINECRYPT_CERTSTORE * CRYPT_SysOpenStoreW(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:538
static WINECRYPT_CERTSTORE * CRYPT_PKCSOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:729
static WINECRYPT_CERTSTORE * CRYPT_SysRegOpenStoreW(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:404
static WINECRYPT_CERTSTORE * CRYPT_SerializedOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:770
static WINECRYPT_CERTSTORE * CRYPT_PhysOpenStoreW(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:798
static WINECRYPT_CERTSTORE * CRYPT_MemOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:372
static WINECRYPT_CERTSTORE * CRYPT_SysOpenStoreA(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:610
static WINECRYPT_CERTSTORE * CRYPT_SysRegOpenStoreA(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:509
static WINECRYPT_CERTSTORE * CRYPT_MsgOpenStore(HCRYPTPROV hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:651
#define stricmp(_String1, _String2)
Definition: compat.h:24
#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_ImportSystemRootCertsToReg(), CRYPT_MsgOpenStore(), CRYPT_ProvOpenStore(), CRYPT_QueryContextObject(), CRYPT_QueryMessageObject(), CRYPT_QuerySerializedStoreFromBlob(), CRYPT_QuerySerializedStoreFromFile(), CRYPT_RegControl(), CRYPT_RegOpenStore(), CRYPT_SerializedOpenStore(), CRYPT_SysOpenStoreW(), CryptAcquireCertificatePrivateKey(), CRYPTDLG_IsCertAllowed(), CRYPTDLG_MakeEngine(), CryptGetMessageCertificates(), CryptMsgGetAndVerifySigner(), CryptVerifyDetachedMessageSignature(), CryptVerifyMessageSignature(), getChain(), import_crl(), import_ctl(), PFXImportCertStore(), read_trusted_roots_from_known_locations(), save_cert_as_cms(), save_pfx(), show_cert_stores(), SOFTPUB_CreateStoreFromMessage(), SoftpubAuthenticode(), CStore::StoreHandle(), test_CERT_CHAIN_PARA_cbSize(), test_crypt_ui_wiz_import(), test_I_UpdateStore(), test_msg_get_and_verify_signer(), test_utils(), test_verify_ecc_signature(), test_verifyRevocation(), testAddCert(), testAddCertificateLink(), testAddCRL(), testAddCTLToStore(), testAddSerialized(), testCertOpenSystemStore(), testCertRegisterSystemStore(), testCloseStore(), testCollectionStore(), testCreateCertChainEngine(), testDupCert(), testEmptyStore(), testFileNameStore(), testFileStore(), testFindCert(), testFindCRL(), testGetCertChain(), testGetCRLFromStore(), testGetIssuerCert(), testGetSubjectCert(), testIsValidCRLForCert(), testKeyProvInfo(), 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 898 of file store.c.

900{
901 if (!szSubSystemProtocol)
902 {
904 return 0;
905 }
907 CERT_SYSTEM_STORE_CURRENT_USER, szSubSystemProtocol);
908}
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:809

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

◆ CertOpenSystemStoreW()

WINCRYPT32API HCERTSTORE WINAPI CertOpenSystemStoreW ( HCRYPTPROV_LEGACY  hProv,
LPCWSTR  szSubSystemProtocol 
)

Definition at line 910 of file store.c.

912{
913 if (!szSubSystemProtocol)
914 {
916 return 0;
917 }
919 CERT_SYSTEM_STORE_CURRENT_USER, szSubSystemProtocol);
920}

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 30 of file str.c.

32{
33 DWORD len, len_mb, ret;
35
36 TRACE("(%ld, %p, %p, %ld)\n", type, value_blob, value, value_len);
37
38 len = CertRDNValueToStrW(type, value_blob, NULL, 0);
39
40 if (!(valueW = CryptMemAlloc(len * sizeof(*valueW))))
41 {
42 ERR("No memory.\n");
43 if (value && value_len) *value = 0;
44 return 1;
45 }
46
47 len = CertRDNValueToStrW(type, value_blob, valueW, len);
48 len_mb = WideCharToMultiByte(CP_ACP, 0, valueW, len, NULL, 0, NULL, NULL);
49 if (!value || !value_len)
50 {
52 return len_mb;
53 }
54
55 ret = WideCharToMultiByte(CP_ACP, 0, valueW, len, value, value_len, NULL, NULL);
56 if (ret < len_mb)
57 {
58 value[0] = 0;
59 ret = 1;
60 }
62 return ret;
63}
DWORD WINAPI CertRDNValueToStrW(DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, LPWSTR psz, DWORD csz)
Definition: str.c:117
static WCHAR valueW[]
Definition: reg.c:1394
Definition: pdh_main.c:96

Referenced by get_cert_common_name(), and test_CertRDNValueToStrA().

◆ CertRDNValueToStrW()

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

Definition at line 117 of file str.c.

119{
120 return rdn_value_to_strW(dwValueType, pValue, psz, csz, FALSE);
121}
PWCHAR pValue

Referenced by CertRDNValueToStrA(), get_cps_str_from_qualifier(), and test_CertRDNValueToStrW().

◆ CertRegisterPhysicalStore()

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

Definition at line 1368 of file store.c.

1370{
1372 FIXME("(%p, %08lx, %s, %p, %p): stub\n", pvSystemStore, dwFlags,
1373 debugstr_w(pwszStoreName), pStoreInfo, pvReserved);
1374 else
1375 FIXME("(%s, %08lx, %s, %p, %p): stub\n", debugstr_w(pvSystemStore),
1376 dwFlags, debugstr_w(pwszStoreName), pStoreInfo, pvReserved);
1377 return FALSE;
1378}

◆ 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 3260 of file cert.c.

3262{
3263 BOOL ret;
3264 DWORD size;
3266
3267 TRACE("(%p, %s)\n", pCertContext, debugstr_a(pszUsageIdentifier));
3268
3269 size = sizeof(usage);
3270 ret = CertGetEnhancedKeyUsage(pCertContext,
3272 if (!ret && GetLastError() == ERROR_MORE_DATA)
3273 {
3275
3276 if (pUsage)
3277 {
3278 ret = CertGetEnhancedKeyUsage(pCertContext,
3280 if (ret)
3281 {
3282 if (pUsage->cUsageIdentifier)
3283 {
3284 DWORD i;
3285 BOOL found = FALSE;
3286
3287 for (i = 0; i < pUsage->cUsageIdentifier; i++)
3288 {
3289 if (!strcmp(pUsage->rgpszUsageIdentifier[i],
3290 pszUsageIdentifier))
3291 found = TRUE;
3292 if (found && i < pUsage->cUsageIdentifier - 1)
3293 pUsage->rgpszUsageIdentifier[i] =
3294 pUsage->rgpszUsageIdentifier[i + 1];
3295 }
3296 pUsage->cUsageIdentifier--;
3297 /* Remove the usage if it's empty */
3298 if (pUsage->cUsageIdentifier)
3299 ret = CertSetEnhancedKeyUsage(pCertContext, pUsage);
3300 else
3301 ret = CertSetEnhancedKeyUsage(pCertContext, NULL);
3302 }
3303 }
3304 CryptMemFree(pUsage);
3305 }
3306 else
3307 ret = FALSE;
3308 }
3309 else
3310 {
3311 /* it fit in an empty usage, therefore there's nothing to remove */
3312 ret = TRUE;
3313 }
3314 return ret;
3315}

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 1082 of file serialize.c.

1084{
1085 BOOL (*saveFunc)(HCERTSTORE, DWORD, void *);
1086 void *handle;
1087 BOOL ret, closeFile = TRUE;
1088
1089 TRACE("(%p, %08lx, %ld, %ld, %p, %08lx)\n", hCertStore,
1090 dwMsgAndCertEncodingType, dwSaveAs, dwSaveTo, pvSaveToPara, dwFlags);
1091
1092 switch (dwSaveAs)
1093 {
1095 if (dwSaveTo == CERT_STORE_SAVE_TO_MEMORY)
1096 saveFunc = CRYPT_SaveSerializedToMem;
1097 else
1098 saveFunc = CRYPT_SaveSerializedToFile;
1099 break;
1101 if (dwSaveTo == CERT_STORE_SAVE_TO_MEMORY)
1102 saveFunc = CRYPT_SavePKCSToMem;
1103 else
1104 saveFunc = CRYPT_SavePKCSToFile;
1105 break;
1106 default:
1107 WARN("unimplemented for %ld\n", dwSaveAs);
1109 return FALSE;
1110 }
1111 switch (dwSaveTo)
1112 {
1114 handle = pvSaveToPara;
1115 closeFile = FALSE;
1116 break;
1118 handle = CreateFileA(pvSaveToPara, GENERIC_WRITE, 0, NULL,
1119 CREATE_ALWAYS, 0, NULL);
1120 break;
1122 handle = CreateFileW(pvSaveToPara, GENERIC_WRITE, 0, NULL,
1123 CREATE_ALWAYS, 0, NULL);
1124 break;
1126 handle = pvSaveToPara;
1127 break;
1128 default:
1129 WARN("unimplemented for %ld\n", dwSaveTo);
1131 return FALSE;
1132 }
1133 ret = saveFunc(hCertStore, dwMsgAndCertEncodingType, handle);
1134 if (closeFile)
1136 TRACE("returning %d\n", ret);
1137 return ret;
1138}
#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:1005
static BOOL CRYPT_SaveSerializedToMem(HCERTSTORE store, DWORD dwMsgAndCertEncodingType, void *handle)
Definition: serialize.c:1048
static BOOL CRYPT_SavePKCSToMem(HCERTSTORE store, DWORD dwMsgAndCertEncodingType, void *handle)
Definition: serialize.c:878
static BOOL CRYPT_SavePKCSToFile(HCERTSTORE store, DWORD dwMsgAndCertEncodingType, void *handle)
Definition: serialize.c:976
#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 238 of file serialize.c.

240{
241 return CRYPT_SerializeStoreElement(pCertContext,
242 pCertContext->pbCertEncoded, pCertContext->cbCertEncoded,
243 CERT_CERT_PROP_ID, pCertInterface, dwFlags, FALSE, pbElement, pcbElement);
244}
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:119
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 246 of file serialize.c.

248{
249 return CRYPT_SerializeStoreElement(pCrlContext,
250 pCrlContext->pbCrlEncoded, pCrlContext->cbCrlEncoded,
251 CERT_CRL_PROP_ID, pCRLInterface, dwFlags, FALSE, pbElement, pcbElement);
252}
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 254 of file serialize.c.

256{
257 return CRYPT_SerializeStoreElement(pCtlContext,
258 pCtlContext->pbCtlEncoded, pCtlContext->cbCtlEncoded,
259 CERT_CTL_PROP_ID, pCTLInterface, dwFlags, FALSE, pbElement, pcbElement);
260}

◆ CertSetCertificateContextProperty()

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

Definition at line 838 of file cert.c.

840{
841 BOOL ret;
842
843 TRACE("(%p, %ld, %08lx, %p)\n", pCertContext, dwPropId, dwFlags, pvData);
844
845 /* Handle special cases for "read-only"/invalid prop IDs. Windows just
846 * crashes on most of these, I'll be safer.
847 */
848 switch (dwPropId)
849 {
850 case 0:
853 case CERT_CRL_PROP_ID:
854 case CERT_CTL_PROP_ID:
856 return FALSE;
857 }
858 ret = CertContext_SetProperty(cert_from_ptr(pCertContext), dwPropId, dwFlags,
859 pvData);
860 TRACE("returning %d\n", ret);
861 return ret;
862}
static BOOL CertContext_SetProperty(cert_t *cert, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: cert.c:707

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

◆ CertSetCRLContextProperty()

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

Definition at line 660 of file crl.c.

662{
663 BOOL ret;
664
665 TRACE("(%p, %ld, %08lx, %p)\n", pCRLContext, dwPropId, dwFlags, pvData);
666
667 /* Handle special cases for "read-only"/invalid prop IDs. Windows just
668 * crashes on most of these, I'll be safer.
669 */
670 switch (dwPropId)
671 {
672 case 0:
675 case CERT_CRL_PROP_ID:
676 case CERT_CTL_PROP_ID:
678 return FALSE;
679 }
680 ret = CRLContext_SetProperty(crl_from_ptr(pCRLContext), dwPropId, dwFlags, pvData);
681 TRACE("returning %d\n", ret);
682 return ret;
683}
static BOOL CRLContext_SetProperty(crl_t *crl, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: crl.c:605

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, %ld, %08lx, %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 3149 of file cert.c.

3151{
3152 BOOL ret;
3153
3154 TRACE("(%p, %p)\n", pCertContext, pUsage);
3155
3156 if (pUsage)
3157 {
3158 CRYPT_DATA_BLOB blob = { 0, NULL };
3159
3161 pUsage, CRYPT_ENCODE_ALLOC_FLAG, NULL, &blob.pbData, &blob.cbData);
3162 if (ret)
3163 {
3166 LocalFree(blob.pbData);
3167 }
3168 }
3169 else
3172 return ret;
3173}
BOOL WINAPI CertSetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
Definition: cert.c:838

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 1230 of file store.c.

1232{
1233 WINECRYPT_CERTSTORE *store = hCertStore;
1234 BOOL ret = FALSE;
1235
1236 TRACE("(%p, %ld, %08lx, %p)\n", hCertStore, dwPropId, dwFlags, pvData);
1237
1238 if (!store->properties)
1240 switch (dwPropId)
1241 {
1244 break;
1245 default:
1246 if (pvData)
1247 {
1248 const CRYPT_DATA_BLOB *blob = pvData;
1249
1251 blob->pbData, blob->cbData);
1252 }
1253 else
1254 {
1256 ret = TRUE;
1257 }
1258 }
1259 return ret;
1260}
CONTEXT_PROPERTY_LIST * ContextPropertyList_Create(void)
Definition: proplist.c:43
void ContextPropertyList_RemoveProperty(CONTEXT_PROPERTY_LIST *list, DWORD id)
Definition: proplist.c:149
BOOL ContextPropertyList_SetProperty(CONTEXT_PROPERTY_LIST *list, DWORD id, const BYTE *pbData, size_t cbData)
Definition: proplist.c:95

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 477 of file str.c.

480{
481 BOOL ret;
482 int len;
483
484 TRACE("(%08lx, %s, %08lx, %p, %p, %p, %p)\n", dwCertEncodingType,
485 debugstr_a(pszX500), dwStrType, pvReserved, pbEncoded, pcbEncoded,
486 ppszError);
487
488 len = MultiByteToWideChar(CP_ACP, 0, pszX500, -1, NULL, 0);
489 if (len)
490 {
491 LPWSTR x500, errorStr;
492
493 if ((x500 = CryptMemAlloc(len * sizeof(WCHAR))))
494 {
495 MultiByteToWideChar(CP_ACP, 0, pszX500, -1, x500, len);
496 ret = CertStrToNameW(dwCertEncodingType, x500, dwStrType,
497 pvReserved, pbEncoded, pcbEncoded,
498 ppszError ? (LPCWSTR *)&errorStr : NULL);
499 if (ppszError)
500 {
501 if (!ret)
502 {
503 LONG i;
504
505 *ppszError = pszX500;
506 for (i = 0; i < errorStr - x500; i++)
507 *ppszError = CharNextA(*ppszError);
508 }
509 else
510 *ppszError = NULL;
511 }
512 CryptMemFree(x500);
513 }
514 else
515 {
517 ret = FALSE;
518 }
519 }
520 else
521 {
523 if (ppszError)
524 *ppszError = pszX500;
525 ret = FALSE;
526 }
527 return ret;
528}
BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500, DWORD dwStrType, void *pvReserved, BYTE *pbEncoded, DWORD *pcbEncoded, LPCWSTR *ppszError)
Definition: str.c:785
#define MultiByteToWideChar
Definition: compat.h:110
LPSTR WINAPI CharNextA(const char *ptr)
Definition: string.c:1151
const uint16_t * LPCWSTR
Definition: typedefs.h:57
#define CRYPT_E_INVALID_X500_STRING
Definition: winerror.h:4441

Referenced by test_CertStrToNameA().

◆ CertStrToNameW()

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

Definition at line 785 of file str.c.

788{
789 CERT_NAME_INFO info = { 0, NULL };
790 LPCWSTR str;
791 struct KeynameKeeper keeper;
792 DWORD i;
793 BOOL ret = TRUE;
794
795 TRACE("(%08lx, %s, %08lx, %p, %p, %p, %p)\n", dwCertEncodingType,
796 debugstr_w(pszX500), dwStrType, pvReserved, pbEncoded, pcbEncoded,
797 ppszError);
798
800 str = pszX500;
801 while (str && *str && ret)
802 {
803 struct X500TokenW token;
804
805 ret = CRYPT_GetNextKeyW(str, &token, ppszError);
806 if (ret && token.start)
807 {
808 PCCRYPT_OID_INFO keyOID;
809
811 keyOID = CryptFindOIDInfo(CRYPT_OID_INFO_NAME_KEY, keeper.keyName,
813 if (!keyOID)
814 {
815 if (ppszError)
816 *ppszError = token.start;
818 ret = FALSE;
819 }
820 else
821 {
822 str = token.end;
823 while (iswspace(*str))
824 str++;
825 if (*str != '=')
826 {
827 if (ppszError)
828 *ppszError = str;
830 ret = FALSE;
831 }
832 else
833 {
834 LPCWSTR sep;
835 WCHAR sep_used;
836
837 str++;
838 if (dwStrType & CERT_NAME_STR_COMMA_FLAG)
839 sep = L",";
840 else if (dwStrType & CERT_NAME_STR_SEMICOLON_FLAG)
841 sep = L";";
842 else if (dwStrType & CERT_NAME_STR_CRLF_FLAG)
843 sep = L"\r\n";
844 else if (dwStrType & CERT_NAME_STR_NO_PLUS_FLAG)
845 sep = L",;\r\n";
846 else
847 sep = L"+,;\r\n";
848 ret = CRYPT_GetNextValueW(str, dwStrType, sep, &sep_used, &token,
849 ppszError);
850 if (ret)
851 {
852 str = token.end;
853 /* if token.end points to the separator, skip it */
854 if (str && sep_used && *str == sep_used) str++;
855
856 ret = CRYPT_ValueToRDN(dwCertEncodingType, &info,
857 keyOID, &token, dwStrType, ppszError);
858 }
859 }
860 }
861 }
862 }
864 if (ret)
865 {
866 if (ppszError)
867 *ppszError = NULL;
868 ret = CryptEncodeObjectEx(dwCertEncodingType, X509_NAME, &info,
869 0, NULL, pbEncoded, pcbEncoded);
870 }
871 for (i = 0; i < info.cRDN; i++)
872 {
873 DWORD j;
874
875 for (j = 0; j < info.rgRDN[i].cRDNAttr; j++)
876 LocalFree(info.rgRDN[i].rgRDNAttr[j].Value.pbData);
877 CryptMemFree(info.rgRDN[i].rgRDNAttr);
878 }
879 CryptMemFree(info.rgRDN);
880 return ret;
881}
static void CRYPT_FreeKeynameKeeper(struct KeynameKeeper *keeper)
Definition: str.c:543
static BOOL CRYPT_GetNextValueW(LPCWSTR str, DWORD dwFlags, LPCWSTR separators, WCHAR *separator_used, struct X500TokenW *token, LPCWSTR *ppszError)
Definition: str.c:600
static void CRYPT_InitializeKeynameKeeper(struct KeynameKeeper *keeper)
Definition: str.c:537
static void CRYPT_KeynameKeeperFromTokenW(struct KeynameKeeper *keeper, const struct X500TokenW *key)
Definition: str.c:555
static BOOL CRYPT_ValueToRDN(DWORD dwCertEncodingType, PCERT_NAME_INFO info, PCCRYPT_OID_INFO keyOID, struct X500TokenW *value, DWORD dwStrType, LPCWSTR *ppszError)
Definition: str.c:733
static BOOL CRYPT_GetNextKeyW(LPCWSTR str, struct X500TokenW *token, LPCWSTR *ppszError)
Definition: str.c:571
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 iswspace(_c)
Definition: ctype.h:669
#define CERT_NAME_STR_NO_PLUS_FLAG
Definition: wincrypt.h:3646
#define CRYPT_OID_INFO_NAME_KEY
Definition: wincrypt.h:1956
#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_COMMA_FLAG
Definition: wincrypt.h:3649

Referenced by CertStrToNameA(), test_CertStrToNameW(), and testGetIssuerCert().

◆ CertUnregisterPhysicalStore()

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

Definition at line 1380 of file store.c.

1382{
1383 FIXME("(%p, %08lx, %s): stub\n", pvSystemStore, dwFlags, debugstr_w(pwszStoreName));
1384 return TRUE;
1385}

◆ CertUnregisterSystemStore()

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

Definition at line 1410 of file store.c.

1411{
1412 HCERTSTORE hstore;
1413
1415 {
1416 FIXME("(%p, %08lx): flag not supported\n", pvSystemStore, dwFlags);
1417 return FALSE;
1418 }
1419 TRACE("(%s, %08lx)\n", debugstr_w(pvSystemStore), dwFlags);
1420
1422 if (hstore == NULL)
1423 return FALSE;
1424
1426 if (hstore == NULL && GetLastError() == 0)
1427 return TRUE;
1428
1429 return FALSE;
1430}
#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 3806 of file chain.c.

3809{
3810 static HCRYPTOIDFUNCSET set = NULL;
3811 BOOL ret = FALSE;
3813 HCRYPTOIDFUNCADDR hFunc = NULL;
3814
3815 TRACE("(%s, %p, %p, %p)\n", debugstr_a(szPolicyOID), pChainContext,
3816 pPolicyPara, pPolicyStatus);
3817 if (TRACE_ON(chain))
3818 dump_policy_para(pPolicyPara);
3819
3820 if (IS_INTOID(szPolicyOID))
3821 {
3822 switch (LOWORD(szPolicyOID))
3823 {
3825 verifyPolicy = verify_base_policy;
3826 break;
3828 verifyPolicy = verify_authenticode_policy;
3829 break;
3831 verifyPolicy = verify_ssl_policy;
3832 break;
3834 verifyPolicy = verify_basic_constraints_policy;
3835 break;
3837 verifyPolicy = verify_ms_root_policy;
3838 break;
3839 default:
3840 FIXME("unimplemented for %d\n", LOWORD(szPolicyOID));
3841 }
3842 }
3843 if (!verifyPolicy)
3844 {
3845 if (!set)
3849 (void **)&verifyPolicy, &hFunc);
3850 }
3851 if (verifyPolicy)
3852 ret = verifyPolicy(szPolicyOID, pChainContext, pPolicyPara,
3853 pPolicyStatus);
3854 if (hFunc)
3856 TRACE("returning %d (%08lx)\n", ret, pPolicyStatus->dwError);
3857 return ret;
3858}
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:3738
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:3450
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:3127
static void dump_policy_para(PCERT_CHAIN_POLICY_PARA para)
Definition: chain.c:3796
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:2994
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:3086
BOOL(WINAPI * CertVerifyCertificateChainPolicyFunc)(LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
Definition: chain.c:3792
HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet(LPCSTR pszFuncName, DWORD dwFlags)
Definition: oid.c:103
BOOL WINAPI CryptGetOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCSTR pszOID, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
Definition: oid.c:375
BOOL WINAPI CryptFreeOIDFunctionAddress(HCRYPTOIDFUNCADDR hFuncAddr, DWORD dwFlags)
Definition: oid.c:456
#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 checkChainPolicyStatus(), netconn_verify_cert(), SoftpubAuthenticode(), testVerifyCertChainPolicy(), and WINTRUST_DefaultPolicy().

◆ CertVerifyCRLRevocation()

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

Definition at line 856 of file crl.c.

858{
859 DWORD i;
861
862 TRACE("(%08lx, %p, %ld, %p)\n", dwCertEncodingType, pCertId, cCrlInfo,
863 rgpCrlInfo);
864
865 for (i = 0; !entry && i < cCrlInfo; i++)
866 entry = CRYPT_FindCertificateInCRL(pCertId, rgpCrlInfo[i]);
867 return entry == NULL;
868}
Definition: wincrypt.h:496

Referenced by CertVerifySubjectCertificateContext(), and testVerifyCRLRevocation().

◆ CertVerifyCRLTimeValidity()

WINCRYPT32API LONG WINAPI CertVerifyCRLTimeValidity ( LPFILETIME  pTimeToVerify,
PCRL_INFO  pCrlInfo 
)

Definition at line 870 of file crl.c.

872{
873 FILETIME fileTime;
874 LONG ret;
875
876 if (!pTimeToVerify)
877 {
878 GetSystemTimeAsFileTime(&fileTime);
879 pTimeToVerify = &fileTime;
880 }
881 if ((ret = CompareFileTime(pTimeToVerify, &pCrlInfo->ThisUpdate)) >= 0)
882 {
883 ret = CompareFileTime(pTimeToVerify, &pCrlInfo->NextUpdate);
884 if (ret < 0)
885 ret = 0;
886 }
887 return ret;
888}
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 3864 of file cert.c.

3868{
3869 FIXME("(0x%lx, %ld, %p, %p, 0x%lx, %p, %p): stub\n", dwEncodingType,
3870 dwSubjectType, pvSubject, pSubjectUsage, dwFlags, pVerifyUsagePara,
3871 pVerifyUsageStatus);
3873 return FALSE;
3874}
#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 2005 of file cert.c.

2008{
2009 BOOL ret;
2010
2011 TRACE("(%08lx, %ld, %ld, %p, %08lx, %p, %p)\n", dwEncodingType, dwRevType,
2012 cContext, rgpvContext, dwFlags, pRevPara, pRevStatus);
2013
2014 if (pRevStatus->cbSize != sizeof(OLD_CERT_REVOCATION_STATUS) &&
2015 pRevStatus->cbSize != sizeof(CERT_REVOCATION_STATUS))
2016 {
2018 return FALSE;
2019 }
2020 if (cContext)
2021 {
2022 static HCRYPTOIDFUNCSET set = NULL;
2023 DWORD size;
2024
2025 if (!set)
2027 ret = CryptGetDefaultOIDDllList(set, dwEncodingType, NULL, &size);
2028 if (ret)
2029 {
2030 if (size == 1)
2031 {
2032 /* empty list */
2034 ret = FALSE;
2035 }
2036 else
2037 {
2038 LPWSTR dllList = CryptMemAlloc(size * sizeof(WCHAR)), ptr;
2039
2040 if (dllList)
2041 {
2042 ret = CryptGetDefaultOIDDllList(set, dwEncodingType,
2043 dllList, &size);
2044 if (ret)
2045 {
2046 for (ptr = dllList; ret && *ptr;
2047 ptr += lstrlenW(ptr) + 1)
2048 {
2050 HCRYPTOIDFUNCADDR hFunc;
2051
2053 dwEncodingType, ptr, 0, (void **)&func, &hFunc);
2054 if (ret)
2055 {
2056 ret = func(dwEncodingType, dwRevType, cContext,
2057 rgpvContext, dwFlags, pRevPara, pRevStatus);
2059 }
2060 }
2061 }
2062 CryptMemFree(dllList);
2063 }
2064 else
2065 {
2067 ret = FALSE;
2068 }
2069 }
2070 }
2071 }
2072 else
2073 ret = TRUE;
2074 return ret;
2075}
BOOL(WINAPI * CertVerifyRevocationFunc)(DWORD, DWORD, DWORD, void **, DWORD, PCERT_REVOCATION_PARA, PCERT_REVOCATION_STATUS)
Definition: cert.c:2002
BOOL WINAPI CryptGetDefaultOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCWSTR pwszDll, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
Definition: oid.c:499
BOOL WINAPI CryptGetDefaultOIDDllList(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPWSTR pwszDllList, DWORD *pcchDllList)
Definition: oid.c:182
#define lstrlenW
Definition: compat.h:750
GLenum func
Definition: glext.h:6028
static PVOID ptr
Definition: dispmode.c:27
#define CRYPT_OID_VERIFY_REVOCATION_FUNC
Definition: wincrypt.h:2666
#define CRYPT_E_NO_REVOCATION_DLL
Definition: winerror.h:4434

Referenced by CRYPT_VerifyChainRevocation(), and testVerifyRevocation().

◆ CertVerifySubjectCertificateContext()

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

Definition at line 1916 of file cert.c.

1918{
1919 static const DWORD supportedFlags = CERT_STORE_REVOCATION_FLAG |
1921
1922 if (*pdwFlags & ~supportedFlags)
1923 {
1925 return FALSE;
1926 }
1927 if (*pdwFlags & CERT_STORE_REVOCATION_FLAG)
1928 {
1929 DWORD flags = 0;
1930 PCCRL_CONTEXT crl = CertGetCRLFromStore(pSubject->hCertStore, pSubject,
1931 NULL, &flags);
1932
1933 /* FIXME: what if the CRL has expired? */
1934 if (crl)
1935 {
1937 pSubject->pCertInfo, 1, (PCRL_INFO *)&crl->pCrlInfo))
1938 *pdwFlags &= CERT_STORE_REVOCATION_FLAG;
1939 }
1940 else
1941 *pdwFlags |= CERT_STORE_NO_CRL_FLAG;
1942 }
1943 if (*pdwFlags & CERT_STORE_TIME_VALIDITY_FLAG)
1944 {
1945 if (0 == CertVerifyTimeValidity(NULL, pSubject->pCertInfo))
1946 *pdwFlags &= ~CERT_STORE_TIME_VALIDITY_FLAG;
1947 }
1948 if (*pdwFlags & CERT_STORE_SIGNATURE_FLAG)
1949 {
1951 CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT, (void *)pSubject,
1952 CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT, (void *)pIssuer, 0, NULL))
1953 *pdwFlags &= ~CERT_STORE_SIGNATURE_FLAG;
1954 }
1955 return TRUE;
1956}
LONG WINAPI CertVerifyTimeValidity(LPFILETIME pTimeToVerify, PCERT_INFO pCertInfo)
Definition: cert.c:2229
PCCRL_CONTEXT WINAPI CertGetCRLFromStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pIssuerContext, PCCRL_CONTEXT pPrevCrlContext, DWORD *pdwFlags)
Definition: crl.c:431
BOOL WINAPI CertVerifyCRLRevocation(DWORD dwCertEncodingType, PCERT_INFO pCertId, DWORD cCrlInfo, PCRL_INFO rgpCrlInfo[])
Definition: crl.c:856
#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 2229 of file cert.c.

2231{
2232 FILETIME fileTime;
2233 LONG ret;
2234
2235 if (!pTimeToVerify)
2236 {
2237 GetSystemTimeAsFileTime(&fileTime);
2238 pTimeToVerify = &fileTime;
2239 }
2240 if ((ret = CompareFileTime(pTimeToVerify, &pCertInfo->NotBefore)) >= 0)
2241 {
2242 ret = CompareFileTime(pTimeToVerify, &pCertInfo->NotAfter);
2243 if (ret < 0)
2244 ret = 0;
2245 }
2246 return ret;
2247}
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 2249 of file cert.c.

2251{
2252 TRACE("(%p, %p)\n", pSubjectInfo, pIssuerInfo);
2253
2254 return CertVerifyTimeValidity(&pSubjectInfo->NotBefore, pIssuerInfo) == 0
2255 && CertVerifyTimeValidity(&pSubjectInfo->NotAfter, pIssuerInfo) == 0;
2256}

◆ 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 920 of file cert.c.

923{
924 BOOL ret = FALSE, cache = FALSE;
926 CERT_KEY_CONTEXT keyContext;
927 DWORD size;
928 PCCERT_CONTEXT cert_in_store = NULL;
929
930 TRACE("(%p, %08lx, %p, %p, %p, %p)\n", pCert, dwFlags, pvReserved,
931 phCryptProv, pdwKeySpec, pfCallerFreeProv);
932
934 {
935 DWORD size = 0;
936
939
940 if (!ret)
941 {
942 HCERTSTORE hstore;
943
946 if (hstore)
947 {
948 cert_in_store = CertFindCertificateInStore(hstore, pCert->dwCertEncodingType, 0,
949 CERT_FIND_EXISTING, pCert, NULL);
950 if (cert_in_store)
951 {
953 if (ret)
954 pCert = cert_in_store;
955 else
956 {
957 CertFreeCertificateContext(cert_in_store);
958 cert_in_store = NULL;
959 }
960 }
961
962 CertCloseStore(hstore, 0);
963 }
964 }
965
966 if (ret)
967 {
971 if (ret)
973 }
974 }
976 cache = TRUE;
977 *phCryptProv = 0;
978 if (cache)
979 {
980 size = sizeof(keyContext);
982 &keyContext, &size);
983 if (ret)
984 {
985 *phCryptProv = keyContext.hCryptProv;
986 if (pdwKeySpec)
987 *pdwKeySpec = keyContext.dwKeySpec;
988 if (pfCallerFreeProv)
989 *pfCallerFreeProv = FALSE;
990 }
991 }
992 if (!*phCryptProv)
993 {
995 &keyContext.hCryptProv, &keyContext.dwKeySpec);
996 if (ret)
997 {
998 *phCryptProv = keyContext.hCryptProv;
999 if (pdwKeySpec)
1000 *pdwKeySpec = keyContext.dwKeySpec;
1001 if (cache)
1002 {
1003 keyContext.cbSize = sizeof(keyContext);
1005 CERT_KEY_CONTEXT_PROP_ID, 0, &keyContext))
1006 {
1007 if (pfCallerFreeProv)
1008 *pfCallerFreeProv = FALSE;
1009 }
1010 }
1011 else
1012 {
1013 if (pfCallerFreeProv)
1014 *pfCallerFreeProv = TRUE;
1015 }
1016 }
1017 }
1019 if (cert_in_store)
1020 CertFreeCertificateContext(cert_in_store);
1021 if (ret) SetLastError(0);
1022 return ret;
1023}
static BOOL CRYPT_AcquirePrivateKeyFromProvInfo(PCCERT_CONTEXT pCert, DWORD dwFlags, PCRYPT_KEY_PROV_INFO info, HCRYPTPROV *phCryptProv, DWORD *pdwKeySpec)
Definition: cert.c:868
Definition: cache.c:49
#define CERT_SET_KEY_CONTEXT_PROP_ID
Definition: wincrypt.h:3755
#define CERT_FIND_EXISTING
Definition: wincrypt.h:3052
#define CRYPT_ACQUIRE_USE_PROV_INFO_FLAG
Definition: wincrypt.h:3762
#define CRYPT_ACQUIRE_CACHE_FLAG
Definition: wincrypt.h:3761

Referenced by CryptSignMessage(), and testAcquireCertPrivateKey().

◆ CryptAcquireContextA()

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

Definition at line 571 of file crypt.c.

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

Referenced by clean_up_aes_environment(), clean_up_base_environment(), clean_up_environment(), CRYPT_CreateKeyProv(), init_aes_environment(), init_base_environment(), init_environment(), test_acquire_context(), test_container_sd(), test_CryptReleaseContext(), test_decode_msg_get_param(), test_encrypt_message(), test_enveloped_msg_open(), test_hashes(), test_incorrect_api_usage(), test_key_initialization(), test_machine_guid(), test_null_provider(), test_rc2_keylen(), 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_verify_sig(), test_VerifySignature(), testAcquireCertPrivateKey(), testCertSigs(), testCreateSelfSignCert(), and testPortPublicKeyInfo().

◆ CryptAcquireContextW()

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

Definition at line 362 of file crypt.c.

364{
365 PCRYPTPROV pProv = NULL;
366 HKEY key;
367 PWSTR imagepath = NULL, keyname = NULL, provname = NULL, temp = NULL;
368 PSTR provnameA = NULL, pszContainerA = NULL;
369 DWORD keytype, type, len;
370 ULONG r;
371
372 TRACE("(%p, %s, %s, %ld, %08lx)\n", phProv, debugstr_w(pszContainer),
373 debugstr_w(pszProvider), dwProvType, dwFlags);
374
375 if (dwProvType < 1 || dwProvType > MAXPROVTYPES)
376 {
378 return FALSE;
379 }
380
381 if (!phProv)
382 {
384 return FALSE;
385 }
386
387 /* Make sure the MachineGuid value exists */
389
390 if (!pszProvider || !*pszProvider)
391 {
392 /* No CSP name specified so try the user default CSP first
393 * then try the machine default CSP
394 */
395 if ( !(keyname = CRYPT_GetTypeKeyName(dwProvType, TRUE)) ) {
396 TRACE("No provider registered for crypto provider type %ld.\n", dwProvType);
398 return FALSE;
399 }
400 if (RegOpenKeyW(HKEY_CURRENT_USER, keyname, &key))
401 {
402 CRYPT_Free(keyname);
403 if ( !(keyname = CRYPT_GetTypeKeyName(dwProvType, FALSE)) ) {
404 TRACE("No type registered for crypto provider type %ld.\n", dwProvType);
407 goto error;
408 }
409 if (RegOpenKeyW(HKEY_LOCAL_MACHINE, keyname, &key)) {
410 TRACE("Did not find registry entry of crypto provider for %s.\n", debugstr_w(keyname));
411 CRYPT_Free(keyname);
414 goto error;
415 }
416 }
417 CRYPT_Free(keyname);
418 r = RegQueryValueExW(key, L"Name", NULL, &keytype, NULL, &len);
419 if( r != ERROR_SUCCESS || !len || keytype != REG_SZ)
420 {
421 TRACE("error %ld reading size of 'Name' from registry\n", r );
424 goto error;
425 }
426 if(!(provname = CRYPT_Alloc(len)))
427 {
430 goto error;
431 }
432 r = RegQueryValueExW(key, L"Name", NULL, NULL, (LPBYTE)provname, &len);
433 if( r != ERROR_SUCCESS )
434 {
435 TRACE("error %ld reading 'Name' from registry\n", r );
438 goto error;
439 }
441 } else {
442 if ( !(provname = CRYPT_Alloc((lstrlenW(pszProvider) +1)*sizeof(WCHAR))) )
443 {
445 goto error;
446 }
447 lstrcpyW(provname, pszProvider);
448 }
449
450 keyname = CRYPT_GetProvKeyName(provname);
451 r = RegOpenKeyW(HKEY_LOCAL_MACHINE, keyname, &key);
452 CRYPT_Free(keyname);
453 if (r != ERROR_SUCCESS)
454 {
456 goto error;
457 }
458 len = sizeof(DWORD);
459 r = RegQueryValueExW(key, L"Type", NULL, NULL, (BYTE*)&type, &len);
460 if (r != ERROR_SUCCESS)
461 {
463 goto error;
464 }
465 if (type != dwProvType)
466 {
467 TRACE("Crypto provider has wrong type (%ld vs expected %ld).\n", type, dwProvType);
469 goto error;
470 }
471
472 r = RegQueryValueExW(key, L"Image Path", NULL, &keytype, NULL, &len);
473 if ( r != ERROR_SUCCESS || keytype != REG_SZ)
474 {
475 TRACE("error %ld reading size of 'Image Path' from registry\n", r );
478 goto error;
479 }
480 if (!(temp = CRYPT_Alloc(len)))
481 {
484 goto error;
485 }
486 r = RegQueryValueExW(key, L"Image Path", NULL, NULL, (LPBYTE)temp, &len);
487 if( r != ERROR_SUCCESS )
488 {
489 TRACE("error %ld reading 'Image Path' from registry\n", r );
492 goto error;
493 }
496 if ( !(imagepath = CRYPT_Alloc(len*sizeof(WCHAR))) )
497 {
499 goto error;
500 }
501 if (!ExpandEnvironmentStringsW(temp, imagepath, len))
502 {
503 /* ExpandEnvironmentStrings will call SetLastError */
504 goto error;
505 }
506 pProv = CRYPT_LoadProvider(imagepath);
507 if (!pProv) {
508 /* CRYPT_LoadProvider calls SetLastError */
509 goto error;
510 }
511 pProv->pVTable->dwProvType = dwProvType;
512 if(!CRYPT_UnicodeToANSI(provname, &provnameA, 0))
513 {
514 /* CRYPT_UnicodeToANSI calls SetLastError */
515 goto error;
516 }
517 pProv->pVTable->pszProvName = provnameA;
518 if(!CRYPT_UnicodeToANSI(pszContainer, &pszContainerA, 0))
519 {
520 /* CRYPT_UnicodeToANSI calls SetLastError */
521 goto error;
522 }
523 if (pProv->pFuncs->pCPAcquireContext(&pProv->hPrivate, pszContainerA, dwFlags, pProv->pVTable))
524 {
525 /* MSDN: When this flag is set, the value returned in phProv is undefined,
526 * and thus, the CryptReleaseContext function need not be called afterwards.
527 * Therefore, we must clean up everything now.
528 */
530 {
531 *phProv = 0;
532 pProv->dwMagic = 0;
533 FreeLibrary(pProv->hModule);
534 CRYPT_Free(provnameA);
535 CRYPT_Free(pProv->pVTable);
536 CRYPT_Free(pProv->pFuncs);
537 CRYPT_Free(pProv);
538 } else {
539 *phProv = (HCRYPTPROV)pProv;
540 }
541 CRYPT_Free(pszContainerA);
542 CRYPT_Free(provname);
544 CRYPT_Free(imagepath);
545 return TRUE;
546 }
547 /* FALLTHROUGH TO ERROR IF FALSE - CSP internal error! */
548error:
549 if (pProv)
550 {
551 pProv->dwMagic = 0;
552 if (pProv->hModule)
553 FreeLibrary(pProv->hModule);
554 CRYPT_Free(pProv->pVTable);
555 CRYPT_Free(pProv->pFuncs);
556 CRYPT_Free(pProv);
557 }
558 CRYPT_Free(pszContainerA);
559 CRYPT_Free(provnameA);
560 CRYPT_Free(provname);
562 CRYPT_Free(imagepath);
563 return FALSE;
564}
#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:63
static PWSTR CRYPT_GetProvKeyName(PCWSTR pProvName)
Definition: crypt.c:101
static PCRYPTPROV CRYPT_LoadProvider(PCWSTR pImage)
Definition: crypt.c:223
static PWSTR CRYPT_GetTypeKeyName(DWORD dwType, BOOL user)
Definition: crypt.c:116
static BOOL CRYPT_UnicodeToANSI(LPCWSTR wstr, LPSTR *str, int strsize)
Definition: crypt.c:144
static void CRYPT_CreateMachineGuid(void)
Definition: crypt.c:296
#define MAXPROVTYPES
Definition: crypt.h:89
#define FreeLibrary(x)
Definition: compat.h:748
#define lstrcpyW
Definition: compat.h:749
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
Definition: environ.c:492
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define REG_SZ
Definition: layer.c:22
#define error(str)
Definition: mkdosfs.c:1605
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:4267
#define NTE_KEYSET_NOT_DEF
Definition: winerror.h:4272
#define NTE_PROV_TYPE_ENTRY_BAD
Definition: winerror.h:4271
#define NTE_PROV_TYPE_NO_MATCH
Definition: winerror.h:4274
#define NTE_PROV_TYPE_NOT_DEF
Definition: winerror.h:4270
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by catadmin_calc_hash_from_filehandle(), CertCreateSelfSignCertificate(), create_websocket_accept(), CRYPT_AcquirePrivateKeyFromProvInfo(), CRYPT_GetDefaultProvider(), CryptAcquireContextA(), CryptCATAdminEnumCatalogFromHash(), CryptProtectData(), CryptUnprotectData(), DllRegisterServer(), export_acquire_private_key(), find_key_prov_info_in_provider(), hash_file(), I_CryptGetDefaultCryptProv(), import_key(), key_prov_info_matches_cert(), open_cached_revocation_file(), read_trusted_roots_from_known_locations(), save_pfx(), sha1_hash(), SOFTPUB_VerifyImageHash(), START_TEST(), testAcquireSecurityContext(), testCreateSelfSignCert(), and verify_signed_ocsp_response_info().

◆ CryptBinaryToStringA()

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

Definition at line 302 of file base64.c.

304{
306
307 TRACE("(%p, %ld, %08lx, %p, %p)\n", pbBinary, cbBinary, dwFlags, pszString,
308 pcchString);
309
310 if (!pbBinary)
311 {
313 return FALSE;
314 }
315 if (!pcchString)
316 {
318 return FALSE;
319 }
320
321 switch (dwFlags & 0x0fffffff)
322 {
325 break;
331 break;
334 break;
335 case CRYPT_STRING_HEX:
339 FIXME("Unimplemented type %ld\n", dwFlags & 0x0fffffff);
340 /* fall through */
341 default:
343 return FALSE;
344 }
345 return encoder(pbBinary, cbBinary, dwFlags, pszString, pcchString);
346}
BOOL(* BinaryToStringAFunc)(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString)
Definition: base64.c:54
static BOOL EncodeBinaryToBinaryA(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString)
Definition: base64.c:59
static BOOL BinaryToHexRawA(const BYTE *bin, DWORD nbin, DWORD flags, char *str, DWORD *nstr)
Definition: base64.c:245
static BOOL BinaryToBase64A(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString)
Definition: base64.c:166
#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_HEXRAW
Definition: wincrypt.h:3143
#define CRYPT_STRING_HEXASCIIADDR
Definition: wincrypt.h:3142

Referenced by create_websocket_accept(), 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 644 of file base64.c.

646{
648
649 TRACE("(%p, %ld, %08lx, %p, %p)\n", pbBinary, cbBinary, dwFlags, pszString,
650 pcchString);
651
652 if (!pbBinary)
653 {
655 return FALSE;
656 }
657 if (!pcchString)
658 {
660 return FALSE;
661 }
662
663 switch (dwFlags & 0x0fffffff)
664 {
667 break;
673 break;
676 break;
677 case CRYPT_STRING_HEX:
679 break;
683 FIXME("Unimplemented type %ld\n", dwFlags & 0x0fffffff);
684 /* fall through */
685 default:
687 return FALSE;
688 }
689 return encoder(pbBinary, cbBinary, dwFlags, pszString, pcchString);
690}
static BOOL BinaryToHexRawW(const BYTE *bin, DWORD nbin, DWORD flags, LPWSTR str, DWORD *nstr)
Definition: base64.c:525
static BOOL EncodeBinaryToBinaryW(const BYTE *in_buf, DWORD in_len, DWORD flags, WCHAR *out_buf, DWORD *out_len)
Definition: base64.c:348
static BOOL binary_to_hexW(const BYTE *bin, DWORD nbin, DWORD flags, LPWSTR str, DWORD *nstr)
Definition: base64.c:571
static BOOL BinaryToBase64W(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString)
Definition: base64.c:449
BOOL(* BinaryToStringWFunc)(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString)
Definition: base64.c:56

Referenced by build_request_path(), 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 615 of file crypt.c.

616{
618
619 TRACE("(0x%Ix, %p, %08lx)\n", hProv, pdwReserved, dwFlags);
620
621 if (!pProv)
622 return FALSE;
623
625 return TRUE;
626}
static PCRYPTPROV provider_from_handle(HCRYPTPROV handle)
Definition: crypt.c:86
LONG refcount
Definition: crypt.h:68

Referenced by I_CryptGetDefaultCryptProv(), test_CryptReleaseContext(), and test_incorrect_api_usage().

◆ 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 715 of file crypt.c.

717{
719 PCRYPTPROV prov;
721
722 TRACE("(0x%Ix, 0x%x, 0x%Ix, %08lx, %p)\n", hProv, Algid, hKey, dwFlags, phHash);
723
724 if (!(prov = provider_from_handle(hProv)))
725 return FALSE;
726
727 if (hKey && !(key = key_from_handle(hKey)))
728 return FALSE;
729
730 if (!phHash)
731 {
733 return FALSE;
734 }
735 if (dwFlags)
736 {
738 return FALSE;
739 }
740 if ( !(hash = CRYPT_Alloc(sizeof(CRYPTHASH))) )
741 {
743 return FALSE;
744 }
745
746 hash->pProvider = prov;
747 hash->dwMagic = MAGIC_CRYPTHASH;
748 if (prov->pFuncs->pCPCreateHash(prov->hPrivate, Algid,
749 key ? key->hPrivate : 0, 0, &hash->hPrivate))
750 {
751 *phHash = (HCRYPTHASH)hash;
752 return TRUE;
753 }
754
755 /* CSP error! */
756 hash->dwMagic = 0;
758 *phHash = 0;
759 return FALSE;
760}
static PCRYPTKEY key_from_handle(HCRYPTKEY handle)
Definition: crypt.c:96
#define MAGIC_CRYPTHASH
Definition: crypt.h:63
Definition: _hash_fun.h:40
ULONG_PTR HCRYPTHASH
Definition: wincrypt.h:59

Referenced by catadmin_calc_hash_from_filehandle(), CDecodeMsg_FinalizeHashedContent(), CHashEncodeMsg_Open(), create_silly_rename(), create_websocket_accept(), CRYPT_VerifySignature(), CryptHashCertificate(), CryptHashPublicKeyInfo(), CryptHashToBeSigned(), CryptProtectData(), CryptSignCertificate(), CryptUnprotectData(), CSignedMsgData_ConstructSignerHandles(), derive_key(), hash_dib(), hash_file(), load_encryption_key(), nfs41_client_owner(), open_cached_revocation_file(), rdssl_hash_clear(), rdssl_hash_info_create(), rdssl_hmac_md5(), read_trusted_roots_from_known_locations(), sha1_hash(), SOFTPUB_VerifyImageHash(), test_hashes(), test_hmac(), test_import_hmac(), test_incorrect_api_usage(), test_key_derivation(), test_mac(), test_rc2(), test_rc4(), test_schannel_provider(), test_sha2(), test_verify_sig(), test_verify_signature(), test_VerifySignature(), verify_signed_ocsp_response_info(), 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 6990 of file decode.c.

6993{
6994 return CryptDecodeObjectEx(dwCertEncodingType, lpszStructType,
6995 pbEncoded, cbEncoded, dwFlags, NULL, pvStructInfo, pcbStructInfo);
6996}

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 6998 of file decode.c.

7001{
7002 BOOL ret = FALSE;
7003 CryptDecodeObjectExFunc decodeFunc;
7004 HCRYPTOIDFUNCADDR hFunc = NULL;
7005
7006 TRACE_(crypt)("(0x%08lx, %s, %p, %ld, 0x%08lx, %p, %p, %p)\n",
7007 dwCertEncodingType, debugstr_a(lpszStructType), pbEncoded,
7008 cbEncoded, dwFlags, pDecodePara, pvStructInfo, pcbStructInfo);
7009
7010 if (!pvStructInfo && !pcbStructInfo)
7011 {
7013 return FALSE;
7014 }
7015 if (cbEncoded > MAX_ENCODED_LEN)
7016 {
7017 FIXME_(crypt)("Returning CRYPT_E_ASN1_LARGE, cbEncoded %lu.\n", cbEncoded);
7019 return FALSE;
7020 }
7021
7024 {
7025 if (!pvStructInfo)
7026 {
7028 return FALSE;
7029 }
7030 *(BYTE **)pvStructInfo = NULL;
7031 }
7032 decodeFunc = CRYPT_GetBuiltinDecoder(dwCertEncodingType, lpszStructType);
7033 if (!decodeFunc)
7034 {
7035 TRACE_(crypt)("OID %s not found or unimplemented, looking for DLL\n",
7036 debugstr_a(lpszStructType));
7037 decodeFunc = CRYPT_LoadDecoderExFunc(dwCertEncodingType, lpszStructType,
7038 &hFunc);
7039 if (!decodeFunc)
7040 {
7041 if (IS_INTOID(lpszStructType))
7042 FIXME("Unimplemented decoder for lpszStructType OID %d\n", LOWORD(lpszStructType));
7043 else
7044 FIXME("Unsupported decoder for lpszStructType %s\n", lpszStructType);
7045 }
7046 }
7047 if (decodeFunc)
7048 ret = decodeFunc(dwCertEncodingType, lpszStructType, pbEncoded,
7049 cbEncoded, dwFlags, pDecodePara, pvStructInfo, pcbStructInfo);
7050 else
7051 {
7052 CryptDecodeObjectFunc pCryptDecodeObject =
7053 CRYPT_LoadDecoderFunc(dwCertEncodingType, lpszStructType, &hFunc);
7054
7055 /* Try CryptDecodeObject function. Don't call CryptDecodeObject
7056 * directly, as that could cause an infinite loop.
7057 */
7058 if (pCryptDecodeObject)
7059 {
7061 {
7062 ret = pCryptDecodeObject(dwCertEncodingType, lpszStructType,
7063 pbEncoded, cbEncoded, dwFlags, NULL, pcbStructInfo);
7064 if (ret && (ret = CRYPT_DecodeEnsureSpace(dwFlags, pDecodePara,
7065 pvStructInfo, pcbStructInfo, *pcbStructInfo)))
7066 {
7067 ret = pCryptDecodeObject(dwCertEncodingType,
7068 lpszStructType, pbEncoded, cbEncoded, dwFlags,
7069 *(BYTE **)pvStructInfo, pcbStructInfo);
7070 if (!ret)
7071 CRYPT_FreeSpace(pDecodePara, *(BYTE **)pvStructInfo);
7072 }
7073 }
7074 else
7075 ret = pCryptDecodeObject(dwCertEncodingType, lpszStructType,
7076 pbEncoded, cbEncoded, dwFlags, pvStructInfo, pcbStructInfo);
7077 }
7078 }
7079 if (hFunc)
7081 TRACE_(crypt)("returning %d\n", ret);
7082 return ret;
7083}
#define MAX_ENCODED_LEN
Definition: decode.c:48
static void CRYPT_FreeSpace(const CRYPT_DECODE_PARA *pDecodePara, LPVOID pv)
Definition: decode.c:238
BOOL(WINAPI * CryptDecodeObjectExFunc)(DWORD, LPCSTR, const BYTE *, DWORD, DWORD, PCRYPT_DECODE_PARA, void *, DWORD *)
Definition: decode.c:66
static CryptDecodeObjectExFunc CRYPT_LoadDecoderExFunc(DWORD dwCertEncodingType, LPCSTR lpszStructType, HCRYPTOIDFUNCADDR *hFunc)
Definition: decode.c:6977
static CryptDecodeObjectExFunc CRYPT_GetBuiltinDecoder(DWORD dwCertEncodingType, LPCSTR lpszStructType)
Definition: decode.c:6746
BOOL(WINAPI * CryptDecodeObjectFunc)(DWORD, LPCSTR, const BYTE *, DWORD, DWORD, void *, DWORD *)
Definition: decode.c:64
static BOOL CRYPT_DecodeEnsureSpace(DWORD dwFlags, const CRYPT_DECODE_PARA *pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo, DWORD bytesNeeded)
Definition: decode.c:210
static CryptDecodeObjectFunc CRYPT_LoadDecoderFunc(DWORD dwCertEncodingType, LPCSTR lpszStructType, HCRYPTOIDFUNCADDR *hFunc)
Definition: decode.c:6964
#define FIXME_(x)
Definition: compat.h:77
#define NOERROR
Definition: winerror.h:3448
#define CRYPT_E_ASN1_LARGE
Definition: winerror.h:4503

Referenced by CDecodeMsg_DecodeContent(), CDecodeMsg_DecodeDataContent(), CDecodeMsg_FinalizeSignedContent(), CDecodeSignedMsg_GetParam(), Cert_clone(), cert_get_alt_name_info(), cert_get_name_from_rdn_attr(), cert_name_to_str_with_indent(), CertContext_GetProperty(), CertCreateCertificateContext(), CertCreateCRLContext(), CertCreateCTLContext(), CertGetEnhancedKeyUsage(), CertGetIntendedKeyUsage(), CertGetNameStringW(), CertGetPublicKeyLength(), CertIsRDNAttrsInCertificateName(), CertIsValidCRLForCertificate(), check_ocsp_response_info(), CNG_ImportECCPubKey(), CNG_ImportRSAPubKey(), CNG_PrepareSignatureECC(), compare_alt_name_with_constraints(), compare_crl_issued_by(), compare_subject_with_email_constraints(), 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(), handle_ocsp_response(), is_ca_cert(), match_dns_to_subject_alt_name(), match_dns_to_subject_dn(), set_issuer_statement(), test_decodeAltName(), test_decodeAuthorityInfoAccess(), test_decodeAuthorityKeyId(), test_decodeAuthorityKeyId2(), test_decodeBasicConstraints(), test_decodeBits(), test_decodeCert(), test_decodeCertPolicies(), test_decodeCertPolicyConstraints(), test_decodeCertPolicyMappings(), test_decodeCertToBeSigned(), test_decodeCMSSignerInfo(), test_decodeCRLDistPoints(), test_decodeCRLIssuingDistPoint(), test_decodeCRLToBeSigned(), test_decodeCTL(), test_decodeEnhancedKeyUsage(), test_decodeEnumerated(), test_decodeExtensions(), test_decodeFiletime(), test_decodeInt(), test_decodeName(), test_decodeNameConstraints(), test_decodeNameValue(), test_decodeOCSPBasicResponseInfo(), test_decodeOCSPBasicSignedResponseInfo(), test_decodeOCSPResponseInfo(), test_decodeOctets(), test_decodePKCSAttribute(), test_decodePKCSAttributes(), test_decodePKCSContentInfo(), test_decodePKCSSignerInfo(), test_decodePKCSSMimeCapabilities(), test_decodePolicyQualifierUserNotice(), test_decodePublicKeyInfo(), test_decodeRsaPrivateKey(), test_decodeRsaPublicKey(), test_decodeRsaPublicKey_Bcrypt(), test_decodeSequenceOfAny(), test_decodeUnicodeName(), test_decodeUnicodeNameValue(), test_VerifySignature(), testTimeDecoding(), TrustIsCertificateSelfSigned(), verify_cert_revocation(), verify_cert_revocation_from_aia_ext(), verify_signed_ocsp_response_info(), 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 780 of file crypt.c.

782{
784 PCRYPTPROV prov;
786
787 TRACE("(0x%Ix, 0x%Ix, %d, %08lx, %p, %p)\n", hKey, hHash, Final, dwFlags, pbData, pdwDataLen);
788
789 if (!(key = key_from_handle(hKey)))
790 return FALSE;
791
792 if (hHash && !(hash = hash_from_handle(hHash)))
793 return FALSE;
794
795 if (!pbData || !pdwDataLen || !key->pProvider || key->pProvider->dwMagic != MAGIC_CRYPTPROV)
796 {
798 return FALSE;
799 }
800
801 prov = key->pProvider;
802 return prov->pFuncs->pCPDecrypt(prov->hPrivate, key->hPrivate, hash ? hash->hPrivate : 0,
803 Final, dwFlags, pbData, pdwDataLen);
804}
static PCRYPTHASH hash_from_handle(HCRYPTHASH handle)
Definition: crypt.c:91
#define MAGIC_CRYPTPROV
Definition: crypt.h:61

Referenced by CDecodeEnvelopedMsg_CrtlDecrypt(), CryptUnprotectData(), test_3des(), test_3des112(), test_aes(), test_block_cipher_modes(), test_des(), test_import_private(), test_incorrect_api_usage(), 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 822 of file crypt.c.

824{
825 PCRYPTPROV prov;
828
829 TRACE("(0x%Ix, 0x%08x, 0x%Ix, 0x%08lx, %p)\n", hProv, Algid, hBaseData, dwFlags, phKey);
830
831 if (!(prov = provider_from_handle(hProv)))
832 return FALSE;
833
834 if (!(hash = hash_from_handle(hBaseData)))
835 return FALSE;
836
837 if (!phKey)
838 {
840 return FALSE;
841 }
842 if ( !(key = CRYPT_Alloc(sizeof(CRYPTKEY))) )
843 {
845 return FALSE;
846 }
847
848 key->pProvider = prov;
849 key->dwMagic = MAGIC_CRYPTKEY;
850 if (prov->pFuncs->pCPDeriveKey(prov->hPrivate, Algid, hash->hPrivate, dwFlags, &key->hPrivate))
851 {
852 *phKey = (HCRYPTKEY)key;
853 return TRUE;
854 }
855
856 /* CSP error! */
857 key->dwMagic = 0;
859 *phKey = 0;
860 return FALSE;
861}
#define MAGIC_CRYPTKEY
Definition: crypt.h:62

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

◆ CryptDestroyHash()

◆ CryptDestroyKey()

WINADVAPI BOOL WINAPI CryptDestroyKey ( HCRYPTKEY  hKey)

Definition at line 911 of file crypt.c.

912{
913 PCRYPTPROV prov;
915 BOOL ret;
916
917 TRACE("(0x%Ix)\n", hKey);
918
919 if (!(key = key_from_handle(hKey)))
920 return FALSE;
921
922 if (!key->pProvider || key->pProvider->dwMagic != MAGIC_CRYPTPROV)
923 {
925 return FALSE;
926 }
927
928 prov = key->pProvider;
929 ret = prov->pFuncs->pCPDestroyKey(prov->hPrivate, key->hPrivate);
930 key->dwMagic = 0;
932 return ret;
933}

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(), import_key(), 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_incorrect_api_usage(), test_key_derivation(), test_key_initialization(), test_key_permissions(), test_mac(), test_null_provider(), test_rc2(), test_rc2_keylen(), 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_sig(), test_verify_signature(), test_VerifySignature(), testAcquireCertPrivateKey(), testAcquireSecurityContext(), testCreateSelfSignCert(), testExportPublicKey(), testImportPublicKey(), testSignCert(), and verify_signed_ocsp_response_info().

◆ CryptDuplicateHash()

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

Definition at line 950 of file crypt.c.

952{
953 PCRYPTPROV prov;
954 PCRYPTHASH orghash, newhash;
955
956 TRACE("(0x%Ix, %p, %08lx, %p)\n", hHash, pdwReserved, dwFlags, phHash);
957
958 if (!(orghash = hash_from_handle(hHash)))
959 return FALSE;
960
961 if (pdwReserved || !phHash || !orghash->pProvider || orghash->pProvider->dwMagic != MAGIC_CRYPTPROV)
962 {
964 return FALSE;
965 }
966
967 prov = orghash->pProvider;
968 if (!prov->pFuncs->pCPDuplicateHash)
969 {
971 return FALSE;
972 }
973
974 if ( !(newhash = CRYPT_Alloc(sizeof(CRYPTHASH))) )
975 {
977 return FALSE;
978 }
979
980 newhash->pProvider = prov;
981 newhash->dwMagic = MAGIC_CRYPTHASH;
982 if (prov->pFuncs->pCPDuplicateHash(prov->hPrivate, orghash->hPrivate, pdwReserved, dwFlags, &newhash->hPrivate))
983 {
984 *phHash = (HCRYPTHASH)newhash;
985 return TRUE;
986 }
987 newhash->dwMagic = 0;
988 CRYPT_Free(newhash);
989 return FALSE;
990}
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 1007 of file crypt.c.

1008{
1009 PCRYPTPROV prov;
1010 PCRYPTKEY orgkey, newkey;
1011
1012 TRACE("(0x%Ix, %p, %08lx, %p)\n", hKey, pdwReserved, dwFlags, phKey);
1013
1014 if (!(orgkey = key_from_handle(hKey)))
1015 return FALSE;
1016
1017 if (pdwReserved || !phKey || !orgkey->pProvider || orgkey->pProvider->dwMagic != MAGIC_CRYPTPROV)
1018 {
1020 return FALSE;
1021 }
1022
1023 prov = orgkey->pProvider;
1024 if (!prov->pFuncs->pCPDuplicateKey)
1025 {
1027 return FALSE;
1028 }
1029
1030 if ( !(newkey = CRYPT_Alloc(sizeof(CRYPTKEY))) )
1031 {
1033 return FALSE;
1034 }
1035
1036 newkey->pProvider = prov;
1037 newkey->dwMagic = MAGIC_CRYPTKEY;
1038 if (prov->pFuncs->pCPDuplicateKey(prov->hPrivate, orgkey->hPrivate, pdwReserved, dwFlags, &newkey->hPrivate))
1039 {
1040 *phKey = (HCRYPTKEY)newkey;
1041 return TRUE;
1042 }
1043 newkey->dwMagic = 0;
1044 CRYPT_Free(newkey);
1045 return FALSE;
1046}
HCRYPTKEY hPrivate
Definition: crypt.h:79
DWORD dwMagic
Definition: crypt.h:77
PCRYPTPROV pProvider
Definition: crypt.h:78

Referenced by test_incorrect_api_usage().

◆ CryptEncodeObject()

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

Definition at line 4909 of file encode.c.

4911{
4912 BOOL ret = FALSE;
4913 HCRYPTOIDFUNCADDR hFunc = NULL;
4914 CryptEncodeObjectFunc pCryptEncodeObject = NULL;
4915 CryptEncodeObjectExFunc pCryptEncodeObjectEx = NULL;
4916
4917 TRACE_(crypt)("(0x%08lx, %s, %p, %p, %p)\n", dwCertEncodingType,
4918 debugstr_a(lpszStructType), pvStructInfo, pbEncoded,
4919 pcbEncoded);
4920
4921 if (!pbEncoded && !pcbEncoded)
4922 {
4924 return FALSE;
4925 }
4926
4927 if (!(pCryptEncodeObjectEx = CRYPT_GetBuiltinEncoder(dwCertEncodingType,
4928 lpszStructType)))
4929 {
4930 TRACE_(crypt)("OID %s not found or unimplemented, looking for DLL\n",
4931 debugstr_a(lpszStructType));
4932 pCryptEncodeObject = CRYPT_LoadEncoderFunc(dwCertEncodingType,
4933 lpszStructType, &hFunc);
4934 if (!pCryptEncodeObject)
4935 pCryptEncodeObjectEx = CRYPT_LoadEncoderExFunc(dwCertEncodingType,
4936 lpszStructType, &hFunc);
4937 }
4938 if (pCryptEncodeObject)
4939 ret = pCryptEncodeObject(dwCertEncodingType, lpszStructType,
4940 pvStructInfo, pbEncoded, pcbEncoded);
4941 else if (pCryptEncodeObjectEx)
4942 ret = pCryptEncodeObjectEx(dwCertEncodingType, lpszStructType,
4943 pvStructInfo, 0, NULL, pbEncoded, pcbEncoded);
4944 if (hFunc)
4946 TRACE_(crypt)("returning %d\n", ret);
4947 return ret;
4948}
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:4896
BOOL(WINAPI * CryptEncodeObjectFunc)(DWORD, LPCSTR, const void *, BYTE *, DWORD *)
Definition: encode.c:49
static CryptEncodeObjectFunc CRYPT_LoadEncoderFunc(DWORD dwCertEncodingType, LPCSTR lpszStructType, HCRYPTOIDFUNCADDR *hFunc)
Definition: encode.c:4883
static CryptEncodeObjectExFunc CRYPT_GetBuiltinEncoder(DWORD dwCertEncodingType, LPCSTR lpszStructType)
Definition: encode.c:4676

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 4950 of file encode.c.

4953{
4954 BOOL ret = FALSE;
4955 HCRYPTOIDFUNCADDR hFunc = NULL;
4956 CryptEncodeObjectExFunc encodeFunc = NULL;
4957
4958 TRACE_(crypt)("(0x%08lx, %s, %p, 0x%08lx, %p, %p, %p)\n", dwCertEncodingType,
4959 debugstr_a(lpszStructType), pvStructInfo, dwFlags, pEncodePara,
4960 pvEncoded, pcbEncoded);
4961
4962 if (!pvEncoded && !pcbEncoded)
4963 {
4965 return FALSE;
4966 }
4967
4970 if (!pvEncoded) {
4972 return FALSE;
4973 }
4974 *(BYTE **)pvEncoded = NULL;
4975 }
4976 encodeFunc = CRYPT_GetBuiltinEncoder(dwCertEncodingType, lpszStructType);
4977 if (!encodeFunc)
4978 {
4979 TRACE_(crypt)("OID %s not found or unimplemented, looking for DLL\n",
4980 debugstr_a(lpszStructType));
4981 encodeFunc = CRYPT_LoadEncoderExFunc(dwCertEncodingType, lpszStructType,
4982 &hFunc);
4983 }
4984 if (encodeFunc)
4985 ret = encodeFunc(dwCertEncodingType, lpszStructType, pvStructInfo,
4986 dwFlags, pEncodePara, pvEncoded, pcbEncoded);
4987 else
4988 {
4989 CryptEncodeObjectFunc pCryptEncodeObject =
4990 CRYPT_LoadEncoderFunc(dwCertEncodingType, lpszStructType, &hFunc);
4991
4992 if (pCryptEncodeObject)
4993 {
4995 {
4996 ret = pCryptEncodeObject(dwCertEncodingType, lpszStructType,
4997 pvStructInfo, NULL, pcbEncoded);
4998 if (ret && (ret = CRYPT_EncodeEnsureSpace(dwFlags, pEncodePara,
4999 pvEncoded, pcbEncoded, *pcbEncoded)))
5000 ret = pCryptEncodeObject(dwCertEncodingType,
5001 lpszStructType, pvStructInfo, *(BYTE **)pvEncoded,
5002 pcbEncoded);
5003 }
5004 else
5005 ret = pCryptEncodeObject(dwCertEncodingType, lpszStructType,
5006 pvStructInfo, pvEncoded, pcbEncoded);
5007 }
5008 }
5009 if (hFunc)
5011 TRACE_(crypt)("returning %d\n", ret);
5012 return ret;
5013}
BOOL CRYPT_EncodeEnsureSpace(DWORD dwFlags, const CRYPT_ENCODE_PARA *pEncodePara, BYTE *pbEncoded, DWORD *pcbEncoded, DWORD bytesNeeded)
Definition: encode.c:97

Referenced by build_ocsp_request(), CDataEncodeMsg_Update(), CDecodeSignedMsg_GetParam(), CEnvelopedEncodeMsg_GetParam(), CertCreateSelfSignCertificate(), CertSetEnhancedKeyUsage(), CertStrToNameW(), CHashEncodeMsg_GetParam(), CRYPT_CreateSignedCert(), CRYPT_EncodeValueWithType(), CryptMsgEncodeAndSignCTL(), CSignedEncodeMsg_GetParam(), CSignedMsgData_UpdateAuthenticatedAttributes(), test_encodeAltName(), test_encodeAuthorityInfoAccess(), test_encodeAuthorityKeyId(), test_encodeAuthorityKeyId2(), test_encodeBasicConstraints(), test_encodeBits(), test_encodeCert(), test_encodeCertPolicies(), test_encodeCertPolicyConstraints(), test_encodeCertPolicyMappings(), test_encodeCertToBeSigned(), test_encodeCMSSignerInfo(), test_encodeCRLDistPoints(), test_encodeCRLIssuingDistPoint(), test_encodeCRLToBeSigned(), test_encodeCTL(), test_encodeEnhancedKeyUsage(), test_encodeEnumerated(), test_encodeExtensions(), test_encodeInt(), test_encodeName(), test_encodeNameConstraints(), test_encodeNameValue(), test_encodeOCSPRequestInfo(), test_encodeOctets(), test_encodePKCSAttribute(), test_encodePKCSAttributes(), test_encodePKCSContentInfo(), test_encodePKCSSignerInfo(), test_encodePKCSSMimeCapabilities(), test_encodePolicyQualifierUserNotice(), test_encodePublicKeyInfo(), test_encodeRsaPublicKey(), test_encodeRsaPublicKey_Bcrypt(), test_encodeSequenceOfAny(), test_encodeUnicodeName(), test_encodeUnicodeNameValue(), test_quoted_RDN(), testAcquireCertPrivateKey(), testTimeEncoding(), testVerifyCertSig(), and testVerifyCertSigEx().

◆ CryptEncrypt()

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

Definition at line 1071 of file crypt.c.

1073{
1075 PCRYPTPROV prov;
1076 PCRYPTKEY key;
1077
1078 TRACE("(0x%Ix, 0x%Ix, %d, %08lx, %p, %p, %ld)\n", hKey, hHash, Final, dwFlags, pbData, pdwDataLen, dwBufLen);
1079
1080 if (!(key = key_from_handle(hKey)))
1081 return FALSE;
1082
1083 if (hHash && !(hash = hash_from_handle(hHash)))
1084 return FALSE;
1085
1086 if (!pdwDataLen || !key->pProvider || key->pProvider->dwMagic != MAGIC_CRYPTPROV)
1087 {
1089 return FALSE;
1090 }
1091
1092 prov = key->pProvider;
1093 return prov->pFuncs->pCPEncrypt(prov->hPrivate, key->hPrivate, hash ? hash->hPrivate : 0,
1094 Final, dwFlags, pbData, pdwDataLen, dwBufLen);
1095}

Referenced by CEnvelopedEncodeMsg_Update(), CryptProtectData(), rdssl_rc4_crypt(), test_3des(), test_3des112(), test_aes(), test_block_cipher_modes(), test_des(), test_incorrect_api_usage(), 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, %ld, %p, %p, %ld, %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:2028
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 1691 of file oid.c.

1693{
1694 BOOL ret = TRUE;
1695 struct OIDInfo *info;
1696
1697 TRACE("(%ld, %08lx, %p, %p)\n", dwGroupId, dwFlags, pvArg,
1698 pfnEnumOIDInfo);
1699
1702 {
1703 if (!dwGroupId || dwGroupId == info->info.dwGroupId)
1704 {
1705 ret = pfnEnumOIDInfo(&info->info, pvArg);
1706 if (!ret)
1707 break;
1708 }
1709 }
1711 return ret;
1712}
static struct list oidInfo
Definition: oid.c:1194
static CRITICAL_SECTION oidInfoCS
Definition: oid.c:1186
Definition: oid.c:1481
CRYPT_OID_INFO info
Definition: oid.c:1482

Referenced by PrintOID(), test_enumOIDInfo(), and WTHelperGetKnownUsages().

◆ CryptEnumProvidersA()

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

Definition at line 1203 of file crypt.c.

1205{
1206 PWSTR str = NULL;
1207 DWORD bufsize;
1208 BOOL ret;
1209
1210 TRACE("(%ld, %p, %08lx, %p, %p, %p)\n", dwIndex, pdwReserved, dwFlags,
1211 pdwProvType, pszProvName, pcbProvName);
1212
1213 if(!CryptEnumProvidersW(dwIndex, pdwReserved, dwFlags, pdwProvType, NULL, &bufsize))
1214 return FALSE;
1215 if ( pszProvName && !(str = CRYPT_Alloc(bufsize)) )
1216 {
1218 return FALSE;
1219 }
1220 ret = CryptEnumProvidersW(dwIndex, pdwReserved, dwFlags, pdwProvType, str, &bufsize);
1221 if (str)
1222 CRYPT_UnicodeToANSI(str, &pszProvName, *pcbProvName);
1223 *pcbProvName = bufsize / sizeof(WCHAR); /* FIXME: not correct */
1224 if (str)
1225 {
1226 CRYPT_Free(str);
1228 {
1230 return FALSE;
1231 }
1232 }
1233 return ret;
1234}
#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:1119
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 1119 of file crypt.c.

1121{
1122 HKEY hKey;
1123 BOOL ret;
1124
1125 TRACE("(%ld, %p, %ld, %p, %p, %p)\n", dwIndex, pdwReserved, dwFlags,
1126 pdwProvType, pszProvName, pcbProvName);
1127
1128 if (pdwReserved || !pcbProvName)
1129 {
1131 return FALSE;
1132 }
1133 if (dwFlags)
1134 {
1136 return FALSE;
1137 }
1138
1139 if (RegOpenKeyW(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Cryptography\\Defaults\\Provider", &hKey))
1140 {
1142 return FALSE;
1143 }
1144
1145 ret = TRUE;
1146 if (!pszProvName)
1147 {
1148 DWORD numkeys;
1149 WCHAR *provNameW;
1150
1151 RegQueryInfoKeyW(hKey, NULL, NULL, NULL, &numkeys, pcbProvName,
1152 NULL, NULL, NULL, NULL, NULL, NULL);
1153
1154 if (!(provNameW = CRYPT_Alloc(*pcbProvName * sizeof(WCHAR))))
1155 {
1158 return FALSE;
1159 }
1160
1161 RegEnumKeyExW(hKey, dwIndex, provNameW, pcbProvName, NULL, NULL, NULL, NULL);
1162 CRYPT_Free(provNameW);
1163 (*pcbProvName)++;
1164 *pcbProvName *= sizeof(WCHAR);
1165
1166 if (dwIndex >= numkeys)
1167 {
1169 ret = FALSE;
1170 }
1171 } else {
1172 DWORD size = sizeof(DWORD);
1173 DWORD result;
1174 HKEY subkey;
1175
1176 result = RegEnumKeyW(hKey, dwIndex, pszProvName, *pcbProvName / sizeof(WCHAR));
1177 if (result)
1178 {
1181 return FALSE;
1182 }
1183 if (RegOpenKeyW(hKey, pszProvName, &subkey))
1184 {
1186 return FALSE;
1187 }
1188
1189 if (RegQueryValueExW(subkey, L"Type", NULL, NULL, (BYTE*)pdwProvType, &size))
1190 ret = FALSE;
1191
1192 RegCloseKey(subkey);
1193 }
1195 return ret;
1196}
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:4279

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 1329 of file crypt.c.

1331{
1332 PWSTR str = NULL;
1333 DWORD bufsize;
1334 BOOL ret;
1335
1336 TRACE("(%ld, %p, %08lx, %p, %p, %p)\n", dwIndex, pdwReserved, dwFlags,
1337 pdwProvType, pszTypeName, pcbTypeName);
1338
1339 if(!CryptEnumProviderTypesW(dwIndex, pdwReserved, dwFlags, pdwProvType, NULL, &bufsize))
1340 return FALSE;
1341 if ( pszTypeName && !(str = CRYPT_Alloc(bufsize)) )
1342 {
1344 return FALSE;
1345 }
1346 ret = CryptEnumProviderTypesW(dwIndex, pdwReserved, dwFlags, pdwProvType, str, &bufsize);
1347 if (str)
1348 CRYPT_UnicodeToANSI(str, &pszTypeName, *pcbTypeName);
1349 *pcbTypeName = bufsize / sizeof(WCHAR);
1350 if (str)
1351 {
1352 CRYPT_Free(str);
1354 {
1356 return FALSE;
1357 }
1358 }
1359 return ret;
1360}
BOOL WINAPI CryptEnumProviderTypesW(DWORD dwIndex, DWORD *pdwReserved, DWORD dwFlags, DWORD *pdwProvType, LPWSTR pszTypeName, DWORD *pcbTypeName)
Definition: crypt.c:1258

◆ CryptEnumProviderTypesW()

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

Definition at line 1258 of file crypt.c.

1260{
1261 HKEY hKey, hSubkey;
1262 DWORD keylen, numkeys, dwType;
1263 PWSTR keyname, ch;
1264 DWORD result;
1265
1266 TRACE("(%ld, %p, %08lx, %p, %p, %p)\n", dwIndex, pdwReserved,
1267 dwFlags, pdwProvType, pszTypeName, pcbTypeName);
1268
1269 if (pdwReserved || !pdwProvType || !pcbTypeName)
1270 {
1272 return FALSE;
1273 }
1274 if (dwFlags)
1275 {
1277 return FALSE;
1278 }
1279
1280 if (RegOpenKeyW(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Cryptography\\Defaults\\Provider Types", &hKey))
1281 return FALSE;
1282
1283 RegQueryInfoKeyW(hKey, NULL, NULL, NULL, &numkeys, &keylen, NULL, NULL, NULL, NULL, NULL, NULL);
1284 if (dwIndex >= numkeys)
1285 {
1288 return FALSE;
1289 }
1290 keylen++;
1291 if ( !(keyname = CRYPT_Alloc(keylen*sizeof(WCHAR))) )
1292 {
1295 return FALSE;
1296 }
1297 if ( RegEnumKeyW(hKey, dwIndex, keyname, keylen) ) {
1298 CRYPT_Free(keyname);
1300 return FALSE;
1301 }
1302 RegOpenKeyW(hKey, keyname, &hSubkey);
1304
1305 ch = keyname + lstrlenW(keyname);
1306 /* Convert "Type 000" to 0, etc/ */
1307 *pdwProvType = *(--ch) - '0';
1308 *pdwProvType += (*(--ch) - '0') * 10;
1309 *pdwProvType += (*(--ch) - '0') * 100;
1310 CRYPT_Free(keyname);
1311
1312 result = RegQueryValueExW(hSubkey, L"TypeName", NULL, &dwType, (LPBYTE)pszTypeName, pcbTypeName);
1313 if (result)
1314 {
1316 RegCloseKey(hSubkey);
1317 return FALSE;
1318 }
1319
1320 RegCloseKey(hSubkey);
1321 return TRUE;
1322}
unsigned char ch[4][2]
Definition: console.c:118

Referenced by CryptEnumProviderTypesA().

◆ CryptExportKey()

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

Definition at line 1383 of file crypt.c.

1385{
1386 PCRYPTPROV prov;
1387 PCRYPTKEY key, expkey = NULL;
1388
1389 TRACE("(0x%Ix, 0x%Ix, %ld, %08lx, %p, %p)\n", hKey, hExpKey, dwBlobType, dwFlags, pbData, pdwDataLen);
1390
1391 if (!(key = key_from_handle(hKey)))
1392 return FALSE;
1393
1394 if (hExpKey && !(expkey = key_from_handle(hExpKey)))
1395 return FALSE;
1396
1397 if (!pdwDataLen || !key->pProvider || key->pProvider->dwMagic != MAGIC_CRYPTPROV)
1398 {
1400 return FALSE;
1401 }
1402
1403 prov = key->pProvider;
1404 return prov->pFuncs->pCPExportKey(prov->hPrivate, key->hPrivate, expkey ? expkey->hPrivate : 0,
1405 dwBlobType, dwFlags, pbData, pdwDataLen);
1406}

Referenced by CRYPT_ExportKeyTrans(), CRYPT_ExportPublicKeyInfoEx(), rdssl_cert_to_rkey(), test_import_export(), test_import_private(), test_incorrect_api_usage(), 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 5015 of file encode.c.

5017{
5018 return CryptExportPublicKeyInfoEx(hCryptProv, dwKeySpec, dwCertEncodingType,
5019 NULL, 0, NULL, pInfo, pcbInfo);
5020}
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:5174

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 5174 of file encode.c.

5177{
5178 static HCRYPTOIDFUNCSET set = NULL;
5179 BOOL ret;
5180 ExportPublicKeyInfoExFunc exportFunc = NULL;
5181 HCRYPTOIDFUNCADDR hFunc = NULL;
5182
5183 TRACE_(crypt)("(%08Ix, %ld, %08lx, %s, %08lx, %p, %p, %ld)\n", hCryptProv,
5184 dwKeySpec, dwCertEncodingType, debugstr_a(pszPublicKeyObjId), dwFlags,
5185 pvAuxInfo, pInfo, pInfo ? *pcbInfo : 0);
5186
5187 if (!hCryptProv)
5188 {
5190 return FALSE;
5191 }
5192
5193 if (pszPublicKeyObjId)
5194 {
5195 if (!set)
5197 0);
5198 CryptGetOIDFunctionAddress(set, dwCertEncodingType, pszPublicKeyObjId,
5199 0, (void **)&exportFunc, &hFunc);
5200 }
5201 if (!exportFunc)
5202 exportFunc = CRYPT_ExportPublicKeyInfoEx;
5203 ret = exportFunc(hCryptProv, dwKeySpec, dwCertEncodingType,
5204 pszPublicKeyObjId, dwFlags, pvAuxInfo, pInfo, pcbInfo);
5205 if (hFunc)
5207 return ret;
5208}
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:5026
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:5170
#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 1223 of file cert.c.

1225{
1226 BOOL matches;
1227
1228 TRACE("(%p, %08lx, %p)\n", pCert, dwFlags, pvReserved);
1229
1231 if (!matches)
1233 return matches;
1234}
static BOOL cert_prov_info_matches_cert(PCCERT_CONTEXT pCert)
Definition: cert.c:1202
static BOOL find_matching_provider(PCCERT_CONTEXT pCert, DWORD dwFlags)
Definition: cert.c:1133

◆ CryptFindLocalizedName()

WINCRYPT32API LPCWSTR WINAPI CryptFindLocalizedName ( LPCWSTR  pwszCryptName)

Definition at line 1170 of file oid.c.

1171{
1172 unsigned int i;
1173
1174 for(i = 0; i < ARRAY_SIZE(LocalizedKeys); i++)
1175 {
1176 if(!lstrcmpiW(LocalizedKeys[i], pwszCryptName))
1177 {
1178 return LocalizedNames[i];
1179 }
1180 }
1181
1182 FIXME("No name for: %s - stub\n",debugstr_w(pwszCryptName));
1183 return NULL;
1184}
static const LPCWSTR LocalizedKeys[]
Definition: oid.c:65
static WCHAR LocalizedNames[ARRAY_SIZE(LocalizedKeys)][256]
Definition: oid.c:74
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4171

Referenced by CStore::CStore(), enum_store_callback(), and show_cert_stores().

◆ CryptFindOIDInfo()

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

Definition at line 1714 of file oid.c.

1716{
1718
1719 TRACE("(%ld, %p, %ld)\n", dwKeyType, pvKey, dwGroupId);
1720
1721 switch(dwKeyType)
1722 {
1724 {
1725 struct OIDInfo *info;
1726
1727 TRACE("CRYPT_OID_INFO_ALGID_KEY: %ld\n", *(DWORD *)pvKey);
1730 {
1731 if (info->info.Algid == *(DWORD *)pvKey &&
1732 (!dwGroupId || info->info.dwGroupId == dwGroupId))
1733 {
1734 ret = &info->info;
1735 break;
1736 }
1737 }
1739 break;
1740 }
1742 {
1743 struct OIDInfo *info;
1744
1745 TRACE("CRYPT_OID_INFO_NAME_KEY: %s\n", debugstr_w(pvKey));
1748 {
1749 if (!wcscmp(info->info.pwszName, pvKey) &&
1750 (!dwGroupId || info->info.dwGroupId == dwGroupId))
1751 {
1752 ret = &info->info;
1753 break;
1754 }
1755 }
1757 break;
1758 }
1760 {
1761 struct OIDInfo *info;
1762 LPSTR oid = pvKey;
1763
1764 TRACE("CRYPT_OID_INFO_OID_KEY: %s\n", debugstr_a(oid));
1767 {
1768 if (!lstrcmpA(info->info.pszOID, oid) &&
1769 (!dwGroupId || info->info.dwGroupId == dwGroupId))
1770 {
1771 ret = &info->info;
1772 break;
1773 }
1774 }
1776 break;
1777 }
1779 {
1780 struct OIDInfo *info;
1781
1782 TRACE("CRYPT_OID_INFO_SIGN_KEY: %ld\n", *(DWORD *)pvKey);
1785 {
1786 if (info->info.Algid == *(DWORD *)pvKey &&
1787 info->info.ExtraInfo.cbData >= sizeof(DWORD) &&
1788 *(DWORD *)info->info.ExtraInfo.pbData ==
1789 *(DWORD *)((LPBYTE)pvKey + sizeof(DWORD)) &&
1790 (!dwGroupId || info->info.dwGroupId == dwGroupId))
1791 {
1792 ret = &info->info;
1793 break;
1794 }
1795 }
1797 break;
1798 }
1799 }
1800 return ret;
1801}
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
Definition: locale.c:4104
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
Definition: wcs.c:1977
#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(), 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 2615 of file object.c.

2618{
2620 HCRYPTOIDFUNCADDR hFunc = NULL;
2621 BOOL ret = FALSE;
2622
2623 TRACE("(%08lx, %ld, %08lx, %p, %s, %p, %ld, %p, %p)\n", dwCertEncodingType,
2624 dwFormatType, dwFormatStrType, pFormatStruct, debugstr_a(lpszStructType),
2625 pbEncoded, cbEncoded, pbFormat, pcbFormat);
2626
2627 if (!(format = CRYPT_GetBuiltinFormatFunction(dwCertEncodingType,
2628 dwFormatStrType, lpszStructType)))
2629 {
2630 static HCRYPTOIDFUNCSET set = NULL;
2631
2632 if (!set)
2634 CryptGetOIDFunctionAddress(set, dwCertEncodingType, lpszStructType, 0,
2635 (void **)&format, &hFunc);
2636 }
2637 if (!format && (dwCertEncodingType & CERT_ENCODING_TYPE_MASK) ==
2638 X509_ASN_ENCODING && !(dwFormatStrType & CRYPT_FORMAT_STR_NO_HEX))
2640 if (format)
2641 ret = format(dwCertEncodingType, dwFormatType, dwFormatStrType,
2642 pFormatStruct, lpszStructType, pbEncoded, cbEncoded, pbFormat,
2643 pcbFormat);
2644 if (hFunc)
2646 return ret;
2647}
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:866
static CryptFormatObjectFunc CRYPT_GetBuiltinFormatFunction(DWORD encodingType, DWORD formatStrType, LPCSTR lpszStructType)
Definition: object.c:2540
BOOL(WINAPI * CryptFormatObjectFunc)(DWORD, DWORD, DWORD, void *, LPCSTR, const BYTE *, DWORD, void *, DWORD *)
Definition: object.c:2537
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(), and test_format_object().

◆ CryptFreeOIDFunctionAddress()

WINCRYPT32API BOOL WINAPI CryptFreeOIDFunctionAddress ( HCRYPTOIDFUNCADDR  hFuncAddr,
DWORD  dwFlags 
)

Definition at line 456 of file oid.c.

458{
459 TRACE("(%p, %08lx)\n", hFuncAddr, dwFlags);
460
461 /* FIXME: as MSDN states, need to check for DllCanUnloadNow in the DLL,
462 * and only unload it if it can be unloaded. Also need to implement ref
463 * counting on the functions.
464 */
465 if (hFuncAddr)
466 {
467 struct FuncAddr *addr = hFuncAddr;
468
469 if (!is_module_registered(addr->lib))
470 {
471 CryptMemFree(addr->dllList);
472 FreeLibrary(addr->lib);
474 }
475 }
476 return TRUE;
477}
static BOOL is_module_registered(HMODULE hModule)
Definition: oid.c:424
GLenum const GLvoid * addr
Definition: glext.h:9621
Definition: oid.c:280

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 1423 of file crypt.c.

1424{
1425 PCRYPTPROV prov;
1426 PCRYPTKEY key;
1427
1428 TRACE("(0x%Ix, %d, %08lx, %p)\n", hProv, Algid, dwFlags, phKey);
1429
1430 if (!(prov = provider_from_handle(hProv)))
1431 return FALSE;
1432
1433 if (!phKey)
1434 {
1436 return FALSE;
1437 }
1438 if ( !(key = CRYPT_Alloc(sizeof(CRYPTKEY))) )
1439 {
1441 return FALSE;
1442 }
1443
1444 key->pProvider = prov;
1445 key->dwMagic = MAGIC_CRYPTKEY;
1446 if (prov->pFuncs->pCPGenKey(prov->hPrivate, Algid, dwFlags, &key->hPrivate))
1447 {
1448 *phKey = (HCRYPTKEY)key;
1449 return TRUE;
1450 }
1451
1452 /* CSP error! */
1453 key->dwMagic = 0;
1454 CRYPT_Free(key);
1455 return FALSE;
1456}

Referenced by CertCreateSelfSignCertificate(), CRYPT_CreateKeyProv(), CRYPT_GenKey(), init_aes_environment(), init_base_environment(), test_incorrect_api_usage(), 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 684 of file crypt.c.

685{
687
688 TRACE("(0x%Ix, %ld, %p)\n", hProv, dwLen, pbBuffer);
689
690 if (!prov)
691 return FALSE;
692
693 return prov->pFuncs->pCPGenRandom(prov->hPrivate, dwLen, pbBuffer);
694}

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 182 of file oid.c.

184{
185 struct OIDFunctionSet *set = hFuncSet;
186 char *keyName;
187 HKEY key;
188 LSTATUS rc;
189
190 TRACE("(%p, %ld, %p, %p)\n", hFuncSet, dwEncodingType, pwszDllList,
191 pcchDllList);
192
193 keyName = CRYPT_GetKeyName(dwEncodingType, set->name, "DEFAULT");
194 rc = RegCreateKeyExA(HKEY_LOCAL_MACHINE, keyName, 0, NULL, 0,
195 KEY_READ, NULL, &key, NULL);
196 if (!rc)
197 {
198 DWORD size = *pcchDllList * sizeof(WCHAR);
199
200 rc = RegQueryValueExW(key, L"Dll", NULL, NULL, (LPBYTE)pwszDllList,
201 &size);
202 if (!rc)
203 *pcchDllList = size / sizeof(WCHAR);
204 else
205 {
206 /* No value, return an empty list */
207 if (pwszDllList && *pcchDllList)
208 *pwszDllList = '\0';
209 *pcchDllList = 1;
210 }
212 }
213 else
214 {
215 /* No value, return an empty list */
216 if (pwszDllList && *pcchDllList)
217 *pwszDllList = '\0';
218 *pcchDllList = 1;
219 }
220 CryptMemFree(keyName);
221
222 return TRUE;
223}
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 char * CRYPT_GetKeyName(DWORD dwEncodingType, LPCSTR pszFuncName, LPCSTR pszOID)
Definition: oid.c:146
#define KEY_READ
Definition: nt_native.h:1026

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 499 of file oid.c.

502{
503 struct OIDFunctionSet *set = hFuncSet;
504 BOOL ret = FALSE;
505
506 TRACE("(%p, %ld, %s, %08lx, %p, %p)\n", hFuncSet, dwEncodingType,
507 debugstr_w(pwszDll), dwFlags, ppvFuncAddr, phFuncAddr);
508
509 if (pwszDll)
510 {
511 HMODULE lib;
512
513 *phFuncAddr = NULL;
514 ret = CRYPT_GetFuncFromDll(pwszDll, set->name, &lib, ppvFuncAddr);
515 if (ret)
516 {
517 struct FuncAddr *addr = CryptMemAlloc(sizeof(struct FuncAddr));
518
519 if (addr)
520 {
521 addr->lib = lib;
522 addr->dllList = addr->currentDll = NULL;
523 *phFuncAddr = addr;
524 }
525 else
526 {
528 *ppvFuncAddr = NULL;
530 ret = FALSE;
531 }
532 }
533 else
535 }
536 else
537 {
538 struct FuncAddr *addr = *phFuncAddr;
539
540 if (!addr)
541 {
542 DWORD size;
543
544 ret = CryptGetDefaultOIDDllList(hFuncSet, dwEncodingType, NULL,
545 &size);
546 if (ret)
547 {
549
550 if (dllList)
551 {
552 ret = CryptGetDefaultOIDDllList(hFuncSet, dwEncodingType,
553 dllList, &size);
554 if (ret)
555 {
556 addr = CryptMemAlloc(sizeof(struct FuncAddr));
557 if (addr)
558 {
559 addr->dllList = dllList;
560 addr->currentDll = dllList;
561 addr->lib = NULL;
562 *phFuncAddr = addr;
563 }
564 else
565 {
568 ret = FALSE;
569 }
570 }
571 }
572 else
573 {
575 ret = FALSE;
576 }
577 }
578 }
579 if (addr)
580 {
581 if (!*addr->currentDll)
582 {
583 CryptFreeOIDFunctionAddress(*phFuncAddr, 0);
585 *phFuncAddr = NULL;
586 ret = FALSE;
587 }
588 else
589 {
590 /* FIXME: as elsewhere, can't free until DllCanUnloadNow says
591 * it's possible, and should defer unloading for some time to
592 * avoid repeated LoadLibrary/FreeLibrary on the same dll.
593 */
594 FreeLibrary(addr->lib);
595 ret = CRYPT_GetFuncFromDll(addr->currentDll, set->name,
596 &addr->lib, ppvFuncAddr);
597 if (ret)
598 {
599 /* Move past the current DLL */
600 addr->currentDll += lstrlenW(addr->currentDll) + 1;
601 *phFuncAddr = addr;
602 }
603 else
604 {
605 CryptFreeOIDFunctionAddress(*phFuncAddr, 0);
607 *phFuncAddr = NULL;
608 }
609 }
610 }
611 }
612 return ret;
613}
static BOOL CRYPT_GetFuncFromDll(LPCWSTR dll, LPCSTR func, HMODULE *lib, void **ppvFuncAddr)
Definition: oid.c:479
LPWSTR dllList
Definition: oid.c:282
HMODULE lib
Definition: oid.c:281

Referenced by CertVerifyRevocation(), and test_getDefaultOIDFunctionAddress().

◆ CryptGetDefaultProviderA()

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

Definition at line 1534 of file crypt.c.

1536{
1537 PWSTR str = NULL;
1538 DWORD bufsize;
1539 BOOL ret;
1540
1541 TRACE("(%ld, %p, %08lx, %p, %p)\n", dwProvType, pdwReserved, dwFlags, pszProvName, pcbProvName);
1542
1543 CryptGetDefaultProviderW(dwProvType, pdwReserved, dwFlags, NULL, &bufsize);
1544 if ( pszProvName && !(str = CRYPT_Alloc(bufsize)) )
1545 {
1547 return FALSE;
1548 }
1549 ret = CryptGetDefaultProviderW(dwProvType, pdwReserved, dwFlags, str, &bufsize);
1550 if (str)
1551 CRYPT_UnicodeToANSI(str, &pszProvName, *pcbProvName);
1552 *pcbProvName = bufsize / sizeof(WCHAR);
1553 if (str)
1554 {
1555 CRYPT_Free(str);
1557 {
1559 return FALSE;
1560 }
1561 }
1562 return ret;
1563}
BOOL WINAPI CryptGetDefaultProviderW(DWORD dwProvType, DWORD *pdwReserved, DWORD dwFlags, LPWSTR pszProvName, DWORD *pcbProvName)
Definition: crypt.c:1478

◆ CryptGetDefaultProviderW()

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

Definition at line 1478 of file crypt.c.

1480{
1481 HKEY hKey;
1482 PWSTR keyname;
1483 DWORD result;
1484
1485 if (pdwReserved || !pcbProvName)
1486 {
1488 return FALSE;
1489 }
1491 {
1493 return FALSE;
1494 }
1495 if (dwProvType > 999)
1496 {
1498 return FALSE;
1499 }
1500 if ( !(keyname = CRYPT_GetTypeKeyName(dwProvType, dwFlags & CRYPT_USER_DEFAULT)) )
1501 {
1503 return FALSE;
1504 }
1506 {
1507 CRYPT_Free(keyname);
1509 return FALSE;
1510 }
1511 CRYPT_Free(keyname);
1512
1513 result = RegQueryValueExW(hKey, L"Name", NULL, NULL, (LPBYTE)pszProvName, pcbProvName);
1515
1516 if (result)
1517 {
1518 if (result != ERROR_MORE_DATA)
1520 else
1522
1523 return FALSE;
1524 }
1525
1526 return TRUE;
1527}
#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 1626 of file crypt.c.

1628{
1629 PCRYPTPROV prov;
1630 PCRYPTKEY key;
1631
1632 TRACE("(0x%Ix, %ld, %p, %p, %08lx)\n", hKey, dwParam, pbData, pdwDataLen, dwFlags);
1633
1634 if (!(key = key_from_handle(hKey)))
1635 return FALSE;
1636
1637 if (!pdwDataLen || !key->pProvider || key->pProvider->dwMagic != MAGIC_CRYPTPROV)
1638 {
1640 return FALSE;
1641 }
1642
1643 prov = key->pProvider;
1644 return prov->pFuncs->pCPGetKeyParam(prov->hPrivate, key->hPrivate, dwParam,
1645 pbData, pdwDataLen, dwFlags);
1646}

Referenced by CertGetPublicKeyLength(), export_is_key_exportable(), test_aes(), test_block_cipher_modes(), test_des(), test_import_export(), test_import_private(), test_incorrect_api_usage(), 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("(%08lx, %Id, %ld08x %p, %ld)\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("(%08lx, %p, %ld)\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 369 of file cryptnet_main.c.

372{
374 HCRYPTOIDFUNCADDR hFunc = NULL;
375 BOOL ret = FALSE;
376
377 TRACE("(%s, %p, %08lx, %p, %p, %p, %p, %p)\n", debugstr_a(pszUrlOid),
378 pvPara, dwFlags, pUrlArray, pcbUrlArray, pUrlInfo, pcbUrlInfo, pvReserved);
379
380 if (IS_INTOID(pszUrlOid))
381 {
382 switch (LOWORD(pszUrlOid))
383 {
386 break;
389 break;
390 default:
391 FIXME("unimplemented for %s\n", url_oid_to_str(pszUrlOid));
393 }
394 }
395 else
396 {
397 static HCRYPTOIDFUNCSET set = NULL;
398
399 if (!set)
402 (void **)&func, &hFunc);
403 }
404 if (func)
405 ret = func(pszUrlOid, pvPara, dwFlags, pUrlArray, pcbUrlArray,
406 pUrlInfo, pcbUrlInfo, pvReserved);
407 if (hFunc)
409 return ret;
410}
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:91
BOOL(WINAPI * UrlDllGetObjectUrlFunc)(LPCSTR, LPVOID, DWORD, PCRYPT_URL_ARRAY, DWORD *, PCRYPT_URL_INFO, DWORD *, LPVOID)
#define IS_INTOID(x)
Definition: cryptnet_main.c:45
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 375 of file oid.c.

378{
379 BOOL ret = FALSE;
380 struct OIDFunctionSet *set = hFuncSet;
381
382 TRACE("(%p, %ld, %s, %08lx, %p, %p)\n", hFuncSet, dwEncodingType,
383 debugstr_a(pszOID), dwFlags, ppvFuncAddr, phFuncAddr);
384
385 *ppvFuncAddr = NULL;
387 {
388 struct OIDFunction *function;
389
391 LIST_FOR_EACH_ENTRY(function, &set->functions, struct OIDFunction, next)
392 {
393 if (function->encoding == GET_CERT_ENCODING_TYPE(dwEncodingType))
394 {
395 if (!IS_INTOID(pszOID))
396 {
397 if (!IS_INTOID(function->entry.pszOID) &&
398 !stricmp(function->entry.pszOID, pszOID))
399 {
400 *ppvFuncAddr = function->entry.pvFuncAddr;
401 *phFuncAddr = NULL; /* FIXME: what should it be? */
402 ret = TRUE;
403 break;
404 }
405 }
406 else if (function->entry.pszOID == pszOID)
407 {
408 *ppvFuncAddr = function->entry.pvFuncAddr;
409 *phFuncAddr = NULL; /* FIXME: what should it be? */
410 ret = TRUE;
411 break;
412 }
413 }
414 }
416 }
417 if (!*ppvFuncAddr)
418 ret = CRYPT_GetFuncFromReg(dwEncodingType, pszOID, set->name,
419 ppvFuncAddr, phFuncAddr);
420 TRACE("returning %d\n", ret);
421 return ret;
422}
static BOOL CRYPT_GetFuncFromReg(DWORD dwEncodingType, LPCSTR pszOID, LPCSTR szFuncName, LPVOID *ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
Definition: oid.c:286
static unsigned __int64 next
Definition: rand_nt.c:6
CRYPT_OID_FUNC_ENTRY entry
Definition: oid.c:61
DWORD encoding
Definition: oid.c:60
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(), test_oidFunctionSet(), and test_verify_ecc_signature().

◆ CryptGetOIDFunctionValue()

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

Definition at line 842 of file oid.c.

845{
846 LPSTR szKey;
847 LONG rc;
848 HKEY hKey;
849
850 TRACE("%lx %s %s %s %p %p %p\n", dwEncodingType, debugstr_a(pszFuncName),
851 debugstr_a(pszOID), debugstr_w(pwszValueName), pdwValueType, pbValueData,
852 pcbValueData);
853
854 if (!GET_CERT_ENCODING_TYPE(dwEncodingType))
855 return TRUE;
856
857 if (!pszFuncName || !pszOID || !pwszValueName)
858 {
860 return FALSE;
861 }
862
863 szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
864 rc = RegOpenKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
865 CryptMemFree(szKey);
866 if (rc)
867 SetLastError(rc);
868 else
869 {
870 rc = RegQueryValueExW(hKey, pwszValueName, NULL, pdwValueType,
871 pbValueData, pcbValueData);
872 if (rc)
873 SetLastError(rc);
875 }
876 return !rc;
877}
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 1667 of file crypt.c.

1669{
1670 PCRYPTPROV prov;
1671
1672 TRACE("(0x%Ix, %ld, %p, %p, %08lx)\n", hProv, dwParam, pbData, pdwDataLen, dwFlags);
1673
1674 if (!(prov = provider_from_handle(hProv)))
1675 return FALSE;
1676
1677 return prov->pFuncs->pCPGetProvParam(prov->hPrivate, dwParam, pbData, pdwDataLen, dwFlags);
1678}

Referenced by CertContext_SetKeyProvInfo(), find_key_prov_info_in_provider(), get_provider_property(), is_supported_algid(), set_key_prov_info(), test_container_sd(), test_enum_container(), test_getDefaultCryptProv(), test_incorrect_api_usage(), 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 1694 of file crypt.c.

1695{
1696 PCRYPTPROV prov;
1697 PCRYPTKEY key;
1698
1699 TRACE("(0x%Ix, %ld, %p)\n", hProv, dwKeySpec, phUserKey);
1700
1701 if (!(prov = provider_from_handle(hProv)))
1702 return FALSE;
1703
1704 if (!phUserKey)
1705 {
1707 return FALSE;
1708 }
1709 if ( !(key = CRYPT_Alloc(sizeof(CRYPTKEY))) )
1710 {
1712 return FALSE;
1713 }
1714
1715 key->pProvider = prov;
1716 key->dwMagic = MAGIC_CRYPTKEY;
1717 if (prov->pFuncs->pCPGetUserKey(prov->hPrivate, dwKeySpec, &key->hPrivate))
1718 {
1719 *phUserKey = (HCRYPTKEY)key;
1720 return TRUE;
1721 }
1722
1723 /* CSP Error */
1724 key->dwMagic = 0;
1725 CRYPT_Free(key);
1726 *phUserKey = 0;
1727 return FALSE;
1728}

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

◆ 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 2258 of file cert.c.

2261{
2262 BOOL ret = TRUE;
2263 HCRYPTHASH hHash = 0;
2264
2265 TRACE("(%08Ix, %d, %08lx, %p, %ld, %p, %p)\n", hCryptProv, Algid, dwFlags,
2266 pbEncoded, cbEncoded, pbComputedHash, pcbComputedHash);
2267
2268 if (!hCryptProv)
2269 hCryptProv = I_CryptGetDefaultCryptProv(Algid);
2270 if (!Algid)
2271 Algid = CALG_SHA1;
2272 if (ret)
2273 {
2274 ret = CryptCreateHash(hCryptProv, Algid, 0, 0, &hHash);
2275 if (ret)
2276 {
2277 ret = CryptHashData(hHash, pbEncoded, cbEncoded, 0);
2278 if (ret)
2279 ret = CryptGetHashParam(hHash, HP_HASHVAL, pbComputedHash,
2280 pcbComputedHash, 0);
2281 CryptDestroyHash(hHash);
2282 }
2283 }
2284 return ret;
2285}
BOOL WINAPI CryptCreateHash(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags, HCRYPTHASH *phHash)
Definition: crypt.c:715
BOOL WINAPI CryptGetHashParam(HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
Definition: crypt.c:1584
BOOL WINAPI CryptDestroyHash(HCRYPTHASH hHash)
Definition: crypt.c:875
BOOL WINAPI CryptHashData(HCRYPTHASH hHash, const BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
Definition: crypt.c:1745
#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 
)

Definition at line 2287 of file cert.c.

2290{
2292 BCRYPT_ALG_HANDLE alg = NULL;
2294 DWORD hash_len;
2295 DWORD hash_len_size;
2296
2297 TRACE("(%s, %08lx, %p, %p, %ld, %p, %p)\n", debugstr_w(pwszCNGHashAlgid),
2298 dwFlags, pvReserved, pbEncoded, cbEncoded, pbComputedHash, pcbComputedHash);
2299
2300 if ((status = BCryptOpenAlgorithmProvider(&alg, pwszCNGHashAlgid, NULL, 0)))
2301 {
2304 goto done;
2305 }
2306
2307 if ((status = BCryptCreateHash(alg, &hash, NULL, 0, NULL, 0, 0)))
2308 goto done;
2309
2310 if ((status = BCryptGetProperty(hash, BCRYPT_HASH_LENGTH, (BYTE *)&hash_len, sizeof(hash_len), &hash_len_size, 0)))
2311 goto done;
2312
2313 if (!pbComputedHash)
2314 {
2315 *pcbComputedHash = hash_len;
2316 goto done;
2317 }
2318
2319 if (*pcbComputedHash < hash_len)
2320 {
2322 goto done;
2323 }
2324
2325 *pcbComputedHash = hash_len;
2326
2327 if ((status = BCryptHashData(hash, (BYTE *)pbEncoded, cbEncoded, 0)))
2328 goto done;
2329
2330 if ((status = BCryptFinishHash(hash, pbComputedHash, hash_len, 0)))
2331 goto done;
2332
2333done:
2335 if (alg) BCryptCloseAlgorithmProvider(alg, 0);
2337 return !status;
2338}
LONG NTSTATUS
Definition: precomp.h:26
static const WCHAR BCRYPT_HASH_LENGTH[]
Definition: bcrypt.h:132
NTSTATUS WINAPI BCryptHashData(BCRYPT_HASH_HANDLE handle, UCHAR *input, ULONG size, ULONG flags)
Definition: bcrypt_main.c:1058
NTSTATUS WINAPI BCryptGetProperty(BCRYPT_HANDLE handle, LPCWSTR prop, UCHAR *buffer, ULONG count, ULONG *res, ULONG flags)
Definition: bcrypt_main.c:978
NTSTATUS WINAPI BCryptDestroyHash(BCRYPT_HASH_HANDLE handle)
Definition: bcrypt_main.c:1047
NTSTATUS WINAPI BCryptOpenAlgorithmProvider(BCRYPT_ALG_HANDLE *handle, LPCWSTR id, LPCWSTR implementation, DWORD flags)
Definition: bcrypt_main.c:336
NTSTATUS WINAPI BCryptCloseAlgorithmProvider(BCRYPT_ALG_HANDLE handle, DWORD flags)
Definition: bcrypt_main.c:380
NTSTATUS WINAPI BCryptCreateHash(BCRYPT_ALG_HANDLE algorithm, BCRYPT_HASH_HANDLE *handle, UCHAR *object, ULONG objectlen, UCHAR *secret, ULONG secretlen, ULONG flags)
Definition: bcrypt_main.c:1005
NTSTATUS WINAPI BCryptFinishHash(BCRYPT_HASH_HANDLE handle, UCHAR *output, ULONG size, ULONG flags)
Definition: bcrypt_main.c:1077
#define STATUS_NOT_IMPLEMENTED
Definition: d3dkmdt.h:42
#define STATUS_NOT_FOUND
Definition: shellext.h:72
Definition: ps.c:97

Referenced by testCryptHashCert2().

◆ CryptHashData()

WINADVAPI BOOL WINAPI CryptHashData ( HCRYPTHASH  hHash,
const BYTE pbData,
DWORD  dwDataLen,
DWORD  dwFlags 
)

◆ 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, %ld, %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 2340 of file cert.c.

2343{
2344 BOOL ret = TRUE;
2345 HCRYPTHASH hHash = 0;
2346
2347 TRACE("(%08Ix, %d, %08lx, %ld, %p, %p, %p)\n", hCryptProv, Algid, dwFlags,
2348 dwCertEncodingType, pInfo, pbComputedHash, pcbComputedHash);
2349
2350 if (!hCryptProv)
2351 hCryptProv = I_CryptGetDefaultCryptProv(0);
2352 if (!Algid)
2353 Algid = CALG_MD5;
2354 if ((dwCertEncodingType & CERT_ENCODING_TYPE_MASK) != X509_ASN_ENCODING)
2355 {
2357 return FALSE;
2358 }
2359 if (ret)
2360 {
2361 BYTE *buf;
2362 DWORD size = 0;
2363
2364 ret = CRYPT_AsnEncodePubKeyInfoNoNull(dwCertEncodingType,
2366 (LPBYTE)&buf, &size);
2367 if (ret)
2368 {
2369 ret = CryptCreateHash(hCryptProv, Algid, 0, 0, &hHash);
2370 if (ret)
2371 {
2372 ret = CryptHashData(hHash, buf, size, 0);
2373 if (ret)
2374 ret = CryptGetHashParam(hHash, HP_HASHVAL, pbComputedHash,
2375 pcbComputedHash, 0);
2376 CryptDestroyHash(hHash);
2377 }
2378 LocalFree(buf);
2379 }
2380 }
2381 return ret;
2382}
BOOL WINAPI CRYPT_AsnEncodePubKeyInfoNoNull(DWORD dwCertEncodingType, LPCSTR lpszStructType, const void *pvStructInfo, DWORD dwFlags, PCRYPT_ENCODE_PARA pEncodePara, BYTE *pbEncoded, DWORD *pcbEncoded)
Definition: encode.c:478
#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 1779 of file crypt.c.

1780{
1782 PCRYPTKEY key;
1783 PCRYPTPROV prov;
1784
1785 TRACE("(0x%Ix, 0x%Ix, %08lx)\n", hHash, hKey, dwFlags);
1786
1787 if (!(hash = hash_from_handle(hHash)))
1788 return FALSE;
1789
1790 if (!(key = key_from_handle(hKey)))
1791 return FALSE;
1792
1793 if (!hash->pProvider || hash->pProvider->dwMagic != MAGIC_CRYPTPROV)
1794 {
1796 return FALSE;
1797 }
1798
1799 prov = hash->pProvider;
1800 return prov->pFuncs->pCPHashSessionKey(prov->hPrivate, hash->hPrivate, key->hPrivate, dwFlags);
1801}

◆ CryptHashToBeSigned()

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

Definition at line 2384 of file cert.c.

2387{
2388 BOOL ret;
2390 DWORD size;
2391
2392 TRACE("(%08Ix, %08lx, %p, %ld, %p, %ld)\n", hCryptProv, dwCertEncodingType,
2393 pbEncoded, cbEncoded, pbComputedHash, *pcbComputedHash);
2394
2395 ret = CryptDecodeObjectEx(dwCertEncodingType, X509_CERT,
2396 pbEncoded, cbEncoded, CRYPT_DECODE_ALLOC_FLAG, NULL, &info, &size);
2397 if (ret)
2398 {
2400 HCRYPTHASH hHash;
2401
2402 if (!hCryptProv)
2403 hCryptProv = I_CryptGetDefaultCryptProv(0);
2405 info->SignatureAlgorithm.pszObjId, 0);
2406 if (!oidInfo)
2407 {
2409 ret = FALSE;
2410 }
2411 else
2412 {
2413 ret = CryptCreateHash(hCryptProv, oidInfo->Algid, 0, 0, &hHash);
2414 if (ret)
2415 {
2416 ret = CryptHashData(hHash, info->ToBeSigned.pbData,
2417 info->ToBeSigned.cbData, 0);
2418 if (ret)
2419 ret = CryptGetHashParam(hHash, HP_HASHVAL, pbComputedHash,
2420 pcbComputedHash, 0);
2421 CryptDestroyHash(hHash);
2422 }
2423 }
2424 LocalFree(info);
2425 }
2426 return ret;
2427}
#define X509_CERT
Definition: wincrypt.h:3517
#define NTE_BAD_ALGID
Definition: winerror.h:4255

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 1820 of file crypt.c.

1822{
1823 PCRYPTPROV prov;
1824 PCRYPTKEY pubkey = NULL, importkey;
1825
1826 TRACE("(0x%Ix, %p, %ld, 0x%Ix, %08lx, %p)\n", hProv, pbData, dwDataLen, hPubKey, dwFlags, phKey);
1827
1828 if (!(prov = provider_from_handle(hProv)))
1829 return FALSE;
1830
1831 if (hPubKey && !(pubkey = key_from_handle(hPubKey)))
1832 return FALSE;
1833
1834 if (!pbData || !dwDataLen || !phKey)
1835 {
1837 return FALSE;
1838 }
1839
1840 if ( !(importkey = CRYPT_Alloc(sizeof(CRYPTKEY))) )
1841 {
1843 return FALSE;
1844 }
1845
1846 importkey->pProvider = prov;
1847 importkey->dwMagic = MAGIC_CRYPTKEY;
1848 if (prov->pFuncs->pCPImportKey(prov->hPrivate, pbData, dwDataLen,
1849 pubkey ? pubkey->hPrivate : 0, dwFlags, &importkey->hPrivate))
1850 {
1851 *phKey = (HCRYPTKEY)importkey;
1852 return TRUE;
1853 }
1854
1855 importkey->dwMagic = 0;
1856 CRYPT_Free(importkey);
1857 return FALSE;
1858}
static const WCHAR pubkey[]
Definition: asmname.c:68

Referenced by CRYPT_ImportKeyTrans(), CRYPT_ImportPublicKeyInfoEx(), import_key(), rdssl_hmac_md5(), rdssl_rc4_set_key(), test_decode_msg_get_param(), test_hashes(), test_import_export(), test_import_hmac(), test_import_private(), test_incorrect_api_usage(), test_key_initialization(), test_null_provider(), test_rc2_keylen(), test_rsa_round_trip(), test_schannel_provider(), test_sign_message(), test_signed_msg_encoding(), test_signed_msg_update(), test_verify_sig(), 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 5210 of file encode.c.

5212{
5213 return CryptImportPublicKeyInfoEx(hCryptProv, dwCertEncodingType, pInfo,
5214 0, 0, NULL, phKey);
5215}
BOOL WINAPI CryptImportPublicKeyInfoEx(HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, ALG_ID aiKeyAlg, DWORD dwFlags, void *pvAuxInfo, HCRYPTKEY *phKey)
Definition: encode.c:5284

Referenced by CDecodeSignedMsg_VerifySignatureWithKey(), CertGetPublicKeyLength(), CRYPT_ExportKeyTrans(), test_verify_ecc_signature(), 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 5284 of file encode.c.

5287{
5288 static HCRYPTOIDFUNCSET set = NULL;
5289 BOOL ret;
5290 ImportPublicKeyInfoExFunc importFunc = NULL;
5291 HCRYPTOIDFUNCADDR hFunc = NULL;
5292
5293 TRACE_(crypt)("(%08Ix, %08lx, %p, %08x, %08lx, %p, %p)\n", hCryptProv,
5294 dwCertEncodingType, pInfo, aiKeyAlg, dwFlags, pvAuxInfo, phKey);
5295
5296 if (!set)
5298 CryptGetOIDFunctionAddress(set, dwCertEncodingType,
5299 pInfo->Algorithm.pszObjId, 0, (void **)&importFunc, &hFunc);
5300 if (!importFunc)
5301 importFunc = CRYPT_ImportPublicKeyInfoEx;
5302 ret = importFunc(hCryptProv, dwCertEncodingType, pInfo, aiKeyAlg, dwFlags,
5303 pvAuxInfo, phKey);
5304 if (hFunc)
5306 return ret;
5307}
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:5221
BOOL(WINAPI * ImportPublicKeyInfoExFunc)(HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, ALG_ID aiKeyAlg, DWORD dwFlags, void *pvAuxInfo, HCRYPTKEY *phKey)
Definition: encode.c:5280
#define CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC
Definition: wincrypt.h:2672

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

◆ CryptImportPublicKeyInfoEx2()

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

Definition at line 5309 of file encode.c.

5312{
5313 TRACE_(crypt)("(%ld, %p, %08lx, %p, %p)\n", dwCertEncodingType, pInfo,
5314 dwFlags, pvAuxInfo, phKey);
5315
5316 if (dwFlags)
5317 FIXME("flags %#lx ignored\n", dwFlags);
5318
5319 return CNG_ImportPubKey(pInfo, phKey);
5320}
BOOL CNG_ImportPubKey(CERT_PUBLIC_KEY_INFO *pubKeyInfo, BCRYPT_KEY_HANDLE *key)
Definition: cert.c:2770

Referenced by cng_verify_msg_signature(), test_verify_ecc_signature(), test_VerifySignature(), and testImportPublicKey().

◆ CryptInitOIDFunctionSet()

WINCRYPT32API HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet ( LPCSTR  pszFuncName,
DWORD  dwFlags 
)

Definition at line 103 of file oid.c.

105{
106 struct OIDFunctionSet *cursor, *ret = NULL;
107
108 TRACE("(%s, %lx)\n", debugstr_a(pszFuncName), dwFlags);
109
112 {
113 if (!stricmp(pszFuncName, cursor->name))
114 {
115 ret = cursor;
116 break;
117 }
118 }
119 if (!ret)
120 {
121 ret = CryptMemAlloc(sizeof(struct OIDFunctionSet));
122 if (ret)
123 {
124 memset(ret, 0, sizeof(*ret));
125 ret->name = CryptMemAlloc(strlen(pszFuncName) + 1);
126 if (ret->name)
127 {
129 ret->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": OIDFunctionSet.cs");
130 list_init(&ret->functions);
131 strcpy(ret->name, pszFuncName);
132 list_add_tail(&funcSets, &ret->next);
133 }
134 else
135 {
137 ret = NULL;
138 }
139 }
140 }
142
143 return ret;
144}
static void list_init(struct list_entry *head)
Definition: list.h:51
static CRITICAL_SECTION funcSetCS
Definition: oid.c:39
static struct list funcSets
Definition: oid.c:47
BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount, IN DWORD flags)
Definition: sync.c:107
#define DWORD_PTR
Definition: treelist.c:76
#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO
Definition: winnt_old.h:1156

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(), test_oidFunctionSet(), and test_verify_ecc_signature().

◆ 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 225 of file oid.c.

228{
229 BOOL ret = TRUE;
230 struct OIDFunctionSet *set;
231
232 TRACE("(%p, %ld, %s, %ld, %p, %08lx)\n", hModule, dwEncodingType,
233 debugstr_a(pszFuncName), cFuncEntry, rgFuncEntry, dwFlags);
234
235 set = CryptInitOIDFunctionSet(pszFuncName, 0);
236 if (set)
237 {
238 DWORD i;
239
241 for (i = 0; ret && i < cFuncEntry; i++)
242 {
243 struct OIDFunction *func;
244
245 TRACE("OID %s, func %p\n", debugstr_a(rgFuncEntry[i].pszOID), rgFuncEntry[i].pvFuncAddr);
246
247 if (!IS_INTOID(rgFuncEntry[i].pszOID))
248 func = CryptMemAlloc(sizeof(struct OIDFunction)
249 + strlen(rgFuncEntry[i].pszOID) + 1);
250 else
251 func = CryptMemAlloc(sizeof(struct OIDFunction));
252 if (func)
253 {
254 func->encoding = GET_CERT_ENCODING_TYPE(dwEncodingType);
255 if (!IS_INTOID(rgFuncEntry[i].pszOID))
256 {
257 LPSTR oid;
258
259 oid = (LPSTR)((LPBYTE)func + sizeof(*func));
260 strcpy(oid, rgFuncEntry[i].pszOID);
261 func->entry.pszOID = oid;
262 }
263 else
264 func->entry.pszOID = rgFuncEntry[i].pszOID;
265 func->entry.pvFuncAddr = rgFuncEntry[i].pvFuncAddr;
266 func->hModule = hModule;
267 list_add_tail(&set->functions, &func->next);
268 }
269 else
270 ret = FALSE;
271 }
273 }
274 else
275 ret = FALSE;
276 return ret;
277}
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 136 of file main.c.

137{
138 return malloc(cbSize);
139}
#define malloc
Definition: debug_ros.c:4

Referenced by accumulating_stream_output(), 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(), CertNameToStrA(), CertRDNValueToStrA(), CertRemoveEnhancedKeyUsageIdentifier(), CertStrToNameA(), CertVerifyRevocation(), CHashEncodeMsg_GetParam(), CHashEncodeMsg_Open(), CHashEncodeMsg_Update(), CNG_CalcHash(), CNG_ImportECCPubKey(), CNG_ImportRSAPubKey(), CNG_PrepareCertSignature(), 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_AcquirePrivateKeyFromProvInfo(), CRYPT_AddAlternateChainToChain(), CRYPT_AddCertToSimpleChain(), CRYPT_AddStringToMultiString(), CRYPT_AsnDecodeArray(), CRYPT_AsnEncodeBitsSwapBytes(), CRYPT_AsnEncodeNameConstraints(), CRYPT_AsnEncodeRdn(), CRYPT_AsnEncodeRsaPubKey_Bcrypt(), 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_EncodeValueWithType(), CRYPT_ExportKeyTrans(), CRYPT_ExportPublicKeyInfoEx(), CRYPT_FileNameOpenStoreA(), CRYPT_FindIssuer(), 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(), CryptAcquireCertificatePrivateKey(), CryptEncryptMessage(), CryptGetDefaultOIDFunctionAddress(), CryptInitOIDFunctionSet(), CryptInstallOIDFunctionAddress(), CryptMsgOpenToDecode(), CryptProtectData(), CryptRegisterOIDInfo(), CryptRetrieveObjectByUrlA(), CryptSignAndEncodeCertificate(), CryptSignMessage(), CryptUnregisterOIDInfo(), CSignedEncodeMsg_GetParam(), CSignedEncodeMsg_Open(), CSignedEncodeMsg_Update(), CSignedMsgData_AllocateHandles(), CSignedMsgData_Sign(), decode_base64_blob(), dump_element(), extract_hash(), File_RetrieveEncodedObjectW(), fill_protect_data(), find_cert_by_name_str_a(), find_cert_by_name_str_w(), find_matching_provider(), g_malloc(), get_provider_property(), I_CryptGetDefaultCryptProv(), import_key(), init_oid_info(), key_prov_info_matches_cert(), load_encryption_key(), mem_alloc(), name_value_to_str(), PFXImportCertStore(), read_oid_info(), read_serialized_KeyProvInfoProperty(), read_trusted_roots_from_known_locations(), serialize_KeyProvInfoProperty(), set_key_prov_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 146 of file main.c.

147{
148 free(pv);
149}
#define free
Definition: debug_ros.c:5

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(), CertNameToStrA(), CertRDNValueToStrA(), CertRemoveEnhancedKeyUsageIdentifier(), CertRemoveStoreFromCollection(), CertStrToNameA(), CertStrToNameW(), CertVerifyRevocation(), CHashEncodeMsg_Close(), CHashEncodeMsg_GetParam(), CNG_CalcHash(), CNG_ImportECCPubKey(), CNG_ImportRSAPubKey(), CNG_PrepareCertSignature(), cng_verify_msg_signature(), 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_AcquirePrivateKeyFromProvInfo(), CRYPT_AddCertToSimpleChain(), CRYPT_AddStringToMultiString(), CRYPT_AsnDecodeArray(), CRYPT_AsnEncodeBitsSwapBytes(), CRYPT_AsnEncodeNameConstraints(), CRYPT_AsnEncodeRdn(), CRYPT_AsnEncodeRsaPubKey_Bcrypt(), 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_FindIssuer(), 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_QueryPFXObject(), CRYPT_QuerySerializedContextObject(), CRYPT_ReadBlobFromFile(), CRYPT_ReadContextProp(), 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(), CryptAcquireCertificatePrivateKey(), 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(), extract_hash(), 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(), get_provider_property(), hash_matches_blob(), HTTP_RetrieveEncodedObjectW(), I_CryptGetDefaultCryptProv(), import_key(), key_prov_info_matches_cert(), load_encryption_key(), mem_free(), PFXImportCertStore(), read_trusted_roots_from_known_locations(), set_key_prov_info(), 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)

Definition at line 3679 of file msg.c.

3680{
3681 TRACE("(%p)\n", hCryptMsg);
3682
3683 if (hCryptMsg)
3684 {
3685 CryptMsgBase *msg = hCryptMsg;
3686
3687 if (InterlockedDecrement(&msg->ref) == 0)
3688 {
3689 TRACE("freeing %p\n", msg);
3690 if (msg->close)
3691 msg->close(msg);
3693 }
3694 }
3695 return TRUE;
3696}

Referenced by CEnvelopedEncodeMsg_Open(), CertCreateCTLContext(), CHashEncodeMsg_Open(), CRYPT_MsgCloseStore(), CRYPT_PKCSOpenStore(), CRYPT_QueryMessageObject(), CRYPT_QuerySignedMessage(), CRYPT_QueryUnsignedMessage(), CryptCATClose(), CryptCATOpen(), CryptEncryptMessage(), CryptGetMessageSignerCount(), CryptHashMessage(), CryptMsgSignCTL(), CryptSignMessage(), CryptVerifyDetachedMessageHash(), CryptVerifyDetachedMessageSignature(), CryptVerifyMessageHash(), CryptVerifyMessageSignature(), CTL_free(), load_secondary_signatures(), SoftpubCleanup(), test_data_msg_encoding(), test_data_msg_get_param(), test_data_msg_open(), test_data_msg_update(), test_decode_msg_get_param(), test_decode_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_get_and_verify_signer(), test_msg_get_param(), test_msg_open_to_decode(), test_signed_msg_encoding(), test_signed_msg_get_param(), test_signed_msg_open(), test_signed_msg_update(), test_verify_ecc_signature(), and testMessageStore().

◆ CryptMsgControl()

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

Definition at line 3718 of file msg.c.

3720{
3721 CryptMsgBase *msg = hCryptMsg;
3722
3723 TRACE("(%p, %08lx, %ld, %p)\n", hCryptMsg, dwFlags, dwCtrlType,
3724 pvCtrlPara);
3725 return msg->control(hCryptMsg, dwFlags, dwCtrlType, pvCtrlPara);
3726}

Referenced by CryptMsgGetAndVerifySigner(), CryptVerifyDetachedMessageHash(), CryptVerifyDetachedMessageSignature(), CryptVerifyMessageHash(), CryptVerifyMessageSignature(), test_decode_msg_get_param(), test_msg_control(), test_verify_ecc_signature(), 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 3666 of file msg.c.

3667{
3668 TRACE("(%p)\n", hCryptMsg);
3669
3670 if (hCryptMsg)
3671 {
3672 CryptMsgBase *msg = hCryptMsg;
3673
3675 }
3676 return hCryptMsg;
3677}

Referenced by CRYPT_MsgOpenStore(), and SoftpubLoadSignature().

◆ CryptMsgEncodeAndSignCTL()

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

Definition at line 3866 of file msg.c.

3869{
3870 BOOL ret;
3871 BYTE *pbCtlContent;
3872 DWORD cbCtlContent;
3873
3874 TRACE("(%08lx, %p, %p, %08lx, %p, %p)\n", dwMsgEncodingType, pCtlInfo,
3875 pSignInfo, dwFlags, pbEncoded, pcbEncoded);
3876
3877 if (dwFlags)
3878 {
3879 FIXME("unimplemented for flags %08lx\n", dwFlags);
3880 return FALSE;
3881 }
3882 if ((ret = CryptEncodeObjectEx(dwMsgEncodingType, PKCS_CTL, pCtlInfo,
3883 CRYPT_ENCODE_ALLOC_FLAG, NULL, &pbCtlContent, &cbCtlContent)))
3884 {
3885 ret = CryptMsgSignCTL(dwMsgEncodingType, pbCtlContent, cbCtlContent,
3886 pSignInfo, dwFlags, pbEncoded, pcbEncoded);
3887 LocalFree(pbCtlContent);
3888 }
3889 return ret;
3890}
BOOL WINAPI CryptMsgSignCTL(DWORD dwMsgEncodingType, BYTE *pbCtlContent, DWORD cbCtlContent, PCMSG_SIGNED_ENCODE_INFO pSignInfo, DWORD dwFlags, BYTE *pbEncoded, DWORD *pcbEncoded)
Definition: msg.c:3892

◆ CryptMsgGetAndVerifySigner()

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

Definition at line 3751 of file msg.c.

3754{
3755 HCERTSTORE store;
3756 DWORD i, signerIndex = 0;
3757 PCCERT_CONTEXT signerCert = NULL;
3758 BOOL ret = FALSE;
3759
3760 TRACE("(%p, %ld, %p, %08lx, %p, %p)\n", hCryptMsg, cSignerStore,
3761 rghSignerStore, dwFlags, ppSigner, pdwSignerIndex);
3762
3763 /* Clear output parameters */
3764 if (ppSigner)
3765 *ppSigner = NULL;
3766 if (pdwSignerIndex && !(dwFlags & CMSG_USE_SIGNER_INDEX_FLAG))
3767 *pdwSignerIndex = 0;
3768
3769 /* Create store to search for signer certificates */
3773 {
3774 HCERTSTORE msgStore = CertOpenStore(CERT_STORE_PROV_MSG, 0, 0, 0,
3775 hCryptMsg);
3776
3777 CertAddStoreToCollection(store, msgStore, 0, 0);
3778 CertCloseStore(msgStore, 0);
3779 }
3780 for (i = 0; i < cSignerStore; i++)
3781 CertAddStoreToCollection(store, rghSignerStore[i], 0, 0);
3782
3783 /* Find signer cert */
3785 {
3786 CERT_INFO *signer = CRYPT_GetSignerCertInfoFromMsg(hCryptMsg,
3787 *pdwSignerIndex);
3788
3789 if (signer)
3790 {
3791 signerIndex = *pdwSignerIndex;
3793 0, CERT_FIND_SUBJECT_CERT, signer, NULL);
3794 CryptMemFree(signer);
3795 }
3796 }
3797 else
3798 {
3799 DWORD count, size = sizeof(count);
3800
3802 &size))
3803 {
3804 for (i = 0; !signerCert && i < count; i++)
3805 {
3806 CERT_INFO *signer = CRYPT_GetSignerCertInfoFromMsg(hCryptMsg,
3807 i);
3808
3809 if (signer)
3810 {
3811 signerCert = CertFindCertificateInStore(store,
3813 NULL);
3814 if (signerCert)
3815 signerIndex = i;
3816 CryptMemFree(signer);
3817 }
3818 }
3819 }
3820 if (!signerCert)
3822 }
3823 if (signerCert)
3824 {
3827 signerCert->pCertInfo);
3828 else
3829 ret = TRUE;
3830 if (ret)
3831 {
3832 if (ppSigner)
3833 *ppSigner = CertDuplicateCertificateContext(signerCert);
3834 if (pdwSignerIndex)
3835 *pdwSignerIndex = signerIndex;
3836 }
3837 CertFreeCertificateContext(signerCert);
3838 }
3839
3840 CertCloseStore(store, 0);
3841 return ret;
3842}
BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority)
PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:358
static CERT_INFO * CRYPT_GetSignerCertInfoFromMsg(HCRYPTMSG msg, DWORD dwSignerIndex)
Definition: msg.c:3728
BOOL WINAPI CryptMsgControl(HCRYPTMSG hCryptMsg, DWORD dwFlags, DWORD dwCtrlType, const void *pvCtrlPara)
Definition: msg.c:3718
#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:4449

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 3634 of file msg.c.

3637{
3638 CDecodeMsg *msg;
3639
3640 TRACE("(%08lx, %08lx, %08lx, %08Ix, %p, %p)\n", dwMsgEncodingType,
3641 dwFlags, dwMsgType, hCryptProv, pRecipientInfo, pStreamInfo);
3642
3643 if (GET_CMSG_ENCODING_TYPE(dwMsgEncodingType) != PKCS_7_ASN_ENCODING)
3644 {
3646 return NULL;
3647 }
3648 msg = CryptMemAlloc(sizeof(CDecodeMsg));
3649 if (msg)
3650 {
3651 CryptMsgBase_Init((CryptMsgBase *)msg, dwFlags, pStreamInfo,
3654 msg->type = dwMsgType;
3655 msg->crypt_prov = hCryptProv;
3656 memset(&msg->u, 0, sizeof(msg->u));
3657 msg->msg_data.cbData = 0;
3658 msg->msg_data.pbData = NULL;
3659 msg->detached_data.cbData = 0;
3660 msg->detached_data.pbData = NULL;
3661 msg->properties = ContextPropertyList_Create();
3662 }
3663 return msg;
3664}
static BOOL CDecodeMsg_GetParam(HCRYPTMSG hCryptMsg, DWORD dwParamType, DWORD dwIndex, void *pvData, DWORD *pcbData)
Definition: msg.c:3231
static BOOL CDecodeMsg_Control(HCRYPTMSG hCryptMsg, DWORD dwFlags, DWORD dwCtrlType, const void *pvCtrlPara)
Definition: msg.c:3575
static void CryptMsgBase_Init(CryptMsgBase *msg, DWORD dwFlags, PCMSG_STREAM_INFO pStreamInfo, CryptMsgCloseFunc close, CryptMsgGetParamFunc get_param, CryptMsgUpdateFunc update, CryptMsgControlFunc control)
Definition: msg.c:95
static void CDecodeMsg_Close(HCRYPTMSG hCryptMsg)
Definition: msg.c:2092
static BOOL CDecodeMsg_Update(HCRYPTMSG hCryptMsg, const BYTE *pbData, DWORD cbData, BOOL fFinal)
Definition: msg.c:2465

Referenced by CertCreateCTLContext(), CRYPT_PKCSOpenStore(), CRYPT_QuerySignedMessage(), CRYPT_QueryUnsignedMessage(), CryptCATOpen(), CryptGetMessageSignerCount(), CryptVerifyDetachedMessageHash(), CryptVerifyDetachedMessageSignature(), CryptVerifyMessageHash(), CryptVerifyMessageSignature(), load_secondary_signatures(), 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(), test_verify_ecc_signature(), 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 2028 of file msg.c.

2031{
2032 HCRYPTMSG msg = NULL;
2033
2034 TRACE("(%08lx, %08lx, %08lx, %p, %s, %p)\n", dwMsgEncodingType, dwFlags,
2035 dwMsgType, pvMsgEncodeInfo, debugstr_a(pszInnerContentObjID), pStreamInfo);
2036
2037 if (GET_CMSG_ENCODING_TYPE(dwMsgEncodingType) != PKCS_7_ASN_ENCODING)
2038 {
2040 return NULL;
2041 }
2042 switch (dwMsgType)
2043 {
2044 case CMSG_DATA:
2045 msg = CDataEncodeMsg_Open(dwFlags, pvMsgEncodeInfo,
2046 pszInnerContentObjID, pStreamInfo);
2047 break;
2048 case CMSG_HASHED:
2049 msg = CHashEncodeMsg_Open(dwFlags, pvMsgEncodeInfo,
2050 pszInnerContentObjID, pStreamInfo);
2051 break;
2052 case CMSG_SIGNED:
2053 msg = CSignedEncodeMsg_Open(dwFlags, pvMsgEncodeInfo,
2054 pszInnerContentObjID, pStreamInfo);
2055 break;
2056 case CMSG_ENVELOPED:
2057 msg = CEnvelopedEncodeMsg_Open(dwFlags, pvMsgEncodeInfo,
2058 pszInnerContentObjID, pStreamInfo);
2059 break;
2061 case CMSG_ENCRYPTED:
2062 /* defined but invalid, fall through */
2063 default:
2065 }
2066 return msg;
2067}
static HCRYPTMSG CEnvelopedEncodeMsg_Open(DWORD dwFlags, const void *pvMsgEncodeInfo, LPCSTR pszInnerContentObjID, PCMSG_STREAM_INFO pStreamInfo)
Definition: msg.c:1943
static HCRYPTMSG CHashEncodeMsg_Open(DWORD dwFlags, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID, PCMSG_STREAM_INFO pStreamInfo)
Definition: msg.c:555
static HCRYPTMSG CSignedEncodeMsg_Open(DWORD dwFlags, const void *pvMsgEncodeInfo, LPCSTR pszInnerContentObjID, PCMSG_STREAM_INFO pStreamInfo)
Definition: msg.c:1358
static HCRYPTMSG CDataEncodeMsg_Open(DWORD dwFlags, const void *pvMsgEncodeInfo, LPSTR pszInnerContentObjID, PCMSG_STREAM_INFO pStreamInfo)
Definition: msg.c:369
#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:4402

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 3892 of file msg.c.

3895{
3896 static char oid_ctl[] = szOID_CTL;
3897 BOOL ret;
3898 HCRYPTMSG msg;
3899
3900 TRACE("(%08lx, %p, %ld, %p, %08lx, %p, %p)\n", dwMsgEncodingType,
3901 pbCtlContent, cbCtlContent, pSignInfo, dwFlags, pbEncoded, pcbEncoded);
3902
3903 if (dwFlags)
3904 {
3905 FIXME("unimplemented for flags %08lx\n", dwFlags);
3906 return FALSE;
3907 }
3908 msg = CryptMsgOpenToEncode(dwMsgEncodingType, 0, CMSG_SIGNED, pSignInfo,
3909 oid_ctl, NULL);
3910 if (msg)
3911 {
3912 ret = CryptMsgUpdate(msg, pbCtlContent, cbCtlContent, TRUE);
3913 if (ret)
3914 ret = CryptMsgGetParam(msg, CMSG_CONTENT_PARAM, 0, pbEncoded,
3915 pcbEncoded);
3917 }
3918 else
3919 ret = FALSE;
3920 return ret;
3921}

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 3855 of file msg.c.

3859{
3860 FIXME("(%08Ix, %08lx, %p, %ld, %p, %ld, %ld, %p, %08lx, %p): stub\n", hCryptProv,
3861 dwEncodingType, pbSignerInfo, cbSignerInfo, pbSignerInfoCountersignature,
3862 cbSignerInfoCountersignature, dwSignerType, pvSigner, dwFlags, pvReserved);
3863 return FALSE;
3864}

◆ 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 BOOL rc = FALSE;
831 struct protect_data_t protect_data;
832 HCRYPTHASH hHash;
835
836 TRACE("called\n");
837
839
840 if (!pDataIn || !pDataOut)
841 {
843 goto finished;
844 }
845
846 /* debug: show our arguments */
847 report(pDataIn,pOptionalEntropy,pPromptStruct,dwFlags);
848 TRACE("\tszDataDescr: %p %s\n", szDataDescr,
850
851 /* Windows appears to create an empty szDataDescr instead of maintaining
852 * a NULL */
853 if (!szDataDescr)
854 szDataDescr = L"";
855
856 /* get crypt context */
858 {
859 ERR("CryptAcquireContextW failed\n");
860 goto finished;
861 }
862
863 /* populate our structure */
864 if (!fill_protect_data(&protect_data,szDataDescr,hProv))
865 {
866 ERR("fill_protect_data\n");
867 goto free_context;
868 }
869
870 /* load key */
871 if (!load_encryption_key(hProv,protect_data.cipher_key_len,&protect_data.salt,pOptionalEntropy,&hKey))
872 {
874 }
875
876 /* create a hash for the encryption validation */
878 {
879 ERR("CryptCreateHash\n");
880 goto free_key;
881 }
882
883 /* calculate storage required */
884 dwLength=pDataIn->cbData;
885 if (CryptEncrypt(hKey, 0, TRUE, 0, pDataIn->pbData, &dwLength, 0) ||
887 {
888 ERR("CryptEncrypt\n");
889 goto free_hash;
890 }
891 TRACE("required encrypted storage: %lu\n", dwLength);
892
893 /* copy plain text into cipher area for CryptEncrypt call */
894 protect_data.cipher.cbData=dwLength;
895 if (!(protect_data.cipher.pbData=CryptMemAlloc(
896 protect_data.cipher.cbData)))
897 {
898 ERR("CryptMemAlloc\n");
899 goto free_hash;
900 }
901 memcpy(protect_data.cipher.pbData,pDataIn->pbData,pDataIn->cbData);
902
903 /* encrypt! */
904 dwLength=pDataIn->cbData;
905 if (!CryptEncrypt(hKey, hHash, TRUE, 0, protect_data.cipher.pbData,
906 &dwLength, protect_data.cipher.cbData))
907 {
908 ERR("CryptEncrypt %lu\n", GetLastError());
909 goto free_hash;
910 }
911 protect_data.cipher.cbData=dwLength;
912
913 /* debug: show the cipher */
914 TRACE_DATA_BLOB(&protect_data.cipher);
915
916 /* attach our fingerprint */
917 if (!convert_hash_to_blob(hHash, &protect_data.fingerprint))
918 {
919 ERR("convert_hash_to_blob\n");
920 goto free_hash;
921 }
922
923 /* serialize into an opaque blob */
924 if (!serialize(&protect_data, pDataOut))
925 {
926 ERR("serialize\n");
927 goto free_hash;
928 }
929
930 /* success! */
931 rc=TRUE;
932
933free_hash:
934 CryptDestroyHash(hHash);
935free_key:
938 free_protect_data(&protect_data);
939free_context:
941finished:
942 /* If some error occurred, and no error code was set, force one. */
943 if (!rc && GetLastError()==ERROR_SUCCESS)
944 {
946 }
947
948 if (rc)
949 {
951
952 TRACE_DATA_BLOB(pDataOut);
953 }
954
955 TRACE("returning %s\n", rc ? "ok" : "FAIL");
956
957 return rc;
958}
BOOL WINAPI CryptEncrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen, DWORD dwBufLen)
Definition: crypt.c:1071
#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(), test_cryptprotectdata(), and test_simpleroundtrip().

◆ CryptProtectMemory()

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

Definition at line 311 of file main.c.

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

◆ 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 770 of file object.c.

775{
776 static const DWORD unimplementedTypes =
778 BOOL ret = TRUE;
779
780 TRACE("(%08lx, %p, %08lx, %08lx, %08lx, %p, %p, %p, %p, %p, %p)\n",
781 dwObjectType, pvObject, dwExpectedContentTypeFlags,
782 dwExpectedFormatTypeFlags, dwFlags, pdwMsgAndCertEncodingType,
783 pdwContentType, pdwFormatType, phCertStore, phMsg, ppvContext);
784
785 if (dwObjectType != CERT_QUERY_OBJECT_BLOB &&
786 dwObjectType != CERT_QUERY_OBJECT_FILE)
787 {
788 WARN("unsupported type %ld\n", dwObjectType);
790 return FALSE;
791 }
792 if (!pvObject)
793 {
794 WARN("missing required argument\n");
796 return FALSE;
797 }
798 if (dwExpectedContentTypeFlags & unimplementedTypes)
799 WARN("unimplemented for types %08lx\n",
800 dwExpectedContentTypeFlags & unimplementedTypes);
801
802 if (pdwFormatType)
803 *pdwFormatType = CERT_QUERY_FORMAT_BINARY;
804 if (phCertStore)
805 *phCertStore = NULL;
806 if (phMsg)
807 *phMsg = NULL;
808 if (ppvContext)
809 *ppvContext = NULL;
810
811 ret = FALSE;
812 if ((dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_CERT) ||
813 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_CRL) ||
814 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_CTL))
815 {
816 ret = CRYPT_QueryContextObject(dwObjectType, pvObject,
817 dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags,
818 pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType, phCertStore,
819 ppvContext);
820 }
821 if (!ret &&
822 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE))
823 {
824 ret = CRYPT_QuerySerializedStoreObject(dwObjectType, pvObject,
825 pdwMsgAndCertEncodingType, pdwContentType, phCertStore, phMsg);
826 }
827 if (!ret &&
828 ((dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT) ||
829 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL) ||
830 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL)))
831 {
832 ret = CRYPT_QuerySerializedContextObject(dwObjectType, pvObject,
833 dwExpectedContentTypeFlags, pdwMsgAndCertEncodingType, pdwContentType,
834 phCertStore, ppvContext);
835 }
836 if (!ret &&
837 ((dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED) ||
838 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED)))
839 {
840 ret = CRYPT_QueryMessageObject(dwObjectType, pvObject,
841 dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags,
842 pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType,
843 phCertStore, phMsg);
844 }
845 if (!ret &&
846 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED))
847 {
848 ret = CRYPT_QueryEmbeddedMessageObject(dwObjectType, pvObject,
849 dwExpectedContentTypeFlags, pdwMsgAndCertEncodingType, pdwContentType,
850 phCertStore, phMsg);
851 }
852 if (!ret &&
853 (dwExpectedContentTypeFlags & CERT_QUERY_CONTENT_FLAG_PFX))
854 {
855 ret = CRYPT_QueryPFXObject(dwObjectType, pvObject,
856 dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags,
857 pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType,
858 phCertStore, phMsg);
859 }
860 if (!ret)
862 TRACE("returning %d\n", ret);
863 return ret;
864}
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:472
static BOOL CRYPT_QuerySerializedContextObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCERTSTORE *phCertStore, const void **ppvContext)
Definition: object.c:185
static BOOL CRYPT_QuerySerializedStoreObject(DWORD dwObjectType, const void *pvObject, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg)
Definition: object.c:348
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:96
static BOOL CRYPT_QueryEmbeddedMessageObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg)
Definition: object.c:621
static BOOL CRYPT_QueryPFXObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, DWORD *pdwFormatType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg)
Definition: object.c:728
#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(), open_store_from_file(), test_CryptQueryObject(), and test_query_object().

◆ CryptRegisterDefaultOIDFunction()

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

Definition at line 1097 of file oid.c.

1099{
1100 HKEY key;
1101 LPWSTR dlls;
1102 BOOL ret = FALSE;
1103
1104 TRACE("(%lx, %s, %ld, %s)\n", dwEncodingType, debugstr_a(pszFuncName),
1105 dwIndex, debugstr_w(pwszDll));
1106
1107 if (!pwszDll)
1108 {
1110 return FALSE;
1111 }
1112
1113 if (!CRYPT_GetDefaultOIDKey(dwEncodingType, pszFuncName, &key))
1114 return FALSE;
1115
1117 if (CRYPT_FindStringInMultiString(dlls, pwszDll))
1119 else
1120 {
1121 dlls = CRYPT_AddStringToMultiString(dlls, pwszDll, dwIndex);
1122 if (dlls)
1124 }
1127 return ret;
1128}
static struct list dlls
Definition: apartment.c:63
static LPWSTR CRYPT_AddStringToMultiString(LPWSTR multi, LPCWSTR toAdd, DWORD index)
Definition: oid.c:946
static LPCWSTR CRYPT_FindStringInMultiString(LPCWSTR multi, LPCWSTR toFind)
Definition: oid.c:916
static BOOL CRYPT_GetDefaultOIDKey(DWORD dwEncodingType, LPCSTR pszFuncName, PHKEY key)
Definition: oid.c:1038
static BOOL CRYPT_SetDefaultOIDDlls(HKEY key, LPCWSTR dlls)
Definition: oid.c:1083
static LPWSTR CRYPT_GetDefaultOIDDlls(HKEY key)
Definition: oid.c:1061
#define ERROR_FILE_EXISTS
Definition: winerror.h:287

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 635 of file oid.c.

637{
638 LONG r;
639 HKEY hKey;
640 LPSTR szKey;
641
642 TRACE("(%lx, %s, %s, %s, %s)\n", dwEncodingType, debugstr_a(pszFuncName),
643 debugstr_a(pszOID), debugstr_w(pwszDll), debugstr_a(pszOverrideFuncName));
644
645 /* Native does nothing pwszDll is NULL */
646 if (!pwszDll)
647 return TRUE;
648
649 /* I'm not matching MS bug for bug here, because I doubt any app depends on
650 * it: native "succeeds" if pszFuncName is NULL, but the nonsensical entry
651 * it creates would never be used.
652 */
653 if (!pszFuncName || !pszOID)
654 {
656 return FALSE;
657 }
658
659 szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
660 TRACE("Key name is %s\n", debugstr_a(szKey));
661
662 if (!szKey)
663 return FALSE;
664
666 CryptMemFree(szKey);
667
668 if (r != ERROR_SUCCESS) goto error_close_key;
669
670 /* write the values */
671 if (pszOverrideFuncName)
672 {
673 r = RegSetValueExA(hKey, "FuncName", 0, REG_SZ,
674 (const BYTE*)pszOverrideFuncName, lstrlenA(pszOverrideFuncName) + 1);
675 if (r != ERROR_SUCCESS) goto error_close_key;
676 }
677 r = RegSetValueExW(hKey, L"Dll", 0, REG_SZ, (const BYTE*) pwszDll,
678 (lstrlenW(pwszDll) + 1) * sizeof (WCHAR));
679
680error_close_key:
681
683
684 if (r != ERROR_SUCCESS)
685 {
687 return FALSE;
688 }
689
690 return TRUE;
691}
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 738 of file oid.c.

739{
740 char *key_name;
741 HKEY root = 0, key = 0;
742 DWORD err;
743
744 TRACE("(%p, %lx)\n", info, flags );
745
746 if (!info || info->cbSize != sizeof(*info) || !info->pszOID)
747 {
749 return FALSE;
750 }
751
752 if (!info->dwGroupId) return TRUE;
753
754 key_name = CryptMemAlloc(strlen(info->pszOID) + 16);
755 if (!key_name)
756 {
758 goto done;
759 }
760
761 err = RegCreateKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CryptDllFindOIDInfo",
762 0, NULL, 0, KEY_ALL_ACCESS, NULL, &root, NULL);
763 if (err != ERROR_SUCCESS) goto done;
764
765 sprintf(key_name, "%s!%lu", info->pszOID, info->dwGroupId);
767 if (err != ERROR_SUCCESS) goto done;
768
769 if (flags)
770 {
771 err = RegSetValueExW(key, L"Flags", 0, REG_DWORD, (const BYTE *)&flags, sizeof(flags));
772 if (err != ERROR_SUCCESS) goto done;
773 }
774
775 if (info->pwszName)
776 {
777 err = RegSetValueExW(key, L"Name", 0, REG_SZ, (const BYTE *)info->pwszName, (lstrlenW(info->pwszName) + 1) * sizeof(WCHAR));
778 if (err != ERROR_SUCCESS) goto done;
779 }
780
781 if (info->Algid)
782 {
783 err = RegSetValueExW(key, L"Algid", 0, REG_DWORD, (const BYTE *)&info->Algid, sizeof(info->Algid));
784 if (err != ERROR_SUCCESS) goto done;
785 }
786
787 if (info->ExtraInfo.cbData && info->ExtraInfo.pbData)
788 {
789 err = RegSetValueExW(key, L"ExtraInfo", 0, REG_BINARY, info->ExtraInfo.pbData, info->ExtraInfo.cbData);
790 if (err != ERROR_SUCCESS) goto done;
791 }
792
793 if (info->pwszCNGAlgid)
794 {
795 err = RegSetValueExW(key, L"CNGAlgid", 0, REG_SZ, (const BYTE *)info->pwszCNGAlgid, (lstrlenW(info->pwszCNGAlgid) + 1) * sizeof(WCHAR));
796 if (err != ERROR_SUCCESS) goto done;
797 }
798
799 if (info->pwszCNGExtraAlgid)
800 {
801 err = RegSetValueExW(key, L"CNGExtraAlgid", 0, REG_SZ, (const BYTE *)info->pwszCNGExtraAlgid, (lstrlenW(info->pwszCNGExtraAlgid) + 1) * sizeof(WCHAR));
802 if (err != ERROR_SUCCESS) goto done;
803 }
804
805done:
807 if (key) RegCloseKey(key);
808 if (root) RegCloseKey(root);
809
810 if (err)
812
813 return !err;
814}
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
Definition: reg.c:1096
#define sprintf
Definition: sprintf.c:45
#define REG_BINARY
Definition: nt_native.h:1499
#define KEY_ALL_ACCESS
Definition: nt_native.h:1044
#define err(...)
#define REG_DWORD
Definition: sdbapi.c:615

Referenced by test_registerOIDInfo().

◆ CryptReleaseContext()

WINADVAPI BOOL WINAPI CryptReleaseContext ( HCRYPTPROV  hProv,
DWORD  dwFlags 
)

Definition at line 641 of file crypt.c.

642{
644 BOOL ret = TRUE;
645
646 TRACE("(0x%Ix, %08lx)\n", hProv, dwFlags);
647
648 if (!pProv)
649 return FALSE;
650
651 if (InterlockedDecrement(&pProv->refcount) == 0)
652 {
653 ret = pProv->pFuncs->pCPReleaseContext(pProv->hPrivate, dwFlags);
654 pProv->dwMagic = 0;
655 FreeLibrary(pProv->hModule);
656#if 0
657 CRYPT_Free(pProv->pVTable->pContextInfo);
658#endif
660 CRYPT_Free(pProv->pVTable);
661 CRYPT_Free(pProv->pFuncs);
662 CRYPT_Free(pProv);
663 }
664 return ret;
665}

Referenced by catadmin_calc_hash_from_filehandle(), CDecodeMsg_Close(), CEnvelopedEncodeMsg_Close(), CEnvelopedEncodeMsg_Open(), CertContext_SetProperty(), CertCreateSelfSignCertificate(), CHashEncodeMsg_Close(), clean_up_aes_environment(), clean_up_base_environment(), clean_up_environment(), create_silly_rename(), create_websocket_accept(), CRYPT_FileNameOpenStoreW(), CRYPT_FileOpenStore(), CRYPT_GetDefaultProvider(), CRYPT_MemOpenStore(), CRYPT_MsgOpenStore(), CRYPT_RegOpenStore(), CRYPT_SysOpenStoreW(), CryptCATAdminEnumCatalogFromHash(), CryptProtectData(), CryptSignMessage(), CryptUnprotectData(), CSignedEncodeMsg_Open(), DllMain(), DllRegisterServer(), export_private_key_dlg_proc(), find_key_prov_info_in_provider(), hash_file(), I_CryptGetDefaultCryptProv(), import_key(), init_environment(), key_prov_info_matches_cert(), nfs41_client_owner(), open_cached_revocation_file(), PFXImportCertStore(), rdssl_cert_to_rkey(), rdssl_hash_info_create(), rdssl_hash_info_delete(), rdssl_hmac_md5(), rdssl_rc4_info_delete(), read_trusted_roots_from_known_locations(), sha1_hash(), SOFTPUB_VerifyImageHash(), START_TEST(), test_acquire_context(), test_container_sd(), test_CryptReleaseContext(), test_decode_msg_get_param(), test_encrypt_message(), test_enveloped_msg_open(), test_getDefaultCryptProv(), test_hashes(), test_incorrect_api_usage(), test_key_initialization(), test_machine_guid(), test_null_provider(), test_rc2_keylen(), 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(), test_verify_sig(), test_VerifySignature(), testAcquireCertPrivateKey(), testAcquireSecurityContext(), testCertSigs(), testCreateSelfSignCert(), testPortPublicKeyInfo(), and verify_signed_ocsp_response_info().

◆ 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 415 of file cryptnet_main.c.

419{
420 BOOL ret = FALSE;
421 int len;
422
423 TRACE("(%s, %s, %08lx, %ld, %p, %p, %p, %p, %p)\n", debugstr_a(pszURL),
424 debugstr_a(pszObjectOid), dwRetrievalFlags, dwTimeout, ppvObject,
425 hAsyncRetrieve, pCredentials, pvVerify, pAuxInfo);
426
427 if (!pszURL)
428 {
430 return FALSE;
431 }
432 len = MultiByteToWideChar(CP_ACP, 0, pszURL, -1, NULL, 0);
433 if (len)
434 {
435 LPWSTR url = CryptMemAlloc(len * sizeof(WCHAR));
436
437 if (url)
438 {
439 MultiByteToWideChar(CP_ACP, 0, pszURL, -1, url, len);
440 ret = CryptRetrieveObjectByUrlW(url, pszObjectOid,
441 dwRetrievalFlags, dwTimeout, ppvObject, hAsyncRetrieve,
442 pCredentials, pvVerify, pAuxInfo);
444 }
445 else
447 }
448 return ret;
449}
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:1384

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 1490 of file cryptnet_main.c.

1494{
1495 BOOL ret;
1498 HCRYPTOIDFUNCADDR hRetrieve = 0, hCreate = 0;
1499
1500 TRACE("(%s, %s, %08lx, %ld, %p, %p, %p, %p, %p)\n", debugstr_w(pszURL),
1501 debugstr_a(pszObjectOid), dwRetrievalFlags, dwTimeout, ppvObject,
1502 hAsyncRetrieve, pCredentials, pvVerify, pAuxInfo);
1503
1504 if (!pszURL)
1505 {
1507 return FALSE;
1508 }
1509 ret = CRYPT_GetRetrieveFunction(pszURL, &retrieve, &hRetrieve);
1510 if (ret)
1511 ret = CRYPT_GetCreateFunction(pszObjectOid, &create, &hCreate);
1512 if (ret)
1513 {
1514 CRYPT_BLOB_ARRAY object = { 0, NULL };
1516 void *freeContext;
1517 FILETIME expires;
1518
1519 ret = retrieve(pszURL, pszObjectOid, dwRetrievalFlags, dwTimeout,
1520 &object, &freeObject, &freeContext, hAsyncRetrieve, pCredentials,
1521 pAuxInfo);
1522 if (ret)
1523 {
1524 ret = create(pszObjectOid, dwRetrievalFlags, &object, ppvObject);
1525 if (ret && !(dwRetrievalFlags & CRYPT_DONT_CACHE_RESULT) &&
1526 CRYPT_GetExpiration(*ppvObject, pszObjectOid, &expires))
1527 {
1528 CRYPT_CacheURL(pszURL, &object, dwRetrievalFlags, expires);
1529 }
1530 freeObject(pszObjectOid, &object, freeContext);
1531 }
1532 }
1533 if (hCreate)
1534 CryptFreeOIDFunctionAddress(hCreate, 0);
1535 if (hRetrieve)
1536 CryptFreeOIDFunctionAddress(hRetrieve, 0);
1537 TRACE("returning %d\n", ret);
1538 return ret;
1539}
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 retrieve_crl_from_dist_points().

◆ 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 1941 of file crypt.c.

1942{
1943 PCRYPTPROV prov;
1945
1946 TRACE("(0x%Ix, %ld, %p, %08lx)\n", hHash, dwParam, pbData, dwFlags);
1947
1948 if (!(hash = hash_from_handle(hHash)))
1949 return FALSE;
1950
1951 if (!pbData || !hash->pProvider || hash->pProvider->dwMagic != MAGIC_CRYPTPROV)
1952 {
1954 return FALSE;
1955 }
1956
1957 prov = hash->pProvider;
1958 return prov->pFuncs->pCPSetHashParam(prov->hPrivate, hash->hPrivate,
1959 dwParam, pbData, dwFlags);
1960}

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

◆ CryptSetKeyParam()

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

Definition at line 1977 of file crypt.c.

1978{
1979 PCRYPTPROV prov;
1980 PCRYPTKEY key;
1981
1982 TRACE("(0x%Ix, %ld, %p, %08lx)\n", hKey, dwParam, pbData, dwFlags);
1983
1984 if (!(key = key_from_handle(hKey)))
1985 return FALSE;
1986
1987 if (!key->pProvider || key->pProvider->dwMagic != MAGIC_CRYPTPROV)
1988 {
1990 return FALSE;
1991 }
1992
1993 prov = key->pProvider;
1994 return prov->pFuncs->pCPSetKeyParam(prov->hPrivate, key->hPrivate,
1995 dwParam, pbData, dwFlags);
1996}

Referenced by test_block_cipher_modes(), test_des(), test_incorrect_api_usage(), 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 879 of file oid.c.

882{
883 LPSTR szKey;
884 LONG rc;
885 HKEY hKey;
886
887 TRACE("%lx %s %s %s %ld %p %ld\n", dwEncodingType, debugstr_a(pszFuncName),
888 debugstr_a(pszOID), debugstr_w(pwszValueName), dwValueType, pbValueData,
889 cbValueData);
890
891 if (!GET_CERT_ENCODING_TYPE(dwEncodingType))
892 return TRUE;
893
894 if (!pszFuncName || !pszOID || !pwszValueName)
895 {
897 return FALSE;
898 }
899
900 szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
901 rc = RegOpenKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
902 CryptMemFree(szKey);
903 if (rc)
904 SetLastError(rc);
905 else
906 {
907 rc = RegSetValueExW(hKey, pwszValueName, 0, dwValueType, pbValueData,
908 cbValueData);
909 if (rc)
910 SetLastError(rc);
912 }
913 return !rc;
914}

◆ CryptSetProviderA()

WINADVAPI BOOL WINAPI CryptSetProviderA ( LPCSTR  pszProvName,
DWORD  dwProvType 
)

Definition at line 2011 of file crypt.c.

2012{
2013 TRACE("(%s, %ld)\n", pszProvName, dwProvType);
2014 return CryptSetProviderExA(pszProvName, dwProvType, NULL, CRYPT_USER_DEFAULT);
2015}
BOOL WINAPI CryptSetProviderExA(LPCSTR pszProvName, DWORD dwProvType, DWORD *pdwReserved, DWORD dwFlags)
Definition: crypt.c:2123

◆ CryptSetProviderExA()

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

Definition at line 2123 of file crypt.c.

2124{
2125 BOOL ret = FALSE;
2126 PWSTR str = NULL;
2127
2128 TRACE("(%s, %ld, %p, %08lx)\n", pszProvName, dwProvType, pdwReserved, dwFlags);
2129
2130 if (CRYPT_ANSIToUnicode(pszProvName, &str, -1))
2131 {
2132 ret = CryptSetProviderExW(str, dwProvType, pdwReserved, dwFlags);
2133 CRYPT_Free(str);
2134 }
2135 return ret;
2136}
BOOL WINAPI CryptSetProviderExW(LPCWSTR pszProvName, DWORD dwProvType, DWORD *pdwReserved, DWORD dwFlags)
Definition: crypt.c:2043

Referenced by CryptSetProviderA().

◆ CryptSetProviderExW()

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

Definition at line 2043 of file crypt.c.

2044{
2045 HKEY hProvKey, hTypeKey;
2046 PWSTR keyname;
2047
2048 TRACE("(%s, %ld, %p, %08lx)\n", debugstr_w(pszProvName), dwProvType, pdwReserved, dwFlags);
2049
2050 if (!pszProvName || pdwReserved)
2051 {
2053 return FALSE;
2054 }
2055 if (dwProvType > MAXPROVTYPES)
2056 {
2058 return FALSE;
2059 }
2062 {
2064 return FALSE;
2065 }
2066
2067 if (!(keyname = CRYPT_GetTypeKeyName(dwProvType, dwFlags & CRYPT_USER_DEFAULT)))
2068 {
2070 return FALSE;
2071 }
2073 keyname, &hTypeKey))
2074 {
2075 CRYPT_Free(keyname);
2077 return FALSE;
2078 }
2079 CRYPT_Free(keyname);
2080
2082 {
2083 RegDeleteValueW(hTypeKey, L"Name");
2084 }
2085 else
2086 {
2087 if (!(keyname = CRYPT_GetProvKeyName(pszProvName)))
2088 {
2089 RegCloseKey(hTypeKey);
2091 return FALSE;
2092 }
2094 keyname, &hProvKey))
2095 {
2096 CRYPT_Free(keyname);
2097 RegCloseKey(hTypeKey);
2099 return FALSE;
2100 }
2101 CRYPT_Free(keyname);
2102
2103 if (RegSetValueExW(hTypeKey, L"Name", 0, REG_SZ, (const BYTE *)pszProvName,
2104 (lstrlenW(pszProvName) + 1)*sizeof(WCHAR)))
2105 {
2106 RegCloseKey(hTypeKey);
2107 RegCloseKey(hProvKey);
2108 return FALSE;
2109 }
2110
2111 RegCloseKey(hProvKey);
2112 }
2113 RegCloseKey(hTypeKey);
2114
2115 return TRUE;
2116}
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:4266

Referenced by CryptSetProviderExA(), and CryptSetProviderW().

◆ CryptSetProviderW()

WINADVAPI BOOL WINAPI CryptSetProviderW ( LPCWSTR  pszProvName,
DWORD  dwProvType 
)

Definition at line 2022 of file crypt.c.

2023{
2024 TRACE("(%s, %ld)\n", debugstr_w(pszProvName), dwProvType);
2025 return CryptSetProviderExW(pszProvName, dwProvType, NULL, CRYPT_USER_DEFAULT);
2026}

◆ CryptSetProvParam()

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

Definition at line 2153 of file crypt.c.

2154{
2155 PCRYPTPROV prov;
2156
2157 TRACE("(0x%Ix, %ld, %p, %08lx)\n", hProv, dwParam, pbData, dwFlags);
2158
2159 if (!(prov = provider_from_handle(hProv)))
2160 return FALSE;
2161
2162 if (dwParam == PP_USE_HARDWARE_RNG)
2163 {
2164 FIXME("PP_USE_HARDWARE_RNG: What do I do with this?\n");
2165 FIXME("\tLetting the CSP decide.\n");
2166 }
2167 if (dwFlags & PP_CLIENT_HWND)
2168 {
2169 /* FIXME: Should verify the parameter */
2170 if (pbData /* && IsWindow((HWND)pbData) */)
2171 {
2172 crypt_hWindow = (HWND)(pbData);
2173 return TRUE;
2174 } else {
2176 return FALSE;
2177 }
2178 }
2179 /* All other flags go to the CSP */
2180 return prov->pFuncs->pCPSetProvParam(prov->hPrivate, dwParam, pbData, dwFlags);
2181}
static HWND crypt_hWindow
Definition: crypt.c:61
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(), export_acquire_private_key(), and test_incorrect_api_usage().

◆ 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 2488 of file cert.c.

2492{
2493 BOOL ret;
2494 DWORD encodedSize, hashSize;
2495
2496 TRACE("(%08Ix, %ld, %ld, %s, %p, %p, %p, %p, %p)\n", hCryptProv, dwKeySpec,
2497 dwCertEncodingType, debugstr_a(lpszStructType), pvStructInfo,
2498 pSignatureAlgorithm, pvHashAuxInfo, pbEncoded, pcbEncoded);
2499
2500 ret = CryptEncodeObject(dwCertEncodingType, lpszStructType, pvStructInfo,
2501 NULL, &encodedSize);
2502 if (ret)
2503 {
2504 PBYTE encoded = CryptMemAlloc(encodedSize);
2505
2506 if (encoded)
2507 {
2508 ret = CryptEncodeObject(dwCertEncodingType, lpszStructType,
2509 pvStructInfo, encoded, &encodedSize);
2510 if (ret)
2511 {
2512 ret = CryptSignCertificate(hCryptProv, dwKeySpec,
2513 dwCertEncodingType, encoded, encodedSize, pSignatureAlgorithm,
2514 pvHashAuxInfo, NULL, &hashSize);
2515 if (ret)
2516 {
2517 PBYTE hash = CryptMemAlloc(hashSize);
2518
2519 if (hash)
2520 {
2521 ret = CryptSignCertificate(hCryptProv, dwKeySpec,
2522 dwCertEncodingType, encoded, encodedSize,
2523 pSignatureAlgorithm, pvHashAuxInfo, hash, &hashSize);
2524 if (ret)
2525 {
2526 CERT_SIGNED_CONTENT_INFO info = { { 0 } };
2527
2528 info.ToBeSigned.cbData = encodedSize;
2529 info.ToBeSigned.pbData = encoded;
2530 info.SignatureAlgorithm = *pSignatureAlgorithm;
2531 info.Signature.cbData = hashSize;
2532 info.Signature.pbData = hash;
2533 info.Signature.cUnusedBits = 0;
2534 ret = CryptEncodeObject(dwCertEncodingType,
2535 X509_CERT, &info, pbEncoded, pcbEncoded);
2536 }
2538 }
2539 else
2540 ret = FALSE;
2541 }
2542 }
2543 CryptMemFree(encoded);
2544 }
2545 else
2546 ret = FALSE;
2547 }
2548 return ret;
2549}
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:2429
BOOL WINAPI CryptEncodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType, const void *pvStructInfo, BYTE *pbEncoded, DWORD *pcbEncoded)
Definition: encode.c:4909

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 2429 of file cert.c.

2433{
2434 BOOL ret;
2436 HCRYPTHASH hHash;
2437
2438 TRACE("(%08Ix, %ld, %ld, %p, %ld, %p, %p, %p, %p)\n", hCryptProv,
2439 dwKeySpec, dwCertEncodingType, pbEncodedToBeSigned, cbEncodedToBeSigned,
2440 pSignatureAlgorithm, pvHashAuxInfo, pbSignature, pcbSignature);
2441
2443 pSignatureAlgorithm->pszObjId, 0);
2444 if (!info)
2445 {
2447 return FALSE;
2448 }
2449 if (info->dwGroupId == CRYPT_HASH_ALG_OID_GROUP_ID)
2450 {
2451 if (!hCryptProv)
2452 hCryptProv = I_CryptGetDefaultCryptProv(0);
2453 ret = CryptCreateHash(hCryptProv, info->Algid, 0, 0, &hHash);
2454 if (ret)
2455 {
2456 ret = CryptHashData(hHash, pbEncodedToBeSigned,
2457 cbEncodedToBeSigned, 0);
2458 if (ret)
2459 ret = CryptGetHashParam(hHash, HP_HASHVAL, pbSignature,
2460 pcbSignature, 0);
2461 CryptDestroyHash(hHash);
2462 }
2463 }
2464 else
2465 {
2466 if (!hCryptProv)
2467 {
2469 ret = FALSE;
2470 }
2471 else
2472 {
2473 ret = CryptCreateHash(hCryptProv, info->Algid, 0, 0, &hHash);
2474 if (ret)
2475 {
2476 ret = CryptHashData(hHash, pbEncodedToBeSigned,
2477 cbEncodedToBeSigned, 0);
2478 if (ret)
2479 ret = CryptSignHashW(hHash, dwKeySpec, NULL, 0, pbSignature,
2480 pcbSignature);
2481 CryptDestroyHash(hHash);
2482 }
2483 }
2484 }
2485 return ret;
2486}
BOOL WINAPI CryptSignHashW(HCRYPTHASH hHash, DWORD dwKeySpec, LPCWSTR sDescription, DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen)
Definition: crypt.c:1882
#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 1910 of file crypt.c.

1912{
1913 LPWSTR wsDescription;
1914 BOOL result;
1915
1916 TRACE("(0x%Ix, %ld, %s, %08lx, %p, %p)\n",
1917 hHash, dwKeySpec, debugstr_a(sDescription), dwFlags, pbSignature, pdwSigLen);
1918
1919 CRYPT_ANSIToUnicode(sDescription, &wsDescription, -1);
1920 result = CryptSignHashW(hHash, dwKeySpec, wsDescription, dwFlags, pbSignature, pdwSigLen);
1921 CRYPT_Free(wsDescription);
1922
1923 return result;
1924}

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 1882 of file crypt.c.

1884{
1886 PCRYPTPROV prov;
1887
1888 TRACE("(0x%Ix, %ld, %s, %08lx, %p, %p)\n",
1889 hHash, dwKeySpec, debugstr_w(sDescription), dwFlags, pbSignature, pdwSigLen);
1890
1891 if (!(hash = hash_from_handle(hHash)))
1892 return FALSE;
1893
1894 if (!pdwSigLen || !hash->pProvider || hash->pProvider->dwMagic != MAGIC_CRYPTPROV)
1895 {
1897 return FALSE;
1898 }
1899
1900 prov = hash->pProvider;
1901 return prov->pFuncs->pCPSignHash(prov->hPrivate, hash->hPrivate, dwKeySpec, sDescription,
1902 dwFlags, pbSignature, pdwSigLen);
1903}

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, %ld, %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:920
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 1062 of file base64.c.

1065{
1067 LONG ret;
1068
1069 TRACE("(%s, %ld, %08lx, %p, %p, %p, %p)\n", debugstr_an(pszString, cchString ? cchString : -1),
1070 cchString, dwFlags, pbBinary, pcbBinary, pdwSkip, pdwFlags);
1071
1072 if (!pszString)
1073 {
1075 return FALSE;
1076 }
1077 /* Only the bottom byte contains valid types */
1078 if (dwFlags & 0xfffffff0)
1079 {
1081 return FALSE;
1082 }
1083 switch (dwFlags)
1084 {
1087 break;
1090 break;
1093 break;
1096 break;
1099 break;
1102 break;
1103 case CRYPT_STRING_ANY:
1105 break;
1106 case CRYPT_STRING_HEX:
1108 break;
1112 FIXME("Unimplemented type %ld\n", dwFlags & 0x7fffffff);
1113 /* fall through */
1114 default:
1116 return FALSE;
1117 }
1118 if (!cchString)
1119 cchString = strlen(pszString);
1120 ret = decoder(pszString, cchString, pbBinary, pcbBinary, pdwSkip, pdwFlags);
1121 if (ret)
1123 return ret == ERROR_SUCCESS;
1124}
static LONG Base64RequestHeaderToBinaryA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:873
static LONG Base64HeaderToBinaryA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:862
LONG(* StringToBinaryAFunc)(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:720
static LONG Base64ToBinaryA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:805
static LONG string_to_hexA(const char *str, DWORD len, BYTE *hex, DWORD *hex_len, DWORD *skipped, DWORD *ret_flags)
Definition: base64.c:1057
static LONG Base64AnyToBinaryA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:895
static LONG DecodeAnyA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:932
static LONG Base64X509HeaderToBinaryA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:884
static LONG DecodeBinaryToBinaryA(LPCSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:908
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(), and test_CryptStringToBinary().

◆ CryptStringToBinaryW()

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

Definition at line 1280 of file base64.c.

1283{
1285 LONG ret;
1286
1287 TRACE("(%s, %ld, %08lx, %p, %p, %p, %p)\n", debugstr_wn(pszString, cchString ? cchString : -1),
1288 cchString, dwFlags, pbBinary, pcbBinary, pdwSkip, pdwFlags);
1289
1290 if (!pszString)
1291 {
1293 return FALSE;
1294 }
1295 /* Only the bottom byte contains valid types */
1296 if (dwFlags & 0xfffffff0)
1297 {
1299 return FALSE;
1300 }
1301 switch (dwFlags)
1302 {
1305 break;
1308 break;
1311 break;
1314 break;
1317 break;
1320 break;
1321 case CRYPT_STRING_ANY:
1323 break;
1324 case CRYPT_STRING_HEX:
1326 break;
1330 FIXME("Unimplemented type %ld\n", dwFlags & 0x7fffffff);
1331 /* fall through */
1332 default:
1334 return FALSE;
1335 }
1336 if (!cchString)
1337 cchString = lstrlenW(pszString);
1338 ret = decoder(pszString, cchString, pbBinary, pcbBinary, pdwSkip, pdwFlags);
1339 if (ret)
1341 return ret == ERROR_SUCCESS;
1342}
static LONG string_to_hexW(const WCHAR *str, DWORD len, BYTE *hex, DWORD *hex_len, DWORD *skipped, DWORD *ret_flags)
Definition: base64.c:1275
static LONG Base64HeaderToBinaryW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:1189
LONG(* StringToBinaryWFunc)(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:1129
static LONG Base64RequestHeaderToBinaryW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:1200
static LONG Base64AnyToBinaryW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:1222
static LONG Base64X509HeaderToBinaryW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:1211
static LONG Base64ToBinaryW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:1132
static LONG DecodeBinaryToBinaryW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:1235
static LONG DecodeAnyW(LPCWSTR pszString, DWORD cchString, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
Definition: base64.c:1259
#define debugstr_wn
Definition: kernel32.h:33

Referenced by CRYPT_QueryMessageObject(), decodeBase64WithLenFmtW(), and test_CryptStringToBinary().

◆ 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 989 of file protectdata.c.

996{
997 BOOL rc = FALSE;
998
1000 struct protect_data_t protect_data;
1001 HCRYPTHASH hHash;
1004
1005 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.";
1006
1007 TRACE("called\n");
1008
1010
1011 if (!pDataIn || !pDataOut)
1012 {
1014 goto finished;
1015 }
1016 if (!pDataIn->cbData)
1017 {
1019 goto finished;
1020 }
1021
1022 /* debug: show our arguments */
1023 report(pDataIn,pOptionalEntropy,pPromptStruct,dwFlags);
1024 TRACE("\tppszDataDescr: %p\n", ppszDataDescr);
1025
1026 /* take apart the opaque blob */
1027 if (!unserialize(pDataIn, &protect_data))
1028 {
1030 FIXME("%s\n",announce_bad_opaque_data);
1031 goto finished;
1032 }
1033
1034 /* perform basic validation on the resulting structure */
1035 if (!valid_protect_data(&protect_data))
1036 {
1038 FIXME("%s\n",announce_bad_opaque_data);
1039 goto free_protect_data;
1040 }
1041
1042 /* get a crypt context */
1044 {
1045 ERR("CryptAcquireContextW failed\n");
1046 goto free_protect_data;
1047 }
1048
1049 /* load key */
1050 if (!load_encryption_key(hProv,protect_data.cipher_key_len,&protect_data.salt,pOptionalEntropy,&hKey))
1051 {
1052 goto free_context;
1053 }
1054
1055 /* create a hash for the decryption validation */
1057 {
1058 ERR("CryptCreateHash\n");
1059 goto free_key;
1060 }
1061
1062 /* prepare for plaintext */
1063 pDataOut->cbData=protect_data.cipher.cbData;
1064 if (!(pDataOut->pbData=LocalAlloc( LPTR, pDataOut->cbData)))
1065 {
1066 ERR("CryptMemAlloc\n");
1067 goto free_hash;
1068 }
1069 memcpy(pDataOut->pbData,protect_data.cipher.pbData,protect_data.cipher.cbData);
1070
1071 /* decrypt! */
1072 if (!CryptDecrypt(hKey, hHash, TRUE, 0, pDataOut->pbData,
1073 &pDataOut->cbData) ||
1074 /* check the hash fingerprint */
1075 pDataOut->cbData > protect_data.cipher.cbData ||
1076 !hash_matches_blob(hHash, &protect_data.fingerprint))
1077 {
1079
1080 LocalFree( pDataOut->pbData );
1081 pDataOut->pbData = NULL;
1082 pDataOut->cbData = 0;
1083
1084 goto free_hash;
1085 }
1086
1087 /* Copy out the description */
1088 dwLength = (lstrlenW(protect_data.szDataDescr)+1) * sizeof(WCHAR);
1089 if (ppszDataDescr)
1090 {
1091 if (!(*ppszDataDescr = LocalAlloc(LPTR,dwLength)))
1092 {
1093 ERR("LocalAlloc (ppszDataDescr)\n");
1094 goto free_hash;
1095 }
1096 else {
1097 memcpy(*ppszDataDescr,protect_data.szDataDescr,dwLength);
1098 }
1099 }
1100
1101 /* success! */
1102 rc = TRUE;
1103
1104free_hash:
1105 CryptDestroyHash(hHash);
1106free_key:
1108free_context:
1111 free_protect_data(&protect_data);
1112finished:
1113 /* If some error occurred, and no error code was set, force one. */
1114 if (!rc && GetLastError()==ERROR_SUCCESS)
1115 {
1117 }
1118
1119 if (rc) {
1121
1122 if (ppszDataDescr)
1123 {
1124 TRACE("szDataDescr: %s\n",debugstr_w(*ppszDataDescr));
1125 }
1126 TRACE_DATA_BLOB(pDataOut);
1127 }
1128
1129 TRACE("returning %s\n", rc ? "ok" : "FAIL");
1130
1131 return rc;
1132}
BOOL WINAPI CryptDecrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen)
Definition: crypt.c:780
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: minwinbase.h:93

Referenced by read_key_value(), test_cryptunprotectdata(), and test_simpleroundtrip().

◆ CryptUnprotectMemory()

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

Definition at line 318 of file main.c.

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

◆ CryptUnregisterDefaultOIDFunction()

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

Definition at line 1130 of file oid.c.

1132{
1133 HKEY key;
1134 LPWSTR dlls;
1135 BOOL ret;
1136
1137 TRACE("(%lx, %s, %s)\n", dwEncodingType, debugstr_a(pszFuncName),
1138 debugstr_w(pwszDll));
1139
1140 if (!pwszDll)
1141 {
1143 return FALSE;
1144 }
1145
1146 if (!CRYPT_GetDefaultOIDKey(dwEncodingType, pszFuncName, &key))
1147 return FALSE;
1148
1150 if ((ret = CRYPT_RemoveStringFromMultiString(dlls, pwszDll)))
1154 return ret;
1155}
static BOOL CRYPT_RemoveStringFromMultiString(LPWSTR multi, LPCWSTR toRemove)
Definition: oid.c:1004

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

◆ CryptUnregisterOIDFunction()

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

Definition at line 819 of file oid.c.

821{
822 LPSTR szKey;
823 LONG rc;
824
825 TRACE("%lx %s %s\n", dwEncodingType, debugstr_a(pszFuncName),
826 debugstr_a(pszOID));
827
828 if (!pszFuncName || !pszOID)
829 {
831 return FALSE;
832 }
833
834 szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
836 CryptMemFree(szKey);
837 if (rc)
838 SetLastError(rc);
839 return !rc;
840}
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 696 of file oid.c.

697{
698 char *key_name;
699 HKEY root;
700 DWORD err;
701
702 TRACE("(%p)\n", info);
703
704 if (!info || info->cbSize != sizeof(*info) || !info->pszOID)
705 {
707 return FALSE;
708 }
709
710 err = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CryptDllFindOIDInfo", 0, KEY_ALL_ACCESS, &root);
711 if (err != ERROR_SUCCESS)
712 {
714 return FALSE;
715 }
716
717 key_name = CryptMemAlloc(strlen(info->pszOID) + 16);
718 if (key_name)
719 {
720 sprintf(key_name, "%s!%lu", info->pszOID, info->dwGroupId);
722 }
723 else
725
728
729 if (err)
731
732 return !err;
733}
struct _root root
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333

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 2551 of file cert.c.

2554{
2555 CRYPT_DATA_BLOB blob = { cbEncoded, (BYTE *)pbEncoded };
2556
2557 return CryptVerifyCertificateSignatureEx(hCryptProv, dwCertEncodingType,
2560}
#define CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY
Definition: wincrypt.h:3631
#define CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB
Definition: wincrypt.h:3626

Referenced by test_VerifySignature(), testCertSigs(), and 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 2914 of file cert.c.

2917{
2918 BOOL ret = TRUE;
2919 CRYPT_DATA_BLOB subjectBlob;
2920
2921 TRACE("(%08Ix, %ld, %ld, %p, %ld, %p, %08lx, %p)\n", hCryptProv,
2922 dwCertEncodingType, dwSubjectType, pvSubject, dwIssuerType, pvIssuer,
2924
2925 switch (dwSubjectType)
2926 {
2928 {
2929 PCRYPT_DATA_BLOB blob = pvSubject;
2930
2931 subjectBlob.pbData = blob->pbData;
2932 subjectBlob.cbData = blob->cbData;
2933 break;
2934 }
2936 {
2937 PCERT_CONTEXT context = pvSubject;
2938
2939 subjectBlob.pbData = context->pbCertEncoded;
2940 subjectBlob.cbData = context->cbCertEncoded;
2941 break;
2942 }
2944 {
2945 PCRL_CONTEXT context = pvSubject;
2946
2947 subjectBlob.pbData = context->pbCrlEncoded;
2948 subjectBlob.cbData = context->cbCrlEncoded;
2949 break;
2950 }
2951 default:
2953 ret = FALSE;
2954 }
2955
2956 if (ret)
2957 {
2958 PCERT_SIGNED_CONTENT_INFO signedCert = NULL;
2959 DWORD size = 0;
2960
2961 ret = CryptDecodeObjectEx(dwCertEncodingType, X509_CERT,
2962 subjectBlob.pbData, subjectBlob.cbData,
2964 &signedCert, &size);
2965 if (ret)
2966 {
2967 switch (dwIssuerType)
2968 {
2971 dwCertEncodingType, pvIssuer,
2972 signedCert);
2973 break;
2976 dwCertEncodingType,
2977 &((PCCERT_CONTEXT)pvIssuer)->pCertInfo->SubjectPublicKeyInfo,
2978 signedCert);
2979 break;
2981 FIXME("CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN: stub\n");
2982 ret = FALSE;
2983 break;
2985 if (pvIssuer)
2986 {
2988 ret = FALSE;
2989 }
2990 else
2991 {
2992 FIXME("unimplemented for NULL signer\n");
2994 ret = FALSE;
2995 }
2996 break;
2997 default:
2999 ret = FALSE;
3000 }
3001 LocalFree(signedCert);
3002 }
3003 }
3004 return ret;
3005}
static BOOL CRYPT_VerifyCertSignatureFromPublicKeyInfo(HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEncodingType, CERT_PUBLIC_KEY_INFO *pubKeyInfo, const CERT_SIGNED_CONTENT_INFO *signedCert)
Definition: cert.c:2896
#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 testVerifyCertSigEx().

◆ 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, %ld, %ld, %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, %ld, %p, %ld, %ld, %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, %ld, %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, %ld, %p, %ld, %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 2238 of file crypt.c.

2240{
2241 LPWSTR wsDescription;
2242 BOOL result;
2243
2244 TRACE("(0x%Ix, %p, %ld, 0x%Ix, %s, %08lx)\n", hHash, pbSignature,
2245 dwSigLen, hPubKey, debugstr_a(sDescription), dwFlags);
2246
2247 CRYPT_ANSIToUnicode(sDescription, &wsDescription, -1);
2248 result = CryptVerifySignatureW(hHash, pbSignature, dwSigLen, hPubKey, wsDescription, dwFlags);
2249 CRYPT_Free(wsDescription);
2250
2251 return result;
2252}
BOOL WINAPI CryptVerifySignatureW(HCRYPTHASH hHash, const BYTE *pbSignature, DWORD dwSigLen, HCRYPTKEY hPubKey, LPCWSTR sDescription, DWORD dwFlags)
Definition: crypt.c:2205

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 2205 of file crypt.c.

2207{
2209 PCRYPTKEY key;
2210 PCRYPTPROV prov;
2211
2212 TRACE("(0x%Ix, %p, %ld, 0x%Ix, %s, %08lx)\n", hHash, pbSignature,
2213 dwSigLen, hPubKey, debugstr_w(sDescription), dwFlags);
2214
2215 if (!(hash = hash_from_handle(hHash)))
2216 return FALSE;
2217
2218 if (!(key = key_from_handle(hPubKey)))
2219 return FALSE;
2220
2221 if (!hash->pProvider || hash->pProvider->dwMagic != MAGIC_CRYPTPROV ||
2222 !key->pProvider || key->pProvider->dwMagic != MAGIC_CRYPTPROV)
2223 {
2225 return FALSE;
2226 }
2227
2228 prov = hash->pProvider;
2229 return prov->pFuncs->pCPVerifySignature(prov->hPrivate, hash->hPrivate, pbSignature, dwSigLen,
2230 key->hPrivate, sDescription, dwFlags);
2231}

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

◆ FindCertsByIssuer()

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

Definition at line 1160 of file wintrust_main.c.

1163{
1164 FIXME("(%p, %p, %p, %p, %ld, %s, %ld): stub\n", pCertChains, pcbCertChains,
1165 pcCertChains, pbEncodedIssuerName, cbEncodedIssuerName,
1166 debugstr_w(pwszPurpose), dwKeySpec);
1167 return E_FAIL;
1168}
#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 
)

◆ PFXExportCertStoreEx()

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

◆ PFXImportCertStore()

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

◆ PFXIsPFXBlob()

WINCRYPT32API BOOL WINAPI PFXIsPFXBlob ( CRYPT_DATA_BLOB pPFX)

Definition at line 7085 of file decode.c.

7086{
7087 BOOL ret;
7088
7089 TRACE_(crypt)("(%p)\n", pPFX);
7090
7091 /* A PFX blob is an asn.1-encoded sequence, consisting of at least a
7092 * version integer of length 1 (3 encoded byes) and at least one other
7093 * datum (two encoded bytes), plus at least two bytes for the outer
7094 * sequence. Thus, even an empty PFX blob is at least 7 bytes in length.
7095 */
7096 if (pPFX->cbData < 7)
7097 ret = FALSE;
7098 else if (pPFX->pbData[0] == ASN_SEQUENCE)
7099 {
7100 DWORD len;
7101
7102 if ((ret = CRYPT_GetLengthIndefinite(pPFX->pbData, pPFX->cbData, &len)))
7103 {
7104 BYTE lenLen = GET_LEN_BYTES(pPFX->pbData[1]);
7105
7106 /* Need at least three bytes for the integer version */
7107 if (pPFX->cbData < 1 + lenLen + 3)
7108 ret = FALSE;
7109 else if (pPFX->pbData[1 + lenLen] != ASN_INTEGER || /* Tag */
7110 pPFX->pbData[1 + lenLen + 1] != 1 || /* Definite length */
7111 pPFX->pbData[1 + lenLen + 2] != 3) /* PFX version */
7112 ret = FALSE;
7113 }
7114 }
7115 else
7116 ret = FALSE;
7117 return ret;
7118}
static BOOL CRYPT_GetLengthIndefinite(const BYTE *pbEncoded, DWORD cbEncoded, DWORD *len)
Definition: decode.c:124
#define GET_LEN_BYTES(b)
Definition: decode.c:116
#define ASN_INTEGER
Definition: snmp.h:103

Referenced by CRYPT_QueryPFXObject().

◆ PFXVerifyPassword()

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

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 catadmin_calc_hash_from_filehandle(), CryptCATAdminAcquireContext2(), 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(), CryptCATAdminAcquireContext2(), 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(), CryptUnprotectData(), and import_key().

◆ 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.