亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rijndael.h

?? 一款密碼保險箱源碼
?? H
字號:
// Public domain implementation of the Rijndael cipher.
// Modified version of Szymon Stefanek's implementation of
// the Rijndael block cipher C++ class.
// Editor: Dominik Reichl (dominik.reichl@t-online.de)

#ifndef ___RIJNDAEL_H___
#define ___RIJNDAEL_H___

#include "../SysDefEx.h"

// File : rijndael.h
// Creation date : Sun Nov 5 2000 03:21:05 CEST
// Author : Szymon Stefanek (stefanek@tin.it)
//
// Another implementation of the Rijndael cipher.
// This is intended to be an easily usable library file.
// This code is public domain.
// Based on the Vincent Rijmen and K.U.Leuven implementation 2.4.

// Original Copyright notice:
//
//    rijndael-alg-fst.c   v2.4   April '2000
//    rijndael-alg-fst.h
//    rijndael-api-fst.c
//    rijndael-api-fst.h
//
//    Optimised ANSI C code
//
//    authors: v1.0: Antoon Bosselaers
//             v2.0: Vincent Rijmen, K.U.Leuven
//             v2.3: Paulo Barreto
//             v2.4: Vincent Rijmen, K.U.Leuven
//
//    This code is placed in the public domain.
//

//
// This implementation works on 128 , 192 , 256 bit keys
// and on 128 bit blocks

// Example of usage:
//
//  // Input data
//  unsigned char key[32];                       // The key
//  initializeYour256BitKey();                   // Obviously initialized with sth
//  const unsigned char * plainText = getYourPlainText(); // Your plain text
//  int plainTextLen = strlen(plainText);        // Plain text length
//
//  // Encrypting
//  Rijndael rin;
//  unsigned char output[plainTextLen + 16];
//
//  rin.init(Rijndael::CBC,Rijndael::Encrypt,key,Rijndael::Key32Bytes);
//  // It is a good idea to check the error code
//  int len = rin.padEncrypt(plainText,len,output);
//  if(len >= 0)useYourEncryptedText();
//  else encryptError(len);
//
//  // Decrypting: we can reuse the same object
//  unsigned char output2[len];
//  rin.init(Rijndael::CBC,Rijndael::Decrypt,key,Rijndael::Key32Bytes));
//  len = rin.padDecrypt(output,len,output2);
//  if(len >= 0)useYourDecryptedText();
//  else decryptError(len);

#define RD_MAX_KEY_COLUMNS (256/32)
#define RD_MAX_ROUNDS      14
#define RD_MAX_IV_SIZE      16

// Error codes
#define RIJNDAEL_SUCCESS 0
#define RIJNDAEL_UNSUPPORTED_MODE -1
#define RIJNDAEL_UNSUPPORTED_DIRECTION -2
#define RIJNDAEL_UNSUPPORTED_KEY_LENGTH -3
#define RIJNDAEL_BAD_KEY -4
#define RIJNDAEL_NOT_INITIALIZED -5
#define RIJNDAEL_BAD_DIRECTION -6
#define RIJNDAEL_CORRUPTED_DATA -7

class CRijndael
{	
public:
	// Creates a Rijndael cipher object
	// You have to call init() before you can encrypt or decrypt stuff
	CRijndael();
	~CRijndael();

	enum Direction { EncryptDir = 0, DecryptDir = 1 };
	enum Mode { ECB = 0, CBC = 1, CFB1 = 2 };
	enum KeyLength { Key16Bytes = 16, Key24Bytes = 24, Key32Bytes = 32 };

protected:
	// Internal stuff
	enum State { Valid = 0, Invalid = 1 };

	State     m_state;
	Mode      m_mode;
	Direction m_direction;
	UINT8     m_initVector[RD_MAX_IV_SIZE];
	UINT32    m_uRounds;
	UINT8     m_expandedKey[RD_MAX_ROUNDS+1][4][4];

public:
	//////////////////////////////////////////////////////////////////////////
	// API
	//////////////////////////////////////////////////////////////////////////

	// Init(): Initializes the crypt session
	// Returns RIJNDAEL_SUCCESS or an error code
	// mode      : Rijndael::ECB, Rijndael::CBC or Rijndael::CFB1
	//             You have to use the same mode for encrypting and decrypting
	// dir       : Rijndael::Encrypt or Rijndael::Decrypt
	//             A cipher instance works only in one direction
	//             (Well , it could be easily modified to work in both
	//             directions with a single init() call, but it looks
	//             useless to me...anyway , it is a matter of generating
	//             two expanded keys)
	// key       : array of unsigned octets , it can be 16 , 24 or 32 bytes long
	//             this CAN be binary data (it is not expected to be null terminated)
	// keyLen    : Rijndael::Key16Bytes , Rijndael::Key24Bytes or Rijndael::Key32Bytes
	// initVector: initialization vector, you will usually use NULL here
	int Init(Mode mode, Direction dir, const UINT8 *key, KeyLength keyLen, const UINT8 *initVector);

