📄 cryptinfo.h
字号:
#include <Windows.h>
#include <Dbt.h>
#include <Winuser.h>
#include <WinCrypt.h>
#pragma once
// {33b95ca0-b950-4caf-b406-3a430e99935f}
#define GUID1 {0xA4E7EDDA,0xE575,0x4252,0x9D,0x6B,0x41,0x95,0xD4,0x8B,0xB8,0x65};
#define GUID2 {0xA32942B7,0x920C,0x486b,0xB0,0xE6,0x92,0xA7,0x02,0xA9,0x9B,0x35};
#define MY_ENCODING_TYPE (PKCS_7_ASN_ENCODING | X509_ASN_ENCODING)
typedef PCCERT_CONTEXT (WINAPI *CERTCREATECERTIFICATECONTEXT)(
DWORD dwCertEncodingType,
const BYTE *pbCertEncoded,
DWORD cbCertEncoded
);
typedef BOOL ( WINAPI *CRYPTIMPORTPUBLICKEYINFOEX)(
IN HCRYPTPROV hCryptProv,
IN DWORD dwCertEncodingType,
IN PCERT_PUBLIC_KEY_INFO pInfo,
IN ALG_ID aiKeyAlg,
IN DWORD dwFlags,
IN OPTIONAL void *pvAuxInfo,
OUT HCRYPTKEY *phKey
);
typedef BOOL (WINAPI *CERTFREECERTIFICATECONTEXT)(
PCCERT_CONTEXT pCertContext
);
typedef DWORD (WINAPI *GETNAMESTRING)(
PCCERT_CONTEXT pCertContext,
DWORD dwType,
DWORD dwFlags,
void* pvTypePara,
LPTSTR pszNameString,
DWORD cchNameString
);
typedef HCERTSTORE (WINAPI *GETCERTSTORE)(
LPCSTR lpszStoreProvider,
DWORD dwMsgAndCertEncodingType,
HCRYPTPROV hCryptProv,
DWORD dwFlags,
const void* pvPara
);
typedef PCCERT_CONTEXT (WINAPI *ENUMCERT)(
HCERTSTORE hCertStore,
PCCERT_CONTEXT pPrevCertContext
);
typedef DWORD (WINAPI *CERTNAMESTR)(
DWORD dwCertEncodingType,
PCERT_NAME_BLOB pName,
DWORD dwStrType,
LPTSTR psz,
DWORD csz
);
typedef BOOL (WINAPI* PUBLICKEYINFO)(
HCRYPTPROV hCryptProv,
DWORD dwCertEncodingType,
PCERT_PUBLIC_KEY_INFO pInfo,
ALG_ID aiKeyAlg,
DWORD dwFlags,
void* pvAuxInfo,
HCRYPTKEY* phKey
);
typedef HCERTSTORE (WINAPI* OPENSYSTEMSTORE)(
HCRYPTPROV hprov,
LPCWSTR szSubsystemProtocol
);
typedef BOOL (WINAPI* COMPAREPUBLICKEYINFO)(
DWORD dwCertEncodingType,
PCERT_PUBLIC_KEY_INFO pPublicKey1,
PCERT_PUBLIC_KEY_INFO pPublicKey2
);
typedef BOOL (WINAPI* COMPARECERT)(
DWORD dwCertEncodingType,
PCERT_INFO pCertId1,
PCERT_INFO pCertId2
);
typedef BOOL (WINAPI* DELETEFORMSTRORE)(
PCCERT_CONTEXT pCertContext
);
typedef BOOL (WINAPI* CLOSESTORE)(
HCERTSTORE hCertStore,
DWORD dwFlags
);
typedef BOOL (WINAPI* FREECONTEXT)(
PCCERT_CONTEXT pCertContext
);
typedef PCCERT_CONTEXT (WINAPI* ENUMCERTINSTORE)(
HCERTSTORE hCertStore,
PCCERT_CONTEXT pPrevCertContext
);
typedef PCCERT_CONTEXT (WINAPI* DUPLICATECONTEXT)(
PCCERT_CONTEXT pCertContext
);
typedef BOOL (WINAPI* ENUMSYSTEMSTORES)(
DWORD dwFlags,
void* pvSystemStoreLocationPara,
void* pvArg,
PFN_CERT_ENUM_SYSTEM_STORE pfnEnum
);
typedef BOOL (WINAPI* ENUMSYSTEMSTORELOC)(
DWORD dwFlags,
void* pvArg,
PFN_CERT_ENUM_SYSTEM_STORE_LOCATION pfnEnum
);
typedef BOOL (WINAPI* ENUMPHISICALSTORE)(
const void* pvSystemStore,
DWORD dwFlags,
void* pvArg,
PFN_CERT_ENUM_PHYSICAL_STORE pfnEnum
);
typedef BOOL (WINAPI* ADDCERTTOSTORE)(
HCERTSTORE hCertStore,
PCCERT_CONTEXT pCertContext,
DWORD dwAddDisposition,
PCCERT_CONTEXT* ppStoreContext
);
typedef struct
{
CERTCREATECERTIFICATECONTEXT context;
//CRYPTIMPORTPUBLICKEYINFOEX pubex;
CERTFREECERTIFICATECONTEXT freeContext;
GETNAMESTRING getName;
GETCERTSTORE getct;
ENUMCERT enumcert;
CERTNAMESTR certName;
PUBLICKEYINFO getPubKeyInfo;
//OPENSYSTEMSTORE openSystemStore;
COMPAREPUBLICKEYINFO comparePubKeyInfo;
COMPARECERT compareCert;
DELETEFORMSTRORE deleteFromStore;
CLOSESTORE closeStore;
ENUMCERTINSTORE enumCertInStore;
DUPLICATECONTEXT duplicateContext;
ENUMSYSTEMSTORES enumSysStores;
ENUMSYSTEMSTORELOC enumSystemStoreLoc;
ENUMPHISICALSTORE enumPhsicalStore;
ADDCERTTOSTORE addCertToStore;
}CertHandle;
typedef struct _ENUM_ARG {
BOOL fAll;
BOOL fVerbose;
DWORD dwFlags;
const void *pvStoreLocationPara;
HKEY hKeyBase;
} ENUM_ARG, *PENUM_ARG;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -