ckaesinterop.h
来自「DES加密解密算法,西望大家共享.参考学习」· C头文件 代码 · 共 116 行
H
116 行
// CkCrypt.h: interface for the CkCrypt class.
//
//////////////////////////////////////////////////////////////////////
#ifndef _CKAESINTEROP_H
#define _CKAESINTEROP_H
#pragma once
class CkString;
class CkByteData;
#include "CkObject.h"
// CLASS: CkAesInterop
class CkAesInterop : 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.
CkAesInterop(const CkAesInterop &) { }
CkAesInterop &operator=(const CkAesInterop &) { return *this; }
public:
void *getImpl(void) const { return m_impl; }
CkAesInterop(void *impl) : m_impl(impl) { }
CkAesInterop();
virtual ~CkAesInterop();
// BEGIN PUBLIC INTERFACE
bool get_Utf8(void) const;
void put_Utf8(bool b);
void put_Key(const unsigned char *key, long keyLen);
void get_Key(CkByteData &key);
void put_IV(const unsigned char *iv, long ivLen);
void get_IV(CkByteData &iv);
void put_KeyLength(long v);
long get_KeyLength(void);
// 0 = Chilkat
void put_PassPhraseAlg(long v);
long get_PassPhraseAlg(void);
// 0 = RFC1423 padding scheme. Each padding byte is set to the
// number of padding bytes.
//
// 1 = FIPS81 (Federal Information Processing Standards 81) padding
// scheme. The last byte (least significant) contains the number of
// padding bytes including itself. The other padding bytes are set
// to random values.
//
// 2 = Each padding byte is set to a random value. The decryptor
// must know how many bytes are in the original unencrypted data.
//
//
void put_PaddingScheme(long v);
long get_PaddingScheme(void);
// 0 = CBC
// 1 = ECB
void put_CipherMode(long v);
long get_CipherMode(void);
void SetModeCBC(void) { put_CipherMode(0); }
void SetModeECB(void) { put_CipherMode(1); }
// Encrypt/Decrypt
void Decrypt(const unsigned char *eData, unsigned long eDataLen, CkByteData &data);
void Encrypt(const unsigned char *data, unsigned long dataLen, CkByteData &eData);
void BlowfishDecrypt(const unsigned char *eData, unsigned long eDataLen, CkByteData &data);
void BlowfishEncrypt(const unsigned char *data, unsigned long dataLen, CkByteData &eData);
bool DecryptFile(const char *inAnsiFilename, const char *outAnsiFilename);
bool EncryptFile(const char *inAnsiFilename, const char *outAnsiFilename);
// Hashing.
void Sha1(const unsigned char *data, unsigned long dataLen, CkByteData &hash);
void Sha256(const unsigned char *data, unsigned long dataLen, CkByteData &hash);
void Sha384(const unsigned char *data, unsigned long dataLen, CkByteData &hash);
void Sha512(const unsigned char *data, unsigned long dataLen, CkByteData &hash);
void Haval(const unsigned char *data, unsigned long dataLen, int bitLength, CkByteData &hash);
void Md5(const unsigned char *data, unsigned long dataLen, CkByteData &digest);
void Md2(const unsigned char *data, unsigned long dataLen, CkByteData &hash);
void put_PassPhrase(const char *p);
void get_PassPhrase(CkString &sb);
bool UnlockComponent(const char *unlockCode);
bool IsUnlocked(void) const;
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);
void EncodeToHex(const unsigned char *data, unsigned long dataLen, CkString &str);
void DecodeFromHex(const char *hexStr, CkByteData &data);
// END PUBLIC INTERFACE
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?