	// Encrypts the input array (can be binary data)
	// The input array length must be a multiple of 16 bytes, the remaining part
	// is DISCARDED.
	// so it actually encrypts inputLen / 128 blocks of input and puts it in outBuffer
	// Input len is in BITS!
	// outBuffer must be at least inputLen / 8 bytes long.
	// Returns the encrypted buffer length in BITS or an error code < 0 in case of error
	int BlockEncrypt(const UINT8 *input, int inputLen, UINT8 *outBuffer);

	// Encrypts the input array (can be binary data)
	// The input array can be any length , it is automatically padded on a 16 byte boundary.
	// Input len is in BYTES!
	// outBuffer must be at least (inputLen + 16) bytes long
	// Returns the encrypted buffer length in BYTES or an error code < 0 in case of error
	int PadEncrypt(const UINT8 *input, int inputOctets, UINT8 *outBuffer);

	// Decrypts the input vector
	// Input len is in BITS!
	// outBuffer must be at least inputLen / 8 bytes long
	// Returns the decrypted buffer length in BITS and an error code < 0 in case of error
	int BlockDecrypt(const UINT8 *input, int inputLen, UINT8 *outBuffer);

	// Decrypts the input vector
	// Input len is in BYTES!
	// outBuffer must be at least inputLen bytes long
	// Returns the decrypted buffer length in BYTES and an error code < 0 in case of error
	int PadDecrypt(const UINT8 *input, int inputOctets, UINT8 *outBuffer);

protected:
	void KeySched(UINT8 key[RD_MAX_KEY_COLUMNS][4]);
	void KeyEncToDec();
	void Encrypt(const UINT8 a[16], UINT8 b[16]);
	void Decrypt(const UINT8 a[16], UINT8 b[16]);
};

