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

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

?? basecode.cpp

?? 研讀AxCrypt對加解密的處理方法
?? CPP
字號:
// basecode.cpp - written and placed in the public domain by Wei Dai

#include "pch.h"

#ifndef CRYPTOPP_IMPORTS

#include "basecode.h"
#include "fltrimpl.h"
#include <ctype.h>

NAMESPACE_BEGIN(CryptoPP)

void BaseN_Encoder::IsolatedInitialize(const NameValuePairs &parameters)
{
	parameters.GetRequiredParameter("BaseN_Encoder", Name::EncodingLookupArray(), m_alphabet);

	parameters.GetRequiredIntParameter("BaseN_Encoder", Name::Log2Base(), m_bitsPerChar);
	if (m_bitsPerChar <= 0 || m_bitsPerChar >= 8)
		throw InvalidArgument("BaseN_Encoder: Log2Base must be between 1 and 7 inclusive");

	byte padding;
	bool pad;
	if (parameters.GetValue(Name::PaddingByte(), padding))
		pad = parameters.GetValueWithDefault(Name::Pad(), true);
	else
		pad = false;
	m_padding = pad ? padding : -1;

	m_bytePos = m_bitPos = 0;

	int i = 8;
	while (i%m_bitsPerChar != 0)
		i += 8;
	m_outputBlockSize = i/m_bitsPerChar;

	m_outBuf.New(m_outputBlockSize);
}

unsigned int BaseN_Encoder::Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking)
{
	FILTER_BEGIN;
	while (m_inputPosition < length)
	{
		if (m_bytePos == 0)
			memset(m_outBuf, 0, m_outputBlockSize);

		{
		unsigned int b = begin[m_inputPosition++], bitsLeftInSource = 8;
		while (true)
		{
			assert(m_bitPos < m_bitsPerChar);
			unsigned int bitsLeftInTarget = m_bitsPerChar-m_bitPos;
			m_outBuf[m_bytePos] |= b >> (8-bitsLeftInTarget);
			if (bitsLeftInSource >= bitsLeftInTarget)
			{
				m_bitPos = 0;
				++m_bytePos;
				bitsLeftInSource -= bitsLeftInTarget;
				if (bitsLeftInSource == 0)
					break;
				b <<= bitsLeftInTarget;
				b &= 0xff;
			}
			else
			{
				m_bitPos += bitsLeftInSource;
				break;
			}
		}
		}

		assert(m_bytePos <= m_outputBlockSize);
		if (m_bytePos == m_outputBlockSize)
		{
			int i;
			for (i=0; i<m_bytePos; i++)
			{
				assert(m_outBuf[i] < (1 << m_bitsPerChar));
				m_outBuf[i] = m_alphabet[m_outBuf[i]];
			}
			FILTER_OUTPUT(1, m_outBuf, m_outputBlockSize, 0);
			
			m_bytePos = m_bitPos = 0;
		}
	}
	if (messageEnd)
	{
		if (m_bitPos > 0)
			++m_bytePos;

		int i;
		for (i=0; i<m_bytePos; i++)
			m_outBuf[i] = m_alphabet[m_outBuf[i]];

		if (m_padding != -1 && m_bytePos > 0)
		{
			memset(m_outBuf+m_bytePos, m_padding, m_outputBlockSize-m_bytePos);
			m_bytePos = m_outputBlockSize;
		}
		FILTER_OUTPUT(2, m_outBuf, m_bytePos, messageEnd);
		m_bytePos = m_bitPos = 0;
	}
	FILTER_END_NO_MESSAGE_END;
}

void BaseN_Decoder::IsolatedInitialize(const NameValuePairs &parameters)
{
	parameters.GetRequiredParameter("BaseN_Decoder", Name::DecodingLookupArray(), m_lookup);

	parameters.GetRequiredIntParameter("BaseN_Decoder", Name::Log2Base(), m_bitsPerChar);
	if (m_bitsPerChar <= 0 || m_bitsPerChar >= 8)
		throw InvalidArgument("BaseN_Decoder: Log2Base must be between 1 and 7 inclusive");

	m_bytePos = m_bitPos = 0;

	int i = m_bitsPerChar;
	while (i%8 != 0)
		i += m_bitsPerChar;
	m_outputBlockSize = i/8;

	m_outBuf.New(m_outputBlockSize);
}

