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

📄 ckcrypt.h

📁 DES加密解密算法,西望大家共享.参考学习
💻 H
字号:
// CkCrypt.h: interface for the CkCrypt class.
//
//////////////////////////////////////////////////////////////////////

#ifndef _CKCRYPT_H
#define _CKCRYPT_H

#pragma once

class CkCSP;
class CkCert;
class CkCertStore;
#include "CkString.h"
class CkByteData;
#include "CkObject.h"

// CLASS: CkCrypt
class CkCrypt  : 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.
	CkCrypt(const CkCrypt &) { } 
	CkCrypt &operator=(const CkCrypt &) { return *this; }
	CkCrypt(void *impl) : m_impl(impl) { }

    public:
	void *getImpl(void) const { return m_impl; } 

	CkCrypt();
	virtual ~CkCrypt();

	// BEGIN PUBLIC INTERFACE
	bool get_Utf8(void) const;
	void put_Utf8(bool b);


	bool SetCSP(const CkCSP *csp);

	void SetAlgorithmRSA();
	void SetAlgorithmTwofish();
	void SetAlgorithmBlowfish();
	void SetAlgorithmRijndael();

	bool AddSearchCertStore(const CkCertStore *certStore);

	void SetEncryptCertificate(const CkCert *cert);
	void SetSigningCertificate(const CkCert *cert);

	bool UnlockComponent(const char *unlockCode);
	bool IsUnlocked(void) const;

	void get_LastCertSubject(CkString &str);
	void get_LastAlgorithm(CkString &str);

	void get_SigningCertSubject(CkString &str);
	void put_SigningCertSubject(const char *str);

	void get_EncryptCertSubject(CkString &str);
	void put_EncryptCertSubject(const char *str);

	bool get_UseStandardSearchCertStores(void);
	void put_UseStandardSearchCertStores(bool newVal);

	// Key length is implied by the length of the secret key.
	void get_SecretKey(CkByteData &data);
	void put_SecretKey(const unsigned char *data, unsigned long dataLen);

	// Generate a secret key according to a particular method.
	void PassPhraseToSecretKey(const char *newVal);

	void get_Version(CkString &str);

	long get_KeyLength(void);
	void put_KeyLength(long newVal);

	bool CreateSignature(const unsigned char *data, unsigned long dataLen, CkByteData &sigData);
	bool VerifySignature(const unsigned char *data, unsigned long dataLen, 
	    const unsigned char *sig, unsigned long sigLen);

	bool Encrypt(const unsigned char *data, unsigned long dataLen, CkByteData &outData);
	bool Decrypt(const unsigned char *data, unsigned long dataLen, CkByteData &outData);

	void Base64Encode(const unsigned char *data, unsigned long dataLen, CkString &strOut);
	bool Base64Decode(const char *str, CkByteData &dbOut);

	void QuotedPrintableEncode(const unsigned char *data, unsigned long dataLen, CkString &strOut);
	bool QuotedPrintableDecode(const char *str, CkByteData &dbOut);
	
	void HexEncode(const unsigned char *data, unsigned long dataLen, CkString &strOut);
	void HexDecode(const char *str, CkByteData &dbOut);

	void CalcDigestMD5(const unsigned char *data, unsigned long dataLen, CkByteData &digest);
	bool CalcSha1Hash(const unsigned char *data, unsigned long dataLen, CkByteData &hash);
	bool CalcMd2Hash(const unsigned char *data, unsigned long dataLen, CkByteData &hash);

	bool get_HasIV(void);
	void put_HasIV(bool b);

	void get_IV(CkByteData &db);
	void put_IV(const unsigned char *ivData);

	void GenerateRandomIV(void);

	bool ZipAndEncrypt(const unsigned char *data, unsigned long dataLen, CkByteData &outData);
	bool DecryptAndUnzip(const unsigned char *data, unsigned long dataLen, CkByteData &outData);

	// 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);

	// END PUBLIC INTERFACE

};


#endif


⌨️ 快捷键说明

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