ckrsa.h

来自「DES加密解密算法,西望大家共享.参考学习」· C头文件 代码 · 共 107 行

H
107
字号
// CkRsa.h: interface for the CkRsa class.
//
//////////////////////////////////////////////////////////////////////

#ifndef _CkRsa_H
#define _CkRsa_H

#pragma once

#include "CkString.h"
class CkByteData;
#include "CkObject.h"

// CLASS: CkRsa
class CkRsa  : 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.
	CkRsa(const CkRsa &);
	CkRsa &operator=(const CkRsa &);

    public:
	void *getImpl(void) const;

	CkRsa(void *impl);

	CkRsa();
	virtual ~CkRsa();

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

	bool UnlockComponent(const char *unlockCode);

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

	bool DecryptStringENC(const char *str, bool bUsePrivateKey, CkString &out);
	bool DecryptString(const CkByteData &bData, bool bUsePrivateKey, CkString &out);
	bool DecryptBytesENC(const char *str, bool bUsePrivateKey, CkByteData &out);
	bool DecryptBytes(const CkByteData &bData, bool bUsePrivateKey, CkByteData &out);

	bool EncryptStringENC(const char *str, bool bUsePrivateKey, CkString &out);
	bool EncryptBytesENC(const CkByteData &bData, bool bUsePrivateKey, CkString &out);
	bool EncryptString(const char *str, bool bUsePrivateKey, CkByteData &out);
	bool EncryptBytes(const CkByteData &bData, bool bUsePrivateKey, CkByteData &out);

	void get_EncodingMode(CkString &out);
	void put_EncodingMode(const char *str);
	void get_Charset(CkString &out);
	void put_Charset(const char *str);

	// NEED VERSION.
	//void get_Version(CkString &out);

	// numBits can range from 384 to 16384
	bool GenerateKey(int numBits);

	bool ExportPublicKey(CkString &strXml);
	bool ExportPrivateKey(CkString &strXml);

	bool ImportPublicKey(const char *strXml);
	bool ImportPrivateKey(const char *strXml);

	// x1 is a .snk filename.  Returns XML
	bool SnkToXml(const char *filename, CkString &strXml);

	// Number of bits in the RSA key (i.e. 1024, 2048, etc.)
	long get_NumBits(void);

	bool get_OaepPadding(void);
	void put_OaepPadding(bool newVal);

	CkString m_resultString;
        const char *lastErrorText(void);
        const char *lastErrorXml(void);
        const char *lastErrorHtml(void);


	const char *decryptStringENC(const char *str, bool bUsePrivateKey);
	const char *decryptString(const char *bytes, int numBytes, bool bUsePrivateKey);
	const char *encryptStringENC(const char *str, bool bUsePrivateKey);
	const char *encryptBytesENC(const char *bytes, int numBytes, bool bUsePrivateKey);
	const char *encodingMode(void);
	const char *charset(void);
	const char *exportPublicKey(void);
	const char *exportPrivateKey(void);
	const char *snkToXml(const char *filename);


	// END PUBLIC INTERFACE


};


#endif


⌨️ 快捷键说明

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