unsigned int BaseN_Decoder::Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking)
{
	FILTER_BEGIN;
	while (m_inputPosition < length)
	{
		unsigned int value;
		value = m_lookup[begin[m_inputPosition++]];
		if (value >= 256)
			continue;

		if (m_bytePos == 0 && m_bitPos == 0)
			memset(m_outBuf, 0, m_outputBlockSize);

		{
			int newBitPos = m_bitPos + m_bitsPerChar;
			if (newBitPos <= 8)
				m_outBuf[m_bytePos] |= value << (8-newBitPos);
			else
			{
				m_outBuf[m_bytePos] |= value >> (newBitPos-8);
				m_outBuf[m_bytePos+1] |= value << (16-newBitPos);
			}

			m_bitPos = newBitPos;
			while (m_bitPos >= 8)
			{
				m_bitPos -= 8;
				++m_bytePos;
			}
		}

		if (m_bytePos == m_outputBlockSize)
		{
			FILTER_OUTPUT(1, m_outBuf, m_outputBlockSize, 0);
			m_bytePos = m_bitPos = 0;
		}
	}
	if (messageEnd)
	{
		FILTER_OUTPUT(2, m_outBuf, m_bytePos, messageEnd);
		m_bytePos = m_bitPos = 0;
	}
	FILTER_END_NO_MESSAGE_END;
}

void BaseN_Decoder::InitializeDecodingLookupArray(int *lookup, const byte *alphabet, unsigned int base, bool caseInsensitive)
{
	std::fill(lookup, lookup+256, -1);

	for (unsigned int i=0; i<base; i++)
	{
		if (caseInsensitive && isalpha(alphabet[i]))
		{
			assert(lookup[toupper(alphabet[i])] == -1);
			lookup[toupper(alphabet[i])] = i;
			assert(lookup[tolower(alphabet[i])] == -1);
			lookup[tolower(alphabet[i])] = i;
		}
		else
		{
			assert(lookup[alphabet[i]] == -1);
			lookup[alphabet[i]] = i;
		}
	}
}

void Grouper::IsolatedInitialize(const NameValuePairs &parameters)
{
	m_groupSize = parameters.GetIntValueWithDefault(Name::GroupSize(), 0);
	ConstByteArrayParameter separator, terminator;
	if (m_groupSize)
		parameters.GetRequiredParameter("Grouper", Name::Separator(), separator);
	else
		parameters.GetValue(Name::Separator(), separator);
	parameters.GetValue(Name::Terminator(), terminator);

	m_separator.Assign(separator.begin(), separator.size());
	m_terminator.Assign(terminator.begin(), terminator.size());
	m_counter = 0;
}

unsigned int Grouper::Put2(const byte *begin, unsigned int length, int messageEnd, bool blocking)
{
	FILTER_BEGIN;
	if (m_groupSize)
	{
		while (m_inputPosition < length)
		{
			if (m_counter == m_groupSize)
			{
				FILTER_OUTPUT(1, m_separator, m_separator.size(), 0);
				m_counter = 0;
			}

			unsigned int len;
			FILTER_OUTPUT2(2, len = STDMIN(length-m_inputPosition, m_groupSize-m_counter),
				begin+m_inputPosition, len, 0);
			m_inputPosition += len;
			m_counter += len;
		}
	}
	else
		FILTER_OUTPUT(3, begin, length, 0);

	if (messageEnd)
	{
		FILTER_OUTPUT(4, m_terminator, m_terminator.size(), messageEnd);
		m_counter = 0;
	}
	FILTER_END_NO_MESSAGE_END
}