#endif // ___RIJNDAEL_H___

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美精品在线视频| 欧美精品丝袜中出| 中文字幕一区二区三区四区不卡 | 亚洲第一成年网| 欧美午夜一区二区三区| 亚洲成人福利片| 日韩一区二区免费高清| 国内精品伊人久久久久av一坑| 久久久久久久久97黄色工厂| 91视视频在线直接观看在线看网页在线看| 亚洲欧美日韩久久| 欧美久久一区二区| 韩国精品在线观看| 国产精品久久久久aaaa| 精品1区2区3区| 蜜臀av性久久久久蜜臀aⅴ流畅| 精品粉嫩aⅴ一区二区三区四区| 成人a级免费电影| 一区二区三区国产精品| 91精品国产丝袜白色高跟鞋| 国产电影精品久久禁18| 亚洲国产精品综合小说图片区| 日韩欧美一级精品久久| 91丝袜美腿高跟国产极品老师| 天天色图综合网| 国产欧美精品一区二区三区四区 | 国产在线国偷精品免费看| 国产精品福利电影一区二区三区四区| 欧美丝袜自拍制服另类| 国产美女精品一区二区三区| 夜夜亚洲天天久久| 久久精品亚洲精品国产欧美kt∨| 欧美综合一区二区| 国产美女视频一区| 首页国产欧美久久| 亚洲色欲色欲www在线观看| 欧美videos中文字幕| 欧美在线视频不卡| 成人精品小蝌蚪| 激情五月激情综合网| 天堂在线一区二区| 亚洲蜜臀av乱码久久精品| 久久九九久久九九| 欧美一区二区美女| 欧美曰成人黄网| 不卡欧美aaaaa| 国产一区视频网站| 视频一区二区国产| 亚洲午夜激情网站| 一区二区中文视频| 国产喂奶挤奶一区二区三区| 51久久夜色精品国产麻豆| 欧日韩精品视频| 波多野结衣中文字幕一区 | 久久99精品国产.久久久久久| √…a在线天堂一区| 久久久久久久免费视频了| 3d动漫精品啪啪1区2区免费 | 青娱乐精品视频在线| 亚洲一本大道在线| 一片黄亚洲嫩模| 亚洲精品视频在线看| 最新热久久免费视频| 日本一区二区三区国色天香 | 99精品视频一区| 国产高清一区日本| 国产伦精一区二区三区| 久久国产精品99久久人人澡| 日韩精品一二区| 日韩中文字幕不卡| 天天做天天摸天天爽国产一区| 亚洲一区二区三区爽爽爽爽爽| 亚洲精品一二三四区| 亚洲日本青草视频在线怡红院| 欧美经典一区二区| 日本一区二区三区国色天香| 国产清纯在线一区二区www| 久久久久久久综合色一本| 久久久精品天堂| 中文字幕电影一区| 中文字幕日韩av资源站| 最新高清无码专区| 亚洲自拍偷拍av| 午夜精品福利久久久| 免费在线观看日韩欧美| 日本不卡123| 久久精品国产精品青草| 国产99精品国产| 97久久超碰精品国产| 91极品美女在线| 国产精品小仙女| 99久久综合狠狠综合久久| 99久久精品99国产精品 | 日本vs亚洲vs韩国一区三区 | 国产成人免费视频网站高清观看视频| 国产大陆a不卡| 91麻豆精品在线观看| 欧美熟乱第一页| 精品理论电影在线观看| 国产精品久久久一区麻豆最新章节| 成人免费小视频| 视频一区视频二区中文| 国产成人精品aa毛片| 色综合久久久久综合99| 91精品福利在线一区二区三区| 久久免费偷拍视频| 一个色综合av| 国产综合色视频| 日韩一区二区在线看片| 2020国产精品久久精品美国| 国产精品第五页| 免费在线成人网| 成人h精品动漫一区二区三区| 欧美久久久久免费| 国产婷婷色一区二区三区| 亚洲一区二区三区四区五区黄| 国产一区二区久久| 欧美日韩国产首页在线观看| 国产欧美日本一区视频| 午夜精品一区二区三区三上悠亚| 国产一区二区在线看| 欧美亚洲国产一区二区三区va| 精品久久久久久久久久久久久久久| 国产精品久久久久久久岛一牛影视| 午夜精品aaa| 色综合久久中文综合久久97| 欧美成人三级电影在线| 亚洲国产wwwccc36天堂| 高清在线成人网| 日韩精品中午字幕| 亚洲bt欧美bt精品777| 成人在线视频首页| www国产成人| 香蕉乱码成人久久天堂爱免费| 成人av网站在线观看免费| 欧美大度的电影原声| 一区二区久久久久久| 成人高清免费在线播放| 精品国产乱码久久久久久老虎 | 一本一本大道香蕉久在线精品 | 色婷婷精品久久二区二区蜜臂av | 久久久国产午夜精品| 人人超碰91尤物精品国产| 91传媒视频在线播放| 国产精品久久毛片| 国产精品系列在线观看| 欧美不卡激情三级在线观看| 日韩综合小视频| 欧美高清性hdvideosex| 亚洲综合免费观看高清在线观看| 99久久伊人精品| 中文字幕在线一区二区三区| 国产黑丝在线一区二区三区| 久久午夜羞羞影院免费观看| 日本不卡不码高清免费观看| 69久久夜色精品国产69蝌蚪网| 亚洲成国产人片在线观看| 在线精品视频一区二区三四| 亚洲同性同志一二三专区| 99视频有精品| 亚洲欧美激情插| 色欧美乱欧美15图片| 一区二区三区日韩| 欧美亚洲日本国产| 亚洲午夜精品久久久久久久久| 欧美三级日韩三级| 午夜精品aaa| 日韩欧美黄色影院| 国产麻豆91精品| 国产精品三级av在线播放| 成人app网站| 亚洲在线成人精品| 欧美日韩国产综合草草| 肉肉av福利一精品导航| 日韩一级免费观看| 国产精品小仙女| 亚洲少妇屁股交4| 欧美日韩一本到| 另类小说图片综合网| 国产欧美日韩在线观看| caoporen国产精品视频| 一区二区在线免费| 正在播放亚洲一区| 国产91精品精华液一区二区三区| 中文一区二区完整视频在线观看| www.成人网.com| 亚洲成人自拍偷拍| 欧美成人a视频| 福利一区二区在线| 亚洲一区二区三区四区在线免费观看| 欧美日韩色一区| 国产在线精品一区在线观看麻豆| 亚洲国产精品99久久久久久久久 | 色狠狠色狠狠综合| 日本少妇一区二区| 国产精品美女久久福利网站| 欧洲一区在线电影| 国产精品自拍av| 亚洲电影一区二区| 国产喂奶挤奶一区二区三区|