⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wincrypt.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 3 页
字号:
	DWORD cbSize;	CERT_USAGE_MATCH RequestedUsage;#if CERT_CHAIN_PARA_HAS_EXTRA_FIELDS	CERT_USAGE_MATCH RequestedIssuancePolicy;	DWORD dwUrlRetrievalTimeout;	BOOL fCheckRevocationFreshnessTime;	DWORD dwRevocationFreshnessTime;#endif} CERT_CHAIN_PARA, *PCERT_CHAIN_PARA;typedef BOOL (WINAPI *PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK)(PCCERT_CONTEXT,void*);typedef struct _CERT_CHAIN_FIND_BY_ISSUER_PARA {	DWORD cbSize;	LPCSTR pszUsageIdentifier;	DWORD dwKeySpec;	DWORD dwAcquirePrivateKeyFlags;	DWORD cIssuer;	CERT_NAME_BLOB* rgIssuer;	PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK pfnFIndCallback;	void* pvFindArg;	DWORD* pdwIssuerChainIndex;	DWORD* pdwIssuerElementIndex;} CERT_CHAIN_FIND_BY_ISSUER_PARA, *PCERT_CHAIN_FIND_BY_ISSUER_PARA;/* #endif */typedef struct _CERT_TRUST_STATUS {	DWORD dwErrorStatus;	DWORD dwInfoStatus;} CERT_TRUST_STATUS, *PCERT_TRUST_STATUS;typedef struct _CRL_ENTRY {	CRYPT_INTEGER_BLOB SerialNumber;	FILETIME RevocationDate;	DWORD cExtension;	PCERT_EXTENSION rgExtension;} CRL_ENTRY, *PCRL_ENTRY;typedef struct _CRL_INFO {	DWORD dwVersion;	CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm;	CERT_NAME_BLOB Issuer;	FILETIME ThisUpdate;	FILETIME NextUpdate;	DWORD cCRLEntry;	PCRL_ENTRY rgCRLEntry;	DWORD cExtension;	PCERT_EXTENSION rgExtension;} CRL_INFO, *PCRL_INFO;typedef struct _CRL_CONTEXT {	DWORD dwCertEncodingType;	BYTE* pbCrlEncoded;	DWORD cbCrlEncoded;	PCRL_INFO pCrlInfo;	HCERTSTORE hCertStore;} CRL_CONTEXT, *PCRL_CONTEXT;typedef const CRL_CONTEXT *PCCRL_CONTEXT;typedef struct _CERT_REVOCATION_CRL_INFO {	DWORD cbSize;	PCCRL_CONTEXT pBaseCRLContext;	PCCRL_CONTEXT pDeltaCRLContext;	PCRL_ENTRY pCrlEntry;	BOOL fDeltaCrlEntry;} CERT_REVOCATION_CRL_INFO, *PCERT_REVOCATION_CRL_INFO;typedef struct _CERT_REVOCATION_INFO {	DWORD cbSize;	DWORD dwRevocationResult;	LPCSTR pszRevocationOid;	LPVOID pvOidSpecificInfo;	BOOL fHasFreshnessTime;	DWORD dwFreshnessTime;	PCERT_REVOCATION_CRL_INFO pCrlInfo;} CERT_REVOCATION_INFO, *PCERT_REVOCATION_INFO;/* #if (_WIN32_WINNT>=0x500) */typedef struct _CERT_CHAIN_ELEMENT {	DWORD cbSize;	PCCERT_CONTEXT pCertContext;	CERT_TRUST_STATUS TrustStatus;	PCERT_REVOCATION_INFO pRevocationInfo;	PCERT_ENHKEY_USAGE pIssuanceUsage;	PCERT_ENHKEY_USAGE pApplicationUsage;} CERT_CHAIN_ELEMENT, *PCERT_CHAIN_ELEMENT;/* #endif */typedef struct _CRYPT_ATTRIBUTE {	LPSTR pszObjId;	DWORD cValue;	PCRYPT_ATTR_BLOB rgValue;} CRYPT_ATTRIBUTE, *PCRYPT_ATTRIBUTE;typedef struct _CTL_ENTRY {	CRYPT_DATA_BLOB SubjectIdentifier;	DWORD cAttribute;	PCRYPT_ATTRIBUTE rgAttribute;} CTL_ENTRY, *PCTL_ENTRY;typedef struct _CTL_INFO {	DWORD dwVersion;	CTL_USAGE SubjectUsage;	CRYPT_DATA_BLOB ListIdentifier;	CRYPT_INTEGER_BLOB SequenceNumber;	FILETIME ThisUpdate;	FILETIME NextUpdate;	CRYPT_ALGORITHM_IDENTIFIER SubjectAlgorithm;	DWORD cCTLEntry;	PCTL_ENTRY rgCTLEntry;	DWORD cExtension;	PCERT_EXTENSION rgExtension;} CTL_INFO, *PCTL_INFO;typedef struct _CTL_CONTEXT {	DWORD dwMsgAndCertEncodingType;	BYTE* pbCtlEncoded;	DWORD cbCtlEncoded;	PCTL_INFO pCtlInfo;	HCERTSTORE hCertStore;	HCRYPTMSG hCryptMsg;	BYTE* pbCtlContent;	DWORD cbCtlContent;} CTL_CONTEXT, *PCTL_CONTEXT;typedef const CTL_CONTEXT *PCCTL_CONTEXT;typedef struct _CERT_TRUST_LIST_INFO {	DWORD cbSize;	PCTL_ENTRY pCtlEntry;	PCCTL_CONTEXT pCtlContext;} CERT_TRUST_LIST_INFO, *PCERT_TRUST_LIST_INFO;typedef struct _CERT_SIMPLE_CHAIN {	DWORD cbSize;	CERT_TRUST_STATUS TrustStatus;	DWORD cElement;	PCERT_CHAIN_ELEMENT* rgpElement;	PCERT_TRUST_LIST_INFO pTrustListInfo;	BOOL fHasRevocationFreshnessTime;	DWORD dwRevocationFreshnessTime;} CERT_SIMPLE_CHAIN, *PCERT_SIMPLE_CHAIN;/* #if (_WIN32_WINNT>=0x500) */typedef const struct _CERT_CHAIN_CONTEXT* PCCERT_CHAIN_CONTEXT;typedef struct _CERT_CHAIN_CONTEXT {	DWORD cbSize;	CERT_TRUST_STATUS TrustStatus;	DWORD cChain;	PCERT_SIMPLE_CHAIN* rgpChain;	DWORD cLowerQualityChainContext;	PCCERT_CHAIN_CONTEXT* rgpLowerQualityChainContext;	BOOL fHasRevocationFreshnessTime;	DWORD dwRevocationFreshnessTime;} CERT_CHAIN_CONTEXT, *PCERT_CHAIN_CONTEXT;/* #endif */typedef struct _PROV_ENUMALGS {	ALG_ID aiAlgid;	DWORD dwBitLen;	DWORD dwNameLen;	CHAR szName[20];} PROV_ENUMALGS;typedef struct _PUBLICKEYSTRUC {	BYTE bType;	BYTE bVersion;	WORD reserved;	ALG_ID aiKeyAlg;} BLOBHEADER, PUBLICKEYSTRUC;typedef struct _RSAPUBKEY {	DWORD magic;	DWORD bitlen;	DWORD pubexp;} RSAPUBKEY;typedef struct _HMAC_Info{	ALG_ID HashAlgid;	BYTE* pbInnerString;	DWORD cbInnerString;	BYTE* pbOuterString;	DWORD cbOuterString;} HMAC_INFO, *PHMAC_INFO;#if (WINVER >= 0x0501) /* Windows Server 2003, Windows XP */typedef struct _CMC_ADD_ATTRIBUTES_INFO {  DWORD dwCmcDataReference;  DWORD cCertReference;  DWORD* rgdwCertReference;  DWORD cAttribute;  PCRYPT_ATTRIBUTE rgAttribute;} CMC_ADD_ATTRIBUTES_INFO,  *PCMC_ADD_ATTRIBUTES_INFO;typedef struct _CMC_ADD_EXTENSIONS_INFO {  DWORD dwCmcDataReference;  DWORD cCertReference;  DWORD* rgdwCertReference;  DWORD cExtension;  PCERT_EXTENSION rgExtension;} CMC_ADD_EXTENSIONS_INFO,  *PCMC_ADD_EXTENSIONS_INFO;#endif /* (WINVER >= 0x0501) */ /* Windows Server 2003, Windows XP */#if (WINVER >= 0x0410) /* Windows 98 *//* need PCERT_OTHER_NAME & CERT_DATA_BLOB!typedef struct _CERT_ALT_NAME_ENTRY {  DWORD dwAltNameChoice;  union {    PCERT_OTHER_NAME pOtherName;    LPWSTR pwszRfc822Name;    LPWSTR pwszDNSName;    CERT_DATA_BLOB x400Address;    CERT_NAME_BLOB DirectoryName;    LPWSTR pEdiPartyName;    LPWSTR pwszURL;    CRYPT_DATA_BLOB IPAddress;    LPSTR pszRegisteredID;  };} CERT_ALT_NAME_ENTRY,  *PCERT_ALT_NAME_ENTRY;*//* needs CERT_ALT_NAME_ENTRY above, which lacks prereqstypedef struct _CERT_ALT_NAME_INFO {  DWORD cAltEntry;  PCERT_ALT_NAME_ENTRY rgAltEntry;} CERT_ALT_NAME_INFO,  *PCERT_ALT_NAME_INFO; */typedef struct _CERT_NAME_VALUE {  DWORD dwValueType;  CERT_RDN_VALUE_BLOB Value;} CERT_NAME_VALUE,  *PCERT_NAME_VALUE;typedef struct _CERT_POLICY_QUALIFIER_INFO {  LPSTR pszPolicyQualifierId;  CRYPT_OBJID_BLOB Qualifier;} CERT_POLICY_QUALIFIER_INFO,  *PCERT_POLICY_QUALIFIER_INFO;typedef struct _CERT_POLICY_CONSTRAINTS_INFO {  BOOL fRequireExplicitPolicy;  DWORD dwRequireExplicitPolicySkipCerts;  BOOL fInhibitPolicyMapping;  DWORD dwInhibitPolicyMappingSkipCerts;} CERT_POLICY_CONSTRAINTS_INFO,  *PCERT_POLICY_CONSTRAINTS_INFO;#endif /* (WINVER >= 0x0410) */ /* Windows 98 */#if (WINVER >= 0x0501) /* Windows Server 2003, Windows XP */typedef struct _CERT_POLICY_MAPPING {  LPSTR pszIssuerDomainPolicy;  LPSTR pszSubjectDomainPolicy;} CERT_POLICY_MAPPING,  *PCERT_POLICY_MAPPING;typedef struct _CERT_POLICY_MAPPINGS_INFO {  DWORD cPolicyMapping;  PCERT_POLICY_MAPPING rgPolicyMapping;} CERT_POLICY_MAPPINGS_INFO,  *PCERT_POLICY_MAPPINGS_INFO;#endif /* (WINVER >= 0x0501) */ /* Windows Server 2003, Windows XP */BOOL WINAPI CertCloseStore(HCERTSTORE,DWORD);BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE,PCCERT_CONTEXT,LPFILETIME,HCERTSTORE,PCERT_CHAIN_PARA,DWORD,LPVOID,PCCERT_CHAIN_CONTEXT*);BOOL WINAPI CertVerifyCertificateChainPolicy(LPCSTR,PCCERT_CHAIN_CONTEXT,PCERT_CHAIN_POLICY_PARA,PCERT_CHAIN_POLICY_STATUS);void WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT);DWORD WINAPI CertNameToStrA(DWORD,PCERT_NAME_BLOB,DWORD,LPSTR,DWORD);DWORD WINAPI CertNameToStrW(DWORD,PCERT_NAME_BLOB,DWORD,LPWSTR,DWORD);HCERTSTORE WINAPI CertOpenSystemStoreA(HCRYPTPROV,LPCSTR);HCERTSTORE WINAPI CertOpenSystemStoreW(HCRYPTPROV,LPCWSTR);HCERTSTORE WINAPI CertOpenStore(LPCSTR,DWORD,HCRYPTPROV,DWORD,const void*);PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE,DWORD,DWORD,DWORD,const void*,PCCERT_CONTEXT);BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT);PCCERT_CONTEXT WINAPI CertGetIssuerCertificateFromStore(HCERTSTORE,PCCERT_CONTEXT,PCCERT_CONTEXT,DWORD*);PCCERT_CHAIN_CONTEXT WINAPI CertFindChainInStore(HCERTSTORE,DWORD,DWORD,DWORD,const void*,PCCERT_CHAIN_CONTEXT);HCERTSTORE WINAPI CertDuplicateStore(HCERTSTORE);PCCERT_CONTEXT WINAPI CertEnumCertificatesInStore(HCERTSTORE,PCCERT_CONTEXT);PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext(PCCERT_CONTEXT);DWORD WINAPI CertGetNameStringA(PCCERT_CONTEXT,DWORD,DWORD,void*,LPSTR,DWORD);DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT,DWORD,DWORD,void*,LPWSTR,DWORD);BOOL WINAPI PFXIsPFXBlob(CRYPT_DATA_BLOB*);PCERT_EXTENSION WINAPI CertFindExtension(LPCSTR,DWORD,CERT_EXTENSION*);BOOL WINAPI CryptDecodeObject(DWORD,LPCSTR,const BYTE*,DWORD,DWORD,void*,DWORD*);BOOL WINAPI CryptDecodeObjectEx(DWORD,LPCSTR,const BYTE*,DWORD,DWORD,PCRYPT_DECODE_PARA,void*,DWORD*);BOOL WINAPI CryptEncodeObject(DWORD dwCertEncodingType,LPCSTR,const void*,BYTE*,DWORD*);BOOL WINAPI CryptEncodeObjectEx(DWORD,LPCSTR,const void*,DWORD,PCRYPT_ENCODE_PARA,void*,DWORD*);BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE,PCCERT_CONTEXT,DWORD,PCCERT_CONTEXT*);BOOL WINAPI CertCompareCertificate(DWORD,PCERT_INFO,PCERT_INFO);BOOL WINAPI PFXVerifyPassword(CRYPT_DATA_BLOB*,LPCWSTR,DWORD);HCERTSTORE WINAPI PFXImportCertStore(CRYPT_DATA_BLOB*,LPCWSTR,DWORD);BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT);WINADVAPI BOOL WINAPI CryptAcquireContextA(HCRYPTPROV*,LPCSTR,LPCSTR,DWORD,DWORD);WINADVAPI BOOL WINAPI CryptAcquireContextW(HCRYPTPROV*,LPCWSTR,LPCWSTR,DWORD,DWORD);WINADVAPI  BOOL WINAPI CryptContextAddRef(HCRYPTPROV,DWORD*,DWORD);WINADVAPI BOOL WINAPI CryptReleaseContext(HCRYPTPROV,DWORD);WINADVAPI BOOL WINAPI CryptGenKey(HCRYPTPROV,ALG_ID,DWORD,HCRYPTKEY*);WINADVAPI BOOL WINAPI CryptDeriveKey(HCRYPTPROV,ALG_ID,HCRYPTHASH,DWORD,HCRYPTKEY*);WINADVAPI BOOL WINAPI CryptDestroyKey(HCRYPTKEY);#if (WINVER >= 0x0500)WINADVAPI BOOL WINAPI CryptDuplicateHash(HCRYPTHASH,DWORD*,DWORD,HCRYPTHASH*);WINADVAPI BOOL WINAPI CryptDuplicateKey(HCRYPTKEY,DWORD*,DWORD,HCRYPTKEY*);#endifWINADVAPI BOOL WINAPI CryptSetKeyParam(HCRYPTKEY,DWORD,PBYTE,DWORD);WINADVAPI BOOL WINAPI CryptGetKeyParam(HCRYPTKEY,DWORD,PBYTE,PDWORD,DWORD);WINADVAPI BOOL WINAPI CryptSetHashParam(HCRYPTHASH,DWORD,PBYTE,DWORD);WINADVAPI BOOL WINAPI CryptGetHashParam(HCRYPTHASH,DWORD,PBYTE,PDWORD,DWORD);WINADVAPI BOOL WINAPI CryptSetProvParam(HCRYPTPROV,DWORD,PBYTE,DWORD);WINADVAPI BOOL WINAPI CryptGetProvParam(HCRYPTPROV,DWORD,PBYTE,PDWORD,DWORD);WINADVAPI BOOL WINAPI CryptGenRandom(HCRYPTPROV,DWORD,PBYTE);WINADVAPI BOOL WINAPI CryptGetUserKey(HCRYPTPROV,DWORD,HCRYPTKEY*);WINADVAPI BOOL WINAPI CryptExportKey(HCRYPTKEY,HCRYPTKEY,DWORD,DWORD,PBYTE,PDWORD);WINADVAPI BOOL WINAPI CryptImportKey(HCRYPTPROV,PBYTE,DWORD,HCRYPTKEY,DWORD,HCRYPTKEY*);WINADVAPI BOOL WINAPI CryptEncrypt(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,PBYTE,PDWORD,DWORD);WINADVAPI BOOL WINAPI CryptDecrypt(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,PBYTE,PDWORD);WINADVAPI BOOL WINAPI CryptCreateHash(HCRYPTPROV,ALG_ID,HCRYPTKEY,DWORD,HCRYPTHASH*);WINADVAPI BOOL WINAPI CryptHashData(HCRYPTHASH,PBYTE,DWORD,DWORD);WINADVAPI BOOL WINAPI CryptHashSessionKey(HCRYPTHASH,HCRYPTKEY,DWORD);WINADVAPI BOOL WINAPI CryptGetHashValue(HCRYPTHASH,DWORD,PBYTE,PDWORD);WINADVAPI BOOL WINAPI CryptDestroyHash(HCRYPTHASH);WINADVAPI BOOL WINAPI CryptSignHashA(HCRYPTHASH,DWORD,LPCSTR,DWORD,PBYTE,PDWORD);WINADVAPI BOOL WINAPI CryptSignHashW(HCRYPTHASH,DWORD,LPCWSTR,DWORD,PBYTE,PDWORD);WINADVAPI BOOL WINAPI CryptVerifySignatureA(HCRYPTHASH,PBYTE,DWORD,HCRYPTKEY,LPCSTR,DWORD);WINADVAPI BOOL WINAPI CryptVerifySignatureW(HCRYPTHASH,PBYTE,DWORD,HCRYPTKEY,LPCWSTR,DWORD);WINADVAPI BOOL WINAPI CryptSetProviderA(LPCSTR,DWORD);WINADVAPI BOOL WINAPI CryptSetProviderW(LPCWSTR,DWORD);#ifdef UNICODE#define CertGetNameString CertGetNameStringW#else#define CertGetNameString CertGetNameStringA#endif#ifdef UNICODE#define CertNameToStr CertNameToStrW#define CryptAcquireContext CryptAcquireContextW#define CryptSignHash CryptSignHashW#define CryptVerifySignature CryptVerifySignatureW#define CryptSetProvider CryptSetProviderW#define CertOpenSystemStore CertOpenSystemStoreW#define CERT_FIND_SUBJECT_STR CERT_FIND_SUBJECT_STR_W#define CERT_FIND_ISSUER_STR CERT_FIND_ISSUER_STR_W#define MS_DEF_PROV MS_DEF_PROV_W#define MS_ENHANCED_PROV MS_ENHANCED_PROV_W#define MS_STRONG_PROV MS_STRONG_PROV_W#define MS_DEF_RSA_SIG_PROV MS_DEF_RSA_SIG_PROV_W#define MS_DEF_RSA_SCHANNEL_PROV MS_DEF_RSA_SCHANNEL_PROV_W#define MS_DEF_DSS_PROV MS_DEF_DSS_PROV_W#define MS_DEF_DSS_DH_PROV MS_DEF_DSS_DH_PROV_W#define MS_ENH_DSS_DH_PROV MS_ENH_DSS_DH_PROV_W#define MS_DEF_DH_SCHANNEL_PROV MS_DEF_DH_SCHANNEL_PROV_W#define MS_SCARD_PROV MS_SCARD_PROV_W#if (_WIN32_WINNT >= 0x0501)#define MS_ENH_RSA_AES_PROV MS_ENH_RSA_AES_PROV_W#endif#else#define CertNameToStr CertNameToStrA#define CryptAcquireContext CryptAcquireContextA#define CryptSignHash CryptSignHashA#define CryptVerifySignature CryptVerifySignatureA#define CryptSetProvider CryptSetProviderA#define CertOpenSystemStore CertOpenSystemStoreA#define CERT_FIND_SUBJECT_STR CERT_FIND_SUBJECT_STR_A#define CERT_FIND_ISSUER_STR CERT_FIND_ISSUER_STR_A#define MS_DEF_PROV MS_DEF_PROV_A#define MS_ENHANCED_PROV MS_ENHANCED_PROV_A#define MS_STRONG_PROV MS_STRONG_PROV_A#define MS_DEF_RSA_SIG_PROV MS_DEF_RSA_SIG_PROV_A#define MS_DEF_RSA_SCHANNEL_PROV MS_DEF_RSA_SCHANNEL_PROV_A#define MS_DEF_DSS_PROV MS_DEF_DSS_PROV_A#define MS_DEF_DSS_DH_PROV MS_DEF_DSS_DH_PROV_A#define MS_ENH_DSS_DH_PROV MS_ENH_DSS_DH_PROV_A#define MS_DEF_DH_SCHANNEL_PROV MS_DEF_DH_SCHANNEL_PROV_A#define MS_SCARD_PROV MS_SCARD_PROV_A#if (_WIN32_WINNT >= 0x0501)#define MS_ENH_RSA_AES_PROV MS_ENH_RSA_AES_PROV_A#endif#endif/* from http://msdn2.microsoft.com/en-us/library/Aa380263.aspx: */typedef struct _CRYPTPROTECT_PROMPTSTRUCT {   DWORD cbSize;   DWORD dwPromptFlags;   HWND hwndApp;   LPCWSTR szPrompt;} CRYPTPROTECT_PROMPTSTRUCT, *PCRYPTPROTECT_PROMPTSTRUCT;/* from http://msdn2.microsoft.com/en-us/library/aa380261.aspx */BOOL WINAPI CryptProtectData (DATA_BLOB*, LPCWSTR, DATA_BLOB*, PVOID, CRYPTPROTECT_PROMPTSTRUCT*, DWORD, DATA_BLOB*);/* http://msdn2.microsoft.com/en-us/library/aa380882.aspx */BOOL WINAPI CryptUnprotectData (DATA_BLOB*, LPWSTR*, DATA_BLOB*, PVOID, CRYPTPROTECT_PROMPTSTRUCT*, DWORD, DATA_BLOB*);/* from http://msdn2.microsoft.com/en-us/library/aa302402.aspx: */#define CRYPTPROTECT_UI_FORBIDDEN 0x1#define CRYPTPROTECT_LOCAL_MACHINE 0x4#ifdef __cplusplus}#endif#endif /* _WINCRYPT_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -