ckcert.h
来自「DES加密解密算法,西望大家共享.参考学习」· C头文件 代码 · 共 198 行
H
198 行
// CkCert.h: interface for the CkCert class.
//
//////////////////////////////////////////////////////////////////////
#ifndef _CKCERT_H
#define _CKCERT_H
#pragma once
class CkString;
#include "CkObject.h"
#include "CkString.h"
#include "CkByteData.h"
class CkPublicKey;
class CkPrivateKey;
// CLASS: CkCert
class CkCert : public CkObject
{
private:
void *m_impl;
bool m_utf8; // If true, all input "const char *" parameters are utf-8, otherwise they are ANSI strings.
// Don't allow assignment or copying these objects.
CkCert(const CkCert &) { }
CkCert &operator=(const CkCert &) { return *this; }
CkCert(void *impl) : m_impl(impl) { }
public:
void *getImpl(void) const { return m_impl; }
void inject(void *impl);
CkCert();
virtual ~CkCert();
bool LoadFromBinary(const char *buf, unsigned long bufLen);
// BEGIN PUBLIC INTERFACE
bool get_Utf8(void) const;
void put_Utf8(bool b);
bool LoadPfxFile(const char *filename, const char *password);
bool LoadPfxData(CkByteData &pfxData, const char *password);
bool LoadPfxData2(const unsigned char *buf, unsigned long bufLen, const char *password);
bool LoadFromFile(const char *filename);
bool LoadFromBase64(const char *encodedCert);
bool LoadFromBinary(const unsigned char *buf, unsigned long bufLen);
bool SetFromEncoded(const char *encodedCert);
bool GetEncoded(CkString &str);
bool get_IsRoot(void);
void get_IssuerE(CkString &str);
void get_IssuerC(CkString &str);
void get_IssuerS(CkString &str);
void get_IssuerL(CkString &str);
void get_IssuerO(CkString &str);
void get_IssuerOU(CkString &str);
void get_IssuerCN(CkString &str);
void get_IssuerDN(CkString &str);
void get_SubjectE(CkString &str);
void get_SubjectC(CkString &str);
void get_SubjectS(CkString &str);
void get_SubjectL(CkString &str);
void get_SubjectO(CkString &str);
void get_SubjectOU(CkString &str);
void get_SubjectCN(CkString &str);
void get_SubjectDN(CkString &str);
void get_Sha1Thumbprint(CkString &str);
//bitwise-OR:
//#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
unsigned long get_IntendedKeyUsage(void);
bool get_SignatureVerified(void);
bool get_TrustedRoot(void);
bool get_Revoked(void);
bool get_Expired(void);
bool HasPrivateKey(void);
bool SaveToFile(const char *filename);
// Subject Alternative Name (RFC822) -- Not present in all certificates.
void get_Rfc822Name(CkString &str);
void get_ValidTo(SYSTEMTIME &sysTime);
void get_ValidFrom(SYSTEMTIME &sysTime);
void get_SerialNumber(CkString &str);
bool get_ForTimeStamping(void);
bool get_ForCodeSigning(void);
bool get_ForClientAuthentication(void);
bool get_ForServerAuthentication(void);
bool get_ForSecureEmail(void);
void get_Version(CkString &str);
// Error log retrieval and saving (these methods are common to all Chilkat VC++ classes.)
bool SaveLastError(const char *filename);
void LastErrorXml(CkString &str);
void LastErrorHtml(CkString &str);
void LastErrorText(CkString &str);
CkString m_resultString;
const char *getEncoded(void);
const char *issuerE(void);
const char *issuerC(void);
const char *issuerS(void);
const char *issuerL(void);
const char *issuerO(void);
const char *issuerOU(void);
const char *issuerCN(void);
const char *issuerDN(void);
const char *subjectE(void);
const char *subjectC(void);
const char *subjectS(void);
const char *subjectL(void);
const char *subjectO(void);
const char *subjectOU(void);
const char *subjectCN(void);
const char *subjectDN(void);
const char *sha1Thumbprint(void);
const char *rfc822Name(void);
const char *serialNumber(void);
const char *version(void);
const char *lastErrorText(void);
const char *lastErrorXml(void);
const char *lastErrorHtml(void);
bool get_HasKeyContainer(void);
// If HasKeyContainer is false, then the certificate is not associated
// with a key container.
void get_KeyContainerName(CkString &str);
const char *keyContainerName(void);
void get_CspName(CkString &str);
const char *cspName(void);
bool get_MachineKeyset(void);
bool get_Silent(void);
bool LoadByEmailAddress(const char *emailAddress);
bool LoadByCommonName(const char *cn);
// --------------------------------------------------------------------
// NOTICE: The import/export method for public and private keys
// are available in the CkPublicKey and CkPrivateKey classes.
// --------------------------------------------------------------------
//bool ExportPublicKeyXML(CkString &str);
//bool ExportPrivateKeyXML(CkString &str);
//const char *exportPublicKeyXML(void);
//const char *exportPrivateKeyXML(void);
//const char *exportKeyPairXML(void); // Get both public and private key...
// Need private key export to PEM, DER functions here (memory and file)
//bool ExportPrivateKeyPEM(CkString &str);
//bool ExportPrivateKeyPEMFile(const char *filename);
//bool ExportPrivateKeyDER(CkByteData &data);
//bool ExportPrivateKeyDERFile(const char *filename);
//bool ExportPKCS8PEM(CkString &str);
//bool ExportPKCS8PEMFile(const char *filename);
//bool ExportPKCS8DER(CkByteData &data);
//bool ExportPKCS8DERFile(const char *filename);
bool ExportCertPem(CkString &str);
bool ExportCertPemFile(const char *filename);
bool ExportCertDer(CkByteData &data);
bool ExportCertDerFile(const char *filename);
bool PemFileToDerFile(const char *inFilename, const char *outFilename);
CkPublicKey *ExportPublicKey(void);
CkPrivateKey *ExportPrivateKey(void);
bool LinkPrivateKey(const char *keyContainerName, bool bMachineKeyset, bool bForSigning);
//const char *exportPKCS8PEM(void);
//const char *exportPrivateKeyPEM(void);
const char *exportCertPem(void);
// END PUBLIC INTERFACE
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?