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

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

?? sapphire.cpp

?? #include "pch.h" #include "base64.h" NAMESPACE_BEGIN(CryptoPP) static const int MAX_LINE_LENG
?? CPP
字號:
// sapphire.cpp -- modified by Wei Dai from:

/* sapphire.cpp -- the Saphire II stream cipher class.
   Dedicated to the Public Domain the author and inventor:
   (Michael Paul Johnson).  This code comes with no warranty.
   Use it at your own risk.
   Ported from the Pascal implementation of the Sapphire Stream
   Cipher 9 December 1994.
   Added hash pre- and post-processing 27 December 1994.
   Modified initialization to make index variables key dependent,
   made the output function more resistant to cryptanalysis,
   and renamed to Sapphire II 2 January 1995
*/

#include "pch.h"
#include "sapphire.h"

NAMESPACE_BEGIN(CryptoPP)

byte SapphireBase::keyrand(unsigned int limit,
						   const byte *user_key,
						   byte keysize,
						   byte *rsum,
						   unsigned *keypos)
{
	unsigned u,             // Value from 0 to limit to return.
		retry_limiter,      // No infinite loops allowed.
		mask;               // Select just enough bits.

	retry_limiter = 0;
	mask = 1;               // Fill mask with enough bits to cover
	while (mask < limit)    // the desired range.
		mask = (mask << 1) + 1;
	do
		{
		*rsum = cards[*rsum] + user_key[(*keypos)++];
		if (*keypos >= keysize)
			{
			*keypos = 0;            // Recycle the user key.
			*rsum += keysize;   // key "aaaa" != key "aaaaaaaa"
			}
		u = mask & *rsum;
		if (++retry_limiter > 11)
			u %= limit;     // Prevent very rare long loops.
		}
	while (u > limit);
	return u;
}

SapphireBase::SapphireBase()
	: cards(256)
{
}

SapphireBase::SapphireBase(const byte *key, unsigned int keysize)
	: cards(256)
{
	assert(keysize < 256);
	// Key size may be up to 256 bytes.
	// Pass phrases may be used directly, with longer length
	// compensating for the low entropy expected in such keys.
	// Alternatively, shorter keys hashed from a pass phrase or
	// generated randomly may be used. For random keys, lengths
	// of from 4 to 16 bytes are recommended, depending on how
	// secure you want this to be.

	int i;
	byte rsum;
	unsigned keypos;

	// Start with cards all in order, one of each.

	for (i=0;i<256;i++)
		cards[i] = i;

	// Swap the card at each position with some other card.

	keypos = 0;         // Start with first byte of user key.
	rsum = 0;
	for (i=255;i;i--)
		std::swap(cards[i], cards[keyrand(i, key, keysize, &rsum, &keypos)]);

	// Initialize the indices and data dependencies.
	// Indices are set to different values instead of all 0
	// to reduce what is known about the state of the cards
	// when the first byte is emitted.

	rotor = cards[1];
	ratchet = cards[3];
	avalanche = cards[5];
	last_plain = cards[7];
	last_cipher = cards[rsum];

	rsum = 0;
	keypos = 0;
}

SapphireBase::~SapphireBase()
{
	rotor = ratchet = avalanche = last_plain = last_cipher = 0;
}

void SapphireEncryption::ProcessString(byte *outString, const byte *inString, unsigned int length)
{
	while(length--)
		*outString++ = SapphireEncryption::ProcessByte(*inString++);
}

void SapphireEncryption::ProcessString(byte *inoutString, unsigned int length)
{
	while(length--)
		*inoutString++ = SapphireEncryption::ProcessByte(*inoutString);
}

void SapphireDecryption::ProcessString(byte *outString, const byte *inString, unsigned int length)
{
	while(length--)
		*outString++ = SapphireDecryption::ProcessByte(*inString++);
}

