📄 pkcsdll.h
字号:
OUT LPCRLHANDLE phCrl, // Handle for future reference
IN ISSUERHANDLE hIssuer, // Handle of controlling issuer
IN const BYTE *pbCrl); // Buffer containing the CRL.
extern PKCSDLLAPI BOOL WINAPI
PkcsCrlRevoke(
IN CRLHANDLE hCrl, // The reference handle to the CRL
IN const BYTE *pbSerialNo, // Serial number of certificate to revoke
IN DWORD cbSerialNoLen, // Length of the serial number
IN LPFILETIME pfmStartDate); // Effective date of revokation
extern PKCSDLLAPI BOOL WINAPI
PkcsCrlIssue(
IN CRLHANDLE hCrl, // The reference handle to the CRL
IN LPFILETIME pftEndDate, // Termination date of the CRL
OUT LPBYTE pbCrl, // Buffer to receive the CRL
IN OUT LPDWORD pcbCrlLen); // Length of the pbCrl buffer
extern PKCSDLLAPI BOOL WINAPI
PkcsCrlClose(
IN CRLHANDLE hCrl); // The reference handle to the Crl
//
// ?HOW? - How do we attach X.509 CRL v2 Extensions to the revokee?
//
//
//==============================================================================
//
// Certificate services.
//
typedef PKCSHANDLE
CERTIFICATEHANDLE; // Reference handle type.
typedef CERTIFICATEHANDLE
*PCERTIFICATEHANDLE, // Pointers to reference handles.
*LPCERTIFICATEHANDLE;
#define CERT_PKCSV1_INFO 1 // The type of Cert Info Struct following:
//
// Supported Certificate Types.
//
#define CERTYPE_UNKNOWN 0 // Unknown Certificate Type.
#define CERTYPE_LOCAL_CA 1 // A local CA pointer.
#define CERTYPE_X509 2 // An X.509 certificate.
#define CERTYPE_PKCS_X509 3 // A PKCS & imbedded X.509 Certificate.
#define CERTYPE_PKCS_REQUEST 4 // A PKCS Certificate Request (internal use)
//
// Supported Certificate Types.
//
// Local CA Specifics
#define LCA_VERSION_1 0 // This Local CA is version 1.
#define LCA_MAX_VERSION LCA_VERSION_1 // Max version supported.
typedef struct {
DWORD dwVersion; // The version of the local CA
LPTSTR szSubject; // Address for Subject name
DWORD cbSubjectLen; // Length of szSubject buffer
LPTSTR szProvider; // Address for the provider name
DWORD cbProviderLen; // Length of szProvider buffer
DWORD dwProvType; // The type of Provider
LPTSTR szKeyset; // Address for the keyset name
DWORD cbKeysetLen; // Length of the szKeyset buffer
DWORD dwKeySpec; // The specific key identifier
} LOCALCACERTINFO, *PLOCALCACERTINFO, *LPLOCALCACERTINFO;
// X.509 Certificate specifics
#define X509_VERSION_1 0 // This certificate is X.509 version 1
#define X509_VERSION_2 1 // This certificate is X.509 version 2
#define X509_VERSION_3 2 // This certificate is X.509 version 3
#define X509_MAX_VERSION X509_VERSION_1 // Max version supported.
typedef struct {
DWORD dwX509Version; // The version of the certificate
LPBYTE pbSerialNumber; // Address for serial number.
DWORD cbSerialNumLen; // Length of pbSerialNumber buffer.
ALG_ID algId; // Algorithm Id.
LPTSTR szIssuer; // Address for Issuer name
DWORD cbIssuerLen; // Length of szIssuer buffer
FILETIME ftNotBefore; // Certificate effective date
FILETIME ftNotAfter; // Certificate expiration date
LPTSTR szSubject; // Address for Subject name
DWORD cbSubjectLen; // Length of szSubject buffer
LPVOID pvIssuerUid; // Address for Issuer Id ?q?
DWORD cbIssuerUidLen; // Length of pvIssuerUid buffer
LPVOID pvSubjectUid; // Address for Subject Id ?q?
DWORD cbSubjectUidLen; // Length of pvSubjectUid buffer
EXTENSIONLISTHANDLE
hExtensions; // Extension List handle
} X509CERTINFO, *PX509CERTINFO, *LPX509CERTINFO;
// PKCS-6 with embedded X.509 Certificate specifics
#define PKCS_NOTUSED 0xffff // PKCS isn't used on this certificate
#define PKCS_VERSION_1 0 // This certificate is PKCS version 1
#define PKCS_MAX_VERSION PKCS_VERSION_1 // Max version supported.
typedef struct {
DWORD dwPKCSVersion; // The version of the certificate
ATTRIBLISTHANDLE hAttributes; // Attribute list handle
X509CERTINFO x509Info; // Info from the X.509 Certificate
} PKCSX509CERTINFO, *PPKCSX509CERTINFO, *LPPKCSX509CERTINFO;
// PKCS-10 Certificate Request Specifics
typedef struct {
DWORD dwPKCSVersion; // The version of the certificate request
LPTSTR szSubject; // Address for Subject name
DWORD cbSubjectLen; // Length of szSubject buffer
ATTRIBLISTHANDLE hAttributes; // Attribute list handle
} PKCSREQCERTINFO, *PPKCSREQCERTINFO, *LPPKCSREQCERTINFO;
// Common Certificate Info Header.
typedef struct {
// This part is common to all certificate info structure types. (?Q?)
DWORD cbStructLen; // Length of this structure
WORD wCertInfoVersion; // The version (CERT_PKCSV1_INFO)
WORD wCertInfoType; // The type of the following structure
union {
LOCALCACERTINFO localCA; // Local CA Characteristics
X509CERTINFO x509; // X.509 Characteristics
PKCSX509CERTINFO pkcs; // PKCS-6 Characteristics
PKCSREQCERTINFO req; // PKCS-10 Request Characteristics
} certInfo;
} CERTIFICATEINFO, *PCERTIFICATEINFO, *LPCERTIFICATEINFO;
// Crypto API Definitions
#define CAPI_MAX_VERSION 2 // Supported version of CAPI.
// Certificate Store Definitions
#define CERTSTORE_NONE 0 // No store to be used.
#define CERTSTORE_APPLICATION 1 // Store in application volatile memory
#define CERTSTORE_CURRENT_USER 3 // Store in Registry under current user
#define CERTSTORE_LOCAL_MACHINE 5 // Store in Registry under local machine
// Certificate Warning Definitions
#define CERTWARN_NOCRL 0x01 // At least one of the signing CAs didn't
// have an associated CRL.
#define CERTWARN_EARLYCRL 0x02 // At least one of the signing CAs had an
// associated CRL who's issuing date was
// in the future.
#define CERTWARN_LATECRL 0x04 // At least one of the signing CAs had an
// expired CRL.
#define CERTWARN_TOBEREVOKED 0x08 // At least one of the signing CAs contained
// a revocation for a certificate, but its
// effective date has not yet been reached.
extern PKCSDLLAPI BOOL WINAPI
PkcsCertificateLoad(
OUT LPCERTIFICATEHANDLE phCert, // Handle for future reference
IN const BYTE *pbCert, // Buffer containing the certificate
IN const BYTE *pbCrl, // Buffer containing any associated CRL
IN OUT LPDWORD pdwType, // Certificate Type
IN DWORD dwStore, // Which certificate store to load
IN LPCTSTR szKeySet, // The name of the keyset to use
IN LPCTSTR szProvider, // The specific name of the CSP to use
IN DWORD dwProvType, // Provider type hint
OUT LPBYTE szIssuerName, // The root or missing issuer
IN OUT LPDWORD pcbIssuerLen, // Length of the szIssuerName buffer
OUT LPDWORD pdwWarnings); // Receives warning flags.
extern PKCSDLLAPI BOOL WINAPI
PkcsCertificateOpen(
OUT LPCERTIFICATEHANDLE phCert, // Handle for future reference
IN LPCTSTR szSubjName, // Name of subject of existing certificate
IN LPCTSTR szKeySet, // The name of the keyset to use
IN LPCTSTR szProvider, // The specific name of the CSP to use
IN DWORD dwProvType, // Provider type hint
OUT LPDWORD pdwCertType, // Certificate Type
IN OUT LPDWORD pfStore, // Certificate store search/found limits
OUT LPTSTR szIssuerName, // The root or missing issuer
IN OUT LPDWORD pcbIssuerLen, // Length of the szIssuerName buffer
OUT LPDWORD pdwWarnings); // Receives warning flags.
extern PKCSDLLAPI BOOL WINAPI
PkcsCertificateUpdateCrl(
IN CERTIFICATEHANDLE hCert, // The reference handle to the Certificate
IN const BYTE *pbCrl); // Buffer containing the associated CRL
extern PKCSDLLAPI BOOL WINAPI
PkcsCertificateVerify(
IN CERTIFICATEHANDLE hCert, // The reference handle to the Certificate
IN const BYTE *pbData, // The data to be verified
IN DWORD cbDataLen, // The length of the data to be signed
IN LPCTSTR szComment, // Comment string associated with signature
IN ALG_ID algId, // Algorithm suggestion
IN const BYTE *pbSignature, // The supplied signature
IN DWORD cbSigLen); // Length of the pbSignature buffer.
extern PKCSDLLAPI BOOL WINAPI
PkcsCertificateGetInfo(
IN CERTIFICATEHANDLE hCert, // The reference handle to the Certificate
IN OUT LPCERTIFICATEINFO pCertInfo); // The info structure to fill in
extern PKCSDLLAPI BOOL WINAPI
PkcsCertificateClose(
IN CERTIFICATEHANDLE hCert); // The reference handle to the Certificate
extern PKCSDLLAPI BOOL WINAPI
PkcsCertificateDelete(
IN CERTIFICATEHANDLE hCert); // The handle to the Certificate to remove
#if defined(_MSVC) && defined(_DEBUG)
//
//==============================================================================
//
// Debugging extensions
//
extern PKCSDLLAPI void WINAPI
PkcsMemoryClean(
void);
#endif
//
//==============================================================================
//
// Attribute Type definitions
//
#define X500_commonName TEXT("2.5.4.3")
#define X500_surname TEXT("2.5.4.4")
#define X500_serialNumber TEXT("2.5.4.5")
#define X500_countryName TEXT("2.5.4.6")
#define X500_locality TEXT("2.5.4.7")
#define X500_stateOrProvinceName TEXT("2.5.4.8")
#define X500_streetAddress TEXT("2.5.4.9")
#define X500_organizationName TEXT("2.5.4.10")
#define X500_orginazationalUnitName TEXT("2.5.4.11")
#define X500_title TEXT("2.5.4.12")
#define X500_description TEXT("2.5.4.13")
#define X500_businessCategory TEXT("2.5.4.15")
#define X500_postalCode TEXT("2.5.4.17")
#define X500_postOfficeBox TEXT("2.5.4.18")
#define X500_physicalDeliveryOfficeName TEXT("2.5.4.19")
#define X500_telephoneNumber TEXT("2.5.4.20")
#define X500_x121Address TEXT("2.5.4.24")
#define X500_internationalISDNNumber TEXT("2.5.4.25")
#define X500_destinationIndicator TEXT("2.5.4.27")
#define PKCS1_md2 TEXT("1.2.840.113549.2.2")
#define PKCS1_md4 TEXT("1.2.840.113549.2.4")
#define PKCS1_md5 TEXT("1.2.840.113549.2.5")
#define PKCS1_rsaEncryption TEXT("1.2.840.113549.1.1.1")
#define PKCS1_md2WithRSAEncryption TEXT("1.2.840.113549.1.1.2")
#define PKCS1_md4WithRSAEncryption TEXT("1.2.840.113549.1.1.3")
#define PKCS1_md5WithRSAEncryption TEXT("1.2.840.113549.1.1.4")
#define PKCS3_dhKeyAgreement TEXT("1.2.840.113549.1.3.1")
#define PKCS5_pbeWithMD2AndDES_CBC TEXT("1.2.840.113549.1.5.1")
#define PKCS5_pbeWithMD5AndDES_CBC TEXT("1.2.840.113549.1.5.3")
#define PKCS7_data TEXT("1.2.840.113549.1.7.1")
#define PKCS7_signedData TEXT("1.2.840.113549.1.7.2")
#define PKCS7_envelopedData TEXT("1.2.840.113549.1.7.3")
#define PKCS7_signedAndEnvelopedData TEXT("1.2.840.113549.1.7.4")
#define PKCS7_digestedData TEXT("1.2.840.113549.1.7.5")
#define PKCS7_encryptedData TEXT("1.2.840.113549.1.7.6")
#define PKCS9_emailAddress TEXT("1.2.840.113549.1.9.1")
#define PKCS9_unstructuredName TEXT("1.2.840.113549.1.9.2")
#define PKCS9_contentType TEXT("1.2.840.113549.1.9.3")
#define PKCS9_messageDigest TEXT("1.2.840.113549.1.9.4")
#define PKCS9_signingTime TEXT("1.2.840.113549.1.9.5")
#define PKCS9_countersignature TEXT("1.2.840.113549.1.9.6")
#define PKCS9_challengePassword TEXT("1.2.840.113549.1.9.7")
#define PKCS9_unstructuredAddress TEXT("1.2.840.113549.1.9.8")
#define PKCS9_extendedCertificateAttributes TEXT("1.2.840.113549.1.9.9")
#define PKCS9_description TEXT("1.2.840.113549.1.9.10")
#ifdef _cplusplus
}
#endif
#endif // _PKCSLIB_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -