wincrypt.h
来自「北京大学ACM在线评测系统 OnlineJudge」· C头文件 代码 · 共 729 行 · 第 1/2 页
H
729 行
#define SCHANNEL_MAC_KEY 0x00000000#define SCHANNEL_ENC_KEY 0x00000001#define INTERNATIONAL_USAGE 0x00000001typedef UINT ALG_ID;typedef struct _VTableProvStruc {FARPROC FuncVerifyImage;} VTableProvStruc,*PVTableProvStruc;typedef ULONG HCRYPTPROV;typedef ULONG HCRYPTKEY;typedef ULONG HCRYPTHASH;typedef PVOID HCERTSTORE;typedef PVOID HCRYPTMSG;typedef PVOID HCERTCHAINENGINE;typedef struct _CRYPTOAPI_BLOB { DWORD cbData; BYTE* pbData;} CRYPT_INTEGER_BLOB, *PCRYPT_INTEGER_BLOB, CRYPT_UINT_BLOB, *PCRYPT_UINT_BLOB, CRYPT_OBJID_BLOB, *PCRYPT_OBJID_BLOB, CERT_NAME_BLOB, *PCERT_NAME_BLOB, CERT_RDN_VALUE_BLOB,*PCERT_RDN_VALUE_BLOB, CERT_BLOB, *PCERT_BLOB, CRL_BLOB, *PCRL_BLOB, DATA_BLOB, *PDATA_BLOB, CRYPT_DATA_BLOB, *PCRYPT_DATA_BLOB, CRYPT_HASH_BLOB, *PCRYPT_HASH_BLOB, CRYPT_DIGEST_BLOB, *PCRYPT_DIGEST_BLOB, CRYPT_DER_BLOB, *PCRYPT_DER_BLOB, CRYPT_ATTR_BLOB, *PCRYPT_ATTR_BLOB;/* not described in SDK; has the same layout as HTTPSPolicyCallbackData */typedef struct _SSL_EXTRA_CERT_CHAIN_POLICY_PARA { DWORD cbStruct; DWORD dwAuthType; DWORD fdwChecks; LPWSTR pwszServerName;} SSL_EXTRA_CERT_CHAIN_POLICY_PARA, *PSSL_EXTRA_CERT_CHAIN_POLICY_PARA, HTTPSPolicyCallbackData, *PHTTPSPolicyCallbackData;/* #if (_WIN32_WINNT>=0x500) */typedef struct _CERT_CHAIN_POLICY_PARA { DWORD cbSize; DWORD dwFlags; void* pvExtraPolicyPara;} CERT_CHAIN_POLICY_PARA, *PCERT_CHAIN_POLICY_PARA;typedef struct _CERT_CHAIN_POLICY_STATUS { DWORD cbSize; DWORD dwError; LONG lChainIndex; LONG lElementIndex; void* pvExtraPolicyStatus;} CERT_CHAIN_POLICY_STATUS, *PCERT_CHAIN_POLICY_STATUS;/* #endif */typedef struct _CRYPT_ALGORITHM_IDENTIFIER { LPSTR pszObjId; CRYPT_OBJID_BLOB Parameters;} CRYPT_ALGORITHM_IDENTIFIER, *PCRYPT_ALGORITHM_IDENTIFIER;typedef struct _CRYPT_BIT_BLOB { DWORD cbData; BYTE* pbData; DWORD cUnusedBits;} CRYPT_BIT_BLOB, *PCRYPT_BIT_BLOB;typedef struct _CERT_PUBLIC_KEY_INFO { CRYPT_ALGORITHM_IDENTIFIER Algorithm; CRYPT_BIT_BLOB PublicKey;} CERT_PUBLIC_KEY_INFO, *PCERT_PUBLIC_KEY_INFO;typedef struct _CERT_EXTENSION { LPSTR pszObjId; BOOL fCritical; CRYPT_OBJID_BLOB Value;} CERT_EXTENSION, *PCERT_EXTENSION;typedef struct _CERT_INFO { DWORD dwVersion; CRYPT_INTEGER_BLOB SerialNumber; CRYPT_ALGORITHM_IDENTIFIER SignatureAlgorithm; CERT_NAME_BLOB Issuer; FILETIME NotBefore; FILETIME NotAfter; CERT_NAME_BLOB Subject; CERT_PUBLIC_KEY_INFO SubjectPublicKeyInfo; CRYPT_BIT_BLOB IssuerUniqueId; CRYPT_BIT_BLOB SubjectUniqueId; DWORD cExtension; PCERT_EXTENSION rgExtension;} CERT_INFO, *PCERT_INFO;typedef struct _CERT_CONTEXT { DWORD dwCertEncodingType; BYTE* pbCertEncoded; DWORD cbCertEncoded; PCERT_INFO pCertInfo; HCERTSTORE hCertStore;} CERT_CONTEXT, *PCERT_CONTEXT;typedef const CERT_CONTEXT *PCCERT_CONTEXT;typedef struct _CTL_USAGE { DWORD cUsageIdentifier; LPSTR *rgpszUsageIdentifier;} CTL_USAGE, *PCTRL_USAGE, CERT_ENHKEY_USAGE, *PCERT_ENHKEY_USAGE;typedef struct _CERT_USAGE_MATCH { DWORD dwType; CERT_ENHKEY_USAGE Usage;} CERT_USAGE_MATCH, *PCERT_USAGE_MATCH;/* #if (_WIN32_WINNT>=0x500) */typedef struct _CERT_CHAIN_PARA { 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;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);BOOL WINAPI CryptAcquireContextA(HCRYPTPROV*,LPCSTR,LPCSTR,DWORD,DWORD);BOOL WINAPI CryptAcquireContextW(HCRYPTPROV*,LPCWSTR,LPCWSTR,DWORD,DWORD);BOOL WINAPI CryptContextAddRef(HCRYPTPROV,DWORD*,DWORD);BOOL WINAPI CryptReleaseContext(HCRYPTPROV,DWORD);BOOL WINAPI CryptGenKey(HCRYPTPROV,ALG_ID,DWORD,HCRYPTKEY*);BOOL WINAPI CryptDeriveKey(HCRYPTPROV,ALG_ID,HCRYPTHASH,DWORD,HCRYPTKEY*);BOOL WINAPI CryptDestroyKey(HCRYPTKEY);#if (WINVER >= 0x0500)BOOL WINAPI CryptDuplicateHash(HCRYPTHASH,DWORD*,DWORD,HCRYPTHASH*);BOOL WINAPI CryptDuplicateKey(HCRYPTKEY,DWORD*,DWORD,HCRYPTKEY*);#endifBOOL WINAPI CryptSetKeyParam(HCRYPTKEY,DWORD,PBYTE,DWORD);BOOL WINAPI CryptGetKeyParam(HCRYPTKEY,DWORD,PBYTE,PDWORD,DWORD);BOOL WINAPI CryptSetHashParam(HCRYPTHASH,DWORD,PBYTE,DWORD);BOOL WINAPI CryptGetHashParam(HCRYPTHASH,DWORD,PBYTE,PDWORD,DWORD);BOOL WINAPI CryptSetProvParam(HCRYPTPROV,DWORD,PBYTE,DWORD);BOOL WINAPI CryptGetProvParam(HCRYPTPROV,DWORD,PBYTE,PDWORD,DWORD);BOOL WINAPI CryptGenRandom(HCRYPTPROV,DWORD,PBYTE);BOOL WINAPI CryptGetUserKey(HCRYPTPROV,DWORD,HCRYPTKEY*);BOOL WINAPI CryptExportKey(HCRYPTKEY,HCRYPTKEY,DWORD,DWORD,PBYTE,PDWORD);BOOL WINAPI CryptImportKey(HCRYPTPROV,PBYTE,DWORD,HCRYPTKEY,DWORD,HCRYPTKEY*);BOOL WINAPI CryptEncrypt(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,PBYTE,PDWORD,DWORD);BOOL WINAPI CryptDecrypt(HCRYPTKEY,HCRYPTHASH,BOOL,DWORD,PBYTE,PDWORD);BOOL WINAPI CryptCreateHash(HCRYPTPROV,ALG_ID,HCRYPTKEY,DWORD,HCRYPTHASH*);BOOL WINAPI CryptHashData(HCRYPTHASH,PBYTE,DWORD,DWORD);BOOL WINAPI CryptHashSessionKey(HCRYPTHASH,HCRYPTKEY,DWORD);BOOL WINAPI CryptGetHashValue(HCRYPTHASH,DWORD,PBYTE,PDWORD);BOOL WINAPI CryptDestroyHash(HCRYPTHASH);BOOL WINAPI CryptSignHashA(HCRYPTHASH,DWORD,LPCSTR,DWORD,PBYTE,PDWORD);BOOL WINAPI CryptSignHashW(HCRYPTHASH,DWORD,LPCWSTR,DWORD,PBYTE,PDWORD);BOOL WINAPI CryptVerifySignatureA(HCRYPTHASH,PBYTE,DWORD,HCRYPTKEY,LPCSTR,DWORD);BOOL WINAPI CryptVerifySignatureW(HCRYPTHASH,PBYTE,DWORD,HCRYPTKEY,LPCWSTR,DWORD);BOOL WINAPI CryptSetProviderA(LPCSTR,DWORD);BOOL WINAPI CryptSetProviderW(LPCWSTR,DWORD);#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#ifdef __cplusplus}#endif#endif /* _WINCRYPT_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?