void SapphireDecryption::ProcessString(byte *inoutString, unsigned int length)
{
	while(length--)
		*inoutString++ = SapphireDecryption::ProcessByte(*inoutString);
}

SapphireHash::SapphireHash(unsigned int hashLength)
	: SapphireEncryption(), hashLength(hashLength)
{
	// This function is used to initialize non-keyed hash
	// computation.

	int i, j;

	// Initialize the indices and data dependencies.

	rotor = 1;
	ratchet = 3;
	avalanche = 5;
	last_plain = 7;
	last_cipher = 11;

	// Start with cards all in inverse order.

	for (i=0, j=255;i<256;i++,j--)
		cards[i] = (byte) j;
}

void SapphireHash::Update(const byte *input, unsigned int length)
{
	while(length--)
		SapphireEncryption::ProcessByte(*input++);
}

void SapphireHash::Final(byte *hash, unsigned int overrideHashLength)
{
	for (int i=255; i>=0; i--)
		ProcessByte((byte) i);

	for (unsigned int j=0; j<overrideHashLength; j++)
		hash[j] = ProcessByte(0);
}

NAMESPACE_END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产酒店精品激情| 亚洲成年人网站在线观看| 91首页免费视频| 秋霞电影网一区二区| 久久久www免费人成精品| 99re这里只有精品视频首页| 蓝色福利精品导航| 亚洲欧洲日韩综合一区二区| 日韩一级片网址| 91搞黄在线观看| 大白屁股一区二区视频| 日韩高清不卡在线| 一区二区三区四区av| 欧美高清一级片在线观看| 日韩一级成人av| 欧美性高清videossexo| 99麻豆久久久国产精品免费| 激情久久五月天| 日本最新不卡在线| 亚洲另类在线视频| aaa欧美色吧激情视频| 亚洲免费在线电影| 国产精品国产三级国产普通话三级| 日韩午夜激情免费电影| 欧美丰满少妇xxxxx高潮对白| 在线观看亚洲精品视频| 色婷婷久久综合| 欧美亚洲高清一区| 欧美日韩国产小视频| 欧美三级电影网站| 日韩一区二区影院| 精品久久久久久久久久久久包黑料 | 日本麻豆一区二区三区视频| 亚洲国产美国国产综合一区二区| 日韩毛片精品高清免费| 日韩毛片一二三区| 亚洲成人午夜影院| 美国三级日本三级久久99| 久久99精品久久久久婷婷| 国产成人免费视频精品含羞草妖精| 国产999精品久久久久久| 99热99精品| 欧美久久久久免费| 日韩精品一区二区三区中文不卡 | 国产精品久久久久影院亚瑟 | 丁香婷婷综合网| 欧美亚洲自拍偷拍| 日韩午夜av一区| 一区二区三区四区乱视频| 亚洲影视资源网| 日韩av一区二区三区四区| 日本在线不卡视频| 色综合视频一区二区三区高清| 56国语精品自产拍在线观看| 99久久久久免费精品国产 | 欧美日韩电影一区| 亚洲午夜久久久久久久久久久| 欧美日韩一区二区电影| 亚洲成人av电影| 欧美一区二区在线看| 狂野欧美性猛交blacked| 精品99久久久久久| www.日韩精品| 亚洲国产成人精品视频| 欧美成人video| 成人综合激情网| 亚洲综合色婷婷| 欧美一区二区黄色| 国产69精品一区二区亚洲孕妇 | 一区二区久久久久| 日韩欧美精品在线| 成人免费福利片| 日韩精品国产精品| 亚洲国产精品成人综合| 美女在线视频一区| 欧美日韩国产色站一区二区三区| 蜜臀精品一区二区三区在线观看 | 狠狠网亚洲精品| 亚洲摸摸操操av| 精品国产三级a在线观看| 一本久久精品一区二区| 免费成人在线观看视频| 亚洲人成网站精品片在线观看| 欧美一级精品在线| 日韩午夜激情免费电影| 成人高清视频在线观看| 日韩高清一区二区| 亚洲国产另类av| 自拍偷自拍亚洲精品播放| 日韩精品一区二区三区视频播放| av在线一区二区三区| 国产激情精品久久久第一区二区| 日韩av一区二区三区| 亚洲成人午夜电影| 亚洲精品中文字幕在线观看| 日本一区二区三区dvd视频在线| 欧美久久久久久久久| 在线视频综合导航| 欧美专区日韩专区| 欧美日韩视频一区二区| 欧美三级电影网| 欧美一区二区在线不卡| 777精品伊人久久久久大香线蕉| 欧美网站大全在线观看| 欧美三级日韩三级国产三级| 欧美在线观看视频一区二区| 欧美在线一二三| 在线播放中文一区| 日韩一区二区三区视频在线| 日韩欧美美女一区二区三区| 日韩一区和二区| 久久久久久电影| 亚洲视频一区二区在线| 亚洲成人综合在线| 美国毛片一区二区| 国产成人综合视频| 色一区在线观看| 欧美美女直播网站| 久久影院午夜论| 亚洲免费在线观看视频| 蜜桃视频在线观看一区二区| 国模娜娜一区二区三区| 91在线国内视频| 欧美精品一卡二卡| 国产欧美一区二区精品性| 亚洲精品ww久久久久久p站| 蜜臀av性久久久久蜜臀av麻豆 | 欧美国产视频在线| 亚洲高清在线视频| 成人午夜激情影院| 欧美一区三区四区| 亚洲人精品一区| 老司机一区二区| 欧美视频一区二区在线观看| 久久亚洲私人国产精品va媚药| 亚洲精品国产成人久久av盗摄 | 成人开心网精品视频| 欧美高清www午色夜在线视频| 中文字幕高清一区| 午夜精品久久久久久久蜜桃app| 亚洲第一激情av| 九色综合狠狠综合久久| 成人精品高清在线| 精品少妇一区二区三区 | 日本中文在线一区| 欧美亚洲动漫另类| 亚洲欧美日韩一区| 成人午夜视频在线| 久久久久久久久免费| 日本伊人色综合网| 欧美午夜寂寞影院| 亚洲一区二区三区四区的| 国产不卡视频一区| 欧美精品一区二区三区蜜臀| 日韩av一区二区在线影视| 91精品国产综合久久久久久久| 亚洲自拍偷拍麻豆| 欧美日韩三级一区| 午夜精品视频一区| 日韩欧美资源站| 韩国女主播一区二区三区| 精品国产91乱码一区二区三区| 寂寞少妇一区二区三区| 久久久国际精品| 99在线视频精品| 一区二区三区日本| 欧美日韩第一区日日骚| 久久国产精品99久久久久久老狼 | 日韩一区二区三免费高清| 日韩中文字幕麻豆| 欧美成人精品二区三区99精品| 久久国产精品一区二区| 精品国产第一区二区三区观看体验 | 成人av午夜影院| 亚洲国产成人av网| 欧美成人激情免费网| 成人av在线网| 亚洲午夜在线视频| 日韩色在线观看| 国产91高潮流白浆在线麻豆 | 久久久亚洲精品石原莉奈| 成人av资源站| 日韩精品欧美精品| 国产精品午夜春色av| 在线观看日韩高清av| 午夜视频一区在线观看| 国产日韩欧美电影| 欧美精品丝袜久久久中文字幕| 国产河南妇女毛片精品久久久 | 亚洲精品欧美综合四区| 欧美色窝79yyyycom| 成人白浆超碰人人人人| 老司机免费视频一区二区三区| 亚洲视频一二区| 精品三级在线看| 欧美吻胸吃奶大尺度电影| 东方欧美亚洲色图在线| 天天操天天色综合| 一区二区在线电影| 国产精品丝袜久久久久久app|