NAMESPACE_END

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品动漫网站| 国产一级精品在线| 久久久亚洲午夜电影| 91久久精品一区二区| 国产高清视频一区| 日韩成人免费看| 日韩一区日韩二区| 亚洲国产精品成人综合| 欧美一区二区三区在线视频 | 国产麻豆精品95视频| 亚洲精品国产一区二区三区四区在线 | 日韩电影在线一区二区三区| 欧美高清一级片在线观看| 91精品午夜视频| 欧美亚洲一区三区| 91免费视频大全| 丁香婷婷综合激情五月色| 蜜臀av性久久久久av蜜臀妖精 | 久久久精品中文字幕麻豆发布| 在线视频你懂得一区二区三区| 国产精品一区二区果冻传媒| 日本不卡视频在线观看| 亚洲成人中文在线| 一区二区三国产精华液| 国产精品久久久久久亚洲毛片| 精品国产123| 欧美videofree性高清杂交| 91精品在线一区二区| 69堂国产成人免费视频| 精品婷婷伊人一区三区三| 国产精品狼人久久影院观看方式| 精品国产一区二区三区忘忧草 | 青椒成人免费视频| 午夜精品一区二区三区免费视频| 亚洲欧美韩国综合色| 亚洲欧美电影院| 怡红院av一区二区三区| 亚洲丝袜美腿综合| 亚洲色图制服诱惑| 亚洲精品国产一区二区精华液 | 在线观看区一区二| 在线中文字幕不卡| 欧美三级视频在线| 欧美日韩中字一区| 欧美日韩一区 二区 三区 久久精品| 一本大道久久a久久综合婷婷| 波多野结衣中文字幕一区| www.久久精品| 色婷婷av一区二区三区软件| 91久久久免费一区二区| 在线观看三级视频欧美| 欧美日韩视频不卡| 欧美一二三四区在线| 精品捆绑美女sm三区| 亚洲精品一区二区在线观看| www国产成人免费观看视频 深夜成人网| 日韩欧美亚洲国产另类| 精品美女一区二区三区| 中文字幕欧美国产| 亚洲免费在线视频一区 二区| 亚洲综合一二区| 麻豆91在线观看| 国产98色在线|日韩| 色哟哟一区二区| 欧美一区二区三区系列电影| 亚洲精品一区二区三区香蕉| 中文av一区二区| 午夜精品久久久久久| 国产在线精品一区二区夜色| 岛国一区二区三区| 91久久精品一区二区三| 欧美成人乱码一区二区三区| 国产欧美综合在线| 亚洲与欧洲av电影| 毛片基地黄久久久久久天堂| 国产99久久久久久免费看农村| 91污在线观看| 欧美大肚乱孕交hd孕妇| 国产精品电影一区二区| 亚洲国产日韩精品| 成人综合婷婷国产精品久久蜜臀| 欧美影视一区在线| 久久精品人人做人人爽人人| 一区二区三区蜜桃| 国产麻豆视频一区| 亚洲一区二区精品久久av| 久久精品国产亚洲高清剧情介绍| 91精品国产综合久久精品麻豆| 在线精品视频小说1| 久久人人97超碰com| 久久久久青草大香线综合精品| 国产亚洲一区二区三区在线观看| 亚洲欧美另类小说| 国产一区二区看久久| 精品视频全国免费看| 久久久美女艺术照精彩视频福利播放| 亚洲精品视频一区二区| 麻豆一区二区三区| 欧美日韩国产免费| 精品在线观看免费| av电影在线不卡| 精品久久久久久无| 亚洲一区二区欧美| 91网上在线视频| 久久亚洲私人国产精品va媚药| 亚洲欧美成aⅴ人在线观看| 国产精品亚洲一区二区三区在线| 欧美日韩久久一区| 一区二区三区四区在线播放 | 日韩精品影音先锋| 午夜精品123| 在线精品国精品国产尤物884a| 国产女同互慰高潮91漫画| 久久精品国内一区二区三区| 欧美三级一区二区| 一级做a爱片久久| 9人人澡人人爽人人精品| 久久久99精品久久| 精品在线播放免费| 日韩欧美国产电影| 日本成人中文字幕在线视频| 91福利资源站| 亚洲一区二三区| 一本色道久久综合亚洲aⅴ蜜桃| 欧美国产一区视频在线观看| 国产一区啦啦啦在线观看| 337p亚洲精品色噜噜噜| 污片在线观看一区二区| 欧美影院一区二区三区| 亚洲一线二线三线久久久| 色婷婷av一区二区三区之一色屋| ●精品国产综合乱码久久久久| 国产91精品露脸国语对白| 久久精品一区二区| 高清成人在线观看| 国产精品美女久久久久久久久| 国产成人午夜精品5599| 久久精品人人做人人综合 | 99久久精品99国产精品| 国产精品素人一区二区| 暴力调教一区二区三区| 最近日韩中文字幕| 欧美午夜宅男影院| 午夜视频在线观看一区二区| 7777精品伊人久久久大香线蕉的 | 亚洲3atv精品一区二区三区| 欧美精品三级在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产精品国产三级国产| 91一区在线观看| 亚洲狠狠爱一区二区三区| 91精品欧美久久久久久动漫| 日韩av一级电影| 国产偷国产偷精品高清尤物| 97国产一区二区| 亚洲国产一区二区视频| 欧美一区二区高清| 国产91露脸合集magnet| 一区二区三区蜜桃网| 日韩一区二区精品在线观看| 国产剧情一区在线| 国产精品免费看片| 欧美日韩视频专区在线播放| 美女精品自拍一二三四| 国产女同互慰高潮91漫画| 色香色香欲天天天影视综合网| 视频在线观看一区| 国产亚洲一区二区三区在线观看| 91在线一区二区三区| 日韩黄色免费网站| 欧美国产精品一区| 欧美日韩中字一区| 国产成人精品影视| 亚洲一卡二卡三卡四卡| 精品剧情v国产在线观看在线| www.日本不卡| 老色鬼精品视频在线观看播放| 国产日韩欧美精品在线| 欧美日韩精品欧美日韩精品一 | 6080国产精品一区二区| 国产一区二区久久| 亚洲黄色在线视频| 精品欧美一区二区久久 | 欧美日韩国产一级片| 经典三级一区二区| 一区二区三区国产精华| 久久综合一区二区| 欧美三级在线视频| 成人一区二区视频| 日本vs亚洲vs韩国一区三区二区 | 欧美日韩高清一区二区三区| 丁香婷婷综合激情五月色| 偷拍日韩校园综合在线| 国产精品污网站| 日韩一区和二区| 在线观看国产精品网站| 国产成人精品www牛牛影视| 日韩黄色片在线观看| 一区二区欧美精品| 国产精品国产精品国产专